一、CentOS5 修改主机名
二、CentOS6 修改主机名
三、CentOS7 修改主机名
静态的(Static hostname)
“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。
瞬态的(Tansient hostname)
“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。
灵活的(Pretty hostname)
“灵活”主机名也有人叫做“别名”主机名。
“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如xh01@f5)。
“静态”主机名和“瞬态”主机名都遵从作为互联网域名同样的字符限制规则。
在 CentOS 7 中,有个叫 hostnamectl 的命令行工具,它允许你查看或修改与主机名相关的配置。
查看主机名
方法1:查看当前系统的全部三种主机名
[root@docker01 ~]# hostnamectl Static hostname: localhost.localdomain Transient hostname: docker01 Icon name: computer-vm Chassis: vm Machine ID: ee8d9fda1f59470d9a5832666d1adcf0 Boot ID: 4919666aaf22489aaa9c441924c3b374 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-957.el7.x86_64 Architecture: x86-64 [root@docker01 ~]# hostnamectl status Static hostname: localhost.localdomain Transient hostname: docker01 Icon name: computer-vm Chassis: vm Machine ID: ee8d9fda1f59470d9a5832666d1adcf0 Boot ID: 4919666aaf22489aaa9c441924c3b374 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-957.el7.x86_64 Architecture: x86-64
方法2:分别查看当前系统的三种主机名
静态的、瞬态的或灵活的主机名,分别使用 --static、--transient 或 --pretty 选项
# 查看到的是静态主机名 [root@docker01 ~]# hostnamectl --static localhost.localdomain
# 查看到的是瞬态主机名 [root@docker01 ~]# hostnamectl --transient docker01
# 查看到的是灵活主机名 [root@docker01 ~]# hostnamectl --pretty [root@docker01 ~]#
# 查看主机名配置文件,看到的是静态的(Static Hostname) [root@docker01 ~]# cat /etc/hostname localhost.localdomain
# 使用 hostname 命令查看到的是瞬态的(Transient Hostname)
[root@docker01 ~]# hostname
docker01
查看当前 Linux 操作系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
[root@docker01 ~]# uname -a Linux docker01 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@docker01 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
修改主机名
方法1:临时生效
# 临时修改的主机名,当重启机器后,主机名称又变回来了。
hostname 主机名
[root@localhost ~]# hostname docker01
方法2:永久生效
// 永久性的修改主机名称,重启后能保持修改后的 [root@localhost ~]# hostnamectl set-hostname docker01 // 查看 hostname 配置文件已更新 [root@localhost ~]# cat /etc/hostname docker01
修改所有三个主机名:静态的、瞬态的和灵活的主机名
[root@localhost ~]# hostnamectl set-hostname docker01 [root@localhost ~]# hostnamectl --pretty [root@localhost ~]# hostnamectl --static docker01 [root@localhost ~]# hostnamectl --transient docker01 [root@localhost ~]# cat /etc/hostname docker02
就像上面所展示的操作过程,在修改静态/静态主机名时,任何特殊字符或空白字符将会被移除,而提供的参数中的任何大写字母会自动转换为小写。
一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 文件不会自动更新,所以在每次修改主机名后一定要手动更新 /etc/hosts 文件,之后再重启 CentOS7;否则,系统再重启过程中会很慢。
其实,不必重启机器以激活永久主机名的修改。上面的命令会立即修改内核主机名,注销并重新登录后,在命令行提示来观察新的静态主机名。
方法3:永久生效
修改配置文件 /etc/hostname 来实现主机名的修改。
把该文件内容hostname name中的name替换成自己想要的主机名。
vi /etc/hostname
hostname myname
重启即可
方法4:永久生效
通过nmtui修改,之后重启hostnamed
nmcli general hostname servername
systemctl restart systemd-hostnamed
还可以通过nmtui进入图形界面来修改主机名。
将光标通过键盘的上下键移动到“设定系统主机名”菜单处,按下回车键。
此时,屏幕出现“设定主机名”选项卡,输入需要设定的主机名,通过键盘方向键将光标移动到“确定”处,回车键确定即可完成主机名的修改。
删除主机名(即恢复默认主机名)
// 删除Hostname [root@localhost ~]# hostnamectl set-hostname "" [root@localhost ~]# cat /etc/hostname cat: /etc/hostname: No such file or directory [root@localhost ~]# hostnamectl set-hostname "" --static [root@localhost ~]# hostnamectl set-hostname "" --pretty