RHEL 7新增了hostnamectl命令,基于RHEL 7的CentOS 7相应的可以使用hostnamectl来修改主机名。
hostnamectl把主机名分为以下三种:
静态主机名:hostnamectl用来在系统启动时初始化内核的主机名。
瞬态主机名:由DHCP等一些系统临时分配的主机名,如果系统存在静态主机名且有效,则不会用到瞬态主机名。
pretty主机名:静态和瞬态主机名都是要符合域名的字符串,而pretty主机名则可以包含其他一些特殊字符。
查看主机名:使用hostnamectl或hostnamectl status查看主机信息
[root@myhostname ~]# hostnamectl Static hostname: myhostname Transient hostname: transientName Icon name: computer-vm Chassis: vm Machine ID: xxxxxxxx Boot ID: xxxxxxxx Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-693.2.2.el7.x86_64 Architecture: x86-64
设置主机名:使用hostnamectl的set-hostname命令设置主机名。
[root@myhostname ~]# hostnamectl set-hostname test [root@myhostname ~]# hostnamectl Static hostname: test Icon name: computer-vm Chassis: vm Machine ID: xxxxxxxx Boot ID: xxxxxxxx Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-693.2.2.el7.x86_64 Architecture: x86-64
对比两次的hostname,使用hostnamectl set-hostname test后,Transient hostname已被删除。
注意到hostname设置为test后,终端提示还是root@myhostname,退出重新登录即会显示新的hostname。
设置瞬态主机名
hostnamectl set-hostname --transient transientName
设置静态主机
hostnamectl set-hostname --static staticName
单独设置静态主机名,设置静态主机名为永久修改主机名,重启机器不会影响。
设置静态主机名实际是会修改/etc/hostname文件的主机名,系统重启时会读取/etc/hostname来初始化内核主机名。
设置pretty主机名
hostnamectl set-hostname --pretty prettyName
永久修改主机名
CentOS 6永久修改主机名需要修改两个文件/etc/sysconfig/network和/etc/hosts。
/etc/sysconfig/network修改HOSTNAME的值
HOSTNAME=myNewHostName
为了避免出现一些其他问题,修改/etc/hosts里的hostname。
修改后重启服务器reboot。
运行时修改主机名
使用hostname命令可以在不重启主机的情况下修改主机名。
hostname newhostname
重启机器后,主机名会重新变为原来的主机名。