systemd修改主机名

Red Hat Enterprise Linux/CentOS 7引入了systemd管理系统服务和配置后,原本对主机名修改的方法有了一些调整。

虽然依然可以使用hostname来动态调整主机名,并且将原先/etc/sysconfig/network配置文件中的HOSTNAME=配置调整到/etc/hostname就可以完成主机名修改的持久化。不过,使用标准的systemd系列工具来完成这个任务可以带来更为规范的效果并且也带来了更多扩展设置。

hostnamectl工具

hostnamectl工具提供了控制Linux系统主机名的方法。

  • 检查当前主机名

hostnamectl status

显示输出

   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: d7309d2b99134bff9bee918ce27fe7de
           Boot ID: 925798581c1541c18bd256b30d0b0739
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.22.2.el7.x86_64
      Architecture: x86-64
  • 修改主机名为devstack

hostnamectl set-hostname devstack

此时再查看hostname命令则显示输出为devstack,并且上述修改也是持久化的修改,可以看到/etc/hostname内容被修改成devstack

注意 /etc/hosts 中配置建议同步修改,以便hostname -i能够正确反向解析。

和以往传统的hostname devstack只修改当前动态主机名,不持久化配置不同,hostnamectl set-hostname默认(没有使用参数时)是同时修改动态的主机名和持久化保存配置的,避免了系统管理员疏忽忘记持久化配置。

  • hostnamectl set-hostname的2个参数:--static--pretty

pretty主机名是指对主机名的一个详细的或者可读化的主机名,可以设置很长的描述。例如,同时把上述devstack主机名设置成huatai's openstack lab这个描述

hostnamectl set-hostname "huatai's openstack lab" --pretty

然后再使用hostnamectl status检查就会看到

   Static hostname: devstack
   Pretty hostname: huatai's openstack lab
         Icon name: computer-vm
           Chassis: vm
        Machine ID: d7309d2b99134bff9bee918ce27fe7de
           Boot ID: 925798581c1541c18bd256b30d0b0739
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.22.2.el7.x86_64
      Architecture: x86-64

删除主机名

可以使用以下命令清除掉主机名

hostnamectl set-hostname ""
hostnamectl set-hostname "" --static
hostnamectl set-hostname "" --pretty

远程修改主机名

hostnamectl还提供了远程修改主机名的方法

传统ssh方法修改192.168.1.2的主机名

ssh root@192.168.1.2 hostnamectl set-hostname server1

或者直接使用hostnamectl

hostnamectl set-hoatname server1 -H root@192.168.1.2

其他方法

Network Manager工具提供了通过交互界面nmtui或者命令行nmcli来修改主机名方法,具体参考RHEL / Centos Linux 7: Change and Set Hostname Command

参考

Last updated