在CentOS中,有三種定義的主機名:靜態的(static),瞬態的(transient),和靈活的(pretty):
* 「靜態」主機名也稱爲內核主機名,是系統在啓動時從/etc/hostname自動初始化的主機名。
* 「瞬態」主機名是在系統運行時臨時分配的主機名,例如,經過DHCP或mDNS服務器分配。靜態主機名和瞬態主機名都聽從做爲互聯網域名一樣的字符限制規則。
* 「靈活」主機名則容許使用自由形式(包括特殊/空白字符)的主機名,以展現給終端用戶(如qd-op-comm03.kevin.com)。
在CentOS 7中,有個叫hostnamectl的命令行工具,它容許你查看或修改與主機名相關的配置。
1)要查看主機名相關的設置:
[root@qd-op-comm03 ~]# hostname
qd-op-comm03.kevin.com
[root@qd-op-comm03 ~]# hostnamectl
Static hostname: qd-op-comm03.kevin.com
Icon name: computer-vm
Chassis: vm
Machine ID: 45461f76679f48ee96e95da6cc798cc8
Boot ID: 1e7ed2e4777240529451d611c03465c6
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.13.1.el7.x86_64
Architecture: x86-64
或者
[root@qd-op-comm03 ~]# hostnamectl status
Static hostname: qd-op-comm03.kevin.com
Icon name: computer-vm
Chassis: vm
Machine ID: 45461f76679f48ee96e95da6cc798cc8
Boot ID: 1e7ed2e4777240529451d611c03465c6
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.13.1.el7.x86_64
Architecture: x86-64
2)只查看靜態、瞬態或靈活主機名,分別使用「--static」,「--transient」或「--pretty」選項
[root@qd-op-comm03 ~]# hostnamectl --static
qd-op-comm03.kevin.com
[root@qd-op-comm03 ~]# hostnamectl --transient
qd-op-comm03.kevin.com
[root@qd-op-comm03 ~]# hostnamectl --pretty
[root@qd-op-comm03 ~]#
3)要同時修改全部三個主機名:靜態、瞬態和靈活主機名
[root@localhost ~]# hostnamectl set-hostname qd-op-comm03.kevin.com
[root@localhost ~]# hostnamectl --pretty set-hostname qd-op-comm03.kevin.com
[root@localhost ~]# hostnamectl --static set-hostname qd-op-comm03.kevin.com
[root@localhost ~]# hostnamectl --transient set-hostname qd-op-comm03.kevin.com
修改靜態主機名
[root@qd-op-comm03 ~]# hostnamectl --static set-hostname qd-op-comm03.kevin.com
其實,沒必要重啓機器以激活永久主機名修改。上面的hostnamectl命令會當即修改內核主機名。註銷並從新登入後在命令行提示來觀察新的靜態主機名。
就像上面展現的那樣,在修改靜態/瞬態主機名時,任何特殊字符或空白字符會被移除,而提供的參數中的任何大寫字母會自動轉化爲小寫。一旦修改了靜態主機名,/etc/hostname 將被自動更新。然而,/etc/hosts 不會更新以保存所作的修改,因此你每次在修改主機名後必定要手動更新/etc/hosts,以後再重啓CentOS 7。不然系統再啓動時會很慢。
4)手動更新/etc/hosts(這個只是臨時生效,重啓服務器後,主機名仍是會恢復默認)
[root@qd-op-comm03 ~]# cat /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 qd-op-comm03.kevin.comcentos