CentOS 7
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
永久修改主机名
CentOS 6永久修改主机名需要修改两个文件/etc/sysconfig/network和/etc/hosts。
/etc/sysconfig/network修改HOSTNAME的值
HOSTNAME=myNewHostName
为了避免出现一些其他问题,修改/etc/hosts里的hostname。
修改后重启服务器reboot。
运行时修改主机名
使用hostname命令可以在不重启主机的情况下修改主机名。
hostname newhostname
重启机器后,主机名会重新变为原来的主机名。