在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.com