在
CentOS 7
中,有三种定义的主机名:
静态的(Static hostname
)
“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname
自动初始化的主机名。瞬态的(
Tansient hostname
)
“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP
或mDNS
服务器分配。灵活的(
Pretty hostname
)
“灵活”主机名也有人叫做“别名”主机名。
“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如lightserver
)。
“静态”主机名和“瞬态”主机名都遵从作为互联网域名同样的字符限制规则。
查看主机名:
在
CentOS 7
中,有个叫hostnamectl
的命令行工具,它允许你查看或修改与主机名相关的配置。
> 查看一下当前主机名的情况,查看全部三种主机名
[root@lightserver ~]# hostnamectl
> 或者,查看全部三种主机名
[root@lightserver ~]# hostnamectl status
> 只查看静态`--static`选项
[root@lightserver ~]# hostnamectl --static
lightserver.cn
> 只查看瞬态`--transient`选项
[root@lightserver ~]$ hostnamectl --transient
lightserver.cn
> 只查看灵活主机名`--pretty`选项
[root@lightserver ~]# hostnamectl --pretty
lightserver.cn
> 或者,查看到的是瞬态的(`Tansient hostname`)
[root@lightserver ~]# hostname
lightserver.cn
> 或者查看主机名配置文件,查看到的是静态的(`Static hostname`)
[root@lightserver ~]# cat /etc/hostname
lightserver.cn
查看当前Linux操作系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等):
> 查看到的是瞬态的(`Tansient hostname`)
[root@lightserver ~]# uname -a
Linux lightserver.cn 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
> 查看操作系统环境
[root@lightserver ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
修改主机名:
方法1:临时有效
hostname
主机名
只能临时修改的主机名,当重启机器后,主机名称又变回来了。
[root@lightserver ~]# hostname lightserver.cn
方法2:永久生效
hostnamectl
> 永久性的修改主机名称,重启后能保持修改后的。
[root@lightserver ~]# hostnamectl set-hostname lightserver.cn
> 删除`hostname`
[root@lightserver ~]# hostnamectl set-hostname ""
[root@lightserver ~]# hostnamectl set-hostname "" --static
[root@lightserver ~]# hostnamectl set-hostname "" --pretty
修改所有三个主机名:静态、瞬态和灵活主机名:
[root@lightserver ~]# hostnamectl set-hostname lightserver.cn
[root@lightserver ~]# hostnamectl --pretty
[root@lightserver ~]# hostnamectl --static
lightserver.cn
[root@localhost ~]$ hostnamectl --transient
lightserver.cn
就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。
一旦修改了静态主机名,/etc/hostname
将被自动更新。然而,/etc/hosts
不会更新以保存所做的修改,所以你每次在修改主机名后一定要手动更新/etc/hosts
,之后再重启CentOS
。否则系统再启动时会很慢。
手动更新/etc/hosts
[root@lightserver ~]# vim /etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 qqmm
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
::1 qqmm
> 重启CentOS 7
[root@lightserver ~]# reboot -f
> 重启之后
[root@lightserver ~]# hostname
lightserver.cn
[root@lightserver ~]# hostnamectl
lightserver.cn
如果你只想修改特定的主机名(静态,瞬态或灵活),你可以使用–static,–transient或–pretty选项。
例如,要永久修改主机名,你可以修改静态主机名:
[root@lightserver ~]# hostnamectl --static set-hostname lightserver.cn
> 重启CentOS 7 之后
[root@lightserver ~]# hostnamectl --static
lightserver.cn
[root@lightserver ~]# hostnamectl --transient
lightserver.cn
[root@lightserver ~]# hostnamectl --pretty
[root@lightserver ~]# hostname
lightserver.cn
其实,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名,注销并重新登入后在命令行提示来观察新的静态主机名
方法3:永久生效
修改配置文件
/etc/hostname
来实现主机名的修改。把该文件内容hostname name
中的name替换成自己想要的主机名重启即可。
[root@lightserver ~]# vim /etc/hostname
hostname lightserver.cn