通常,主机名是在操作系统安装期间设置的,或者在创建虚拟机时动态分配给虚拟机的。您可能需要更改主机名的原因有很多。 最常见的是在实例创建后自动设置主机名的情况。

本教程说明如何设置或更改CentOS 8主机名,且无需重新启动系统。包括说明什么是主机名,使用hostnamectl命令查看/打印/更改当前主机名,使用nmtui命令配置主机名,使用nmcli命令修改主机名,使用systemctl重启systemd-hostnamed服务以使配置生效。

先决条件

在继续本教程之前,请确保您以具有sudo权限的用户登录。

主机名

主机名是用于标识网络上设备的标签。 您不应该在同一网络上拥有相同主机名的计算机。主机名分别是以下三类。

static主机名,即传统的主机名。 主机名存储在/etc/hostname文件中,可以由用户设置。

pretty主机名用于向用户展示的自由格式UTF8字符编码的主机名。 例如Myfreax's desktop

transient主机名由内核维护的动态主机名。 DHCP或mDNS服务器可以在运行时更改临时的主机名。 默认情况下,它与static主机名相同。

对于statictransient名称,例如host.example.com,建议使用完全限定的域名 FQDN

查看当前主机名

要查看当前主机名,请执行以下hostnamectl命令:

hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 53da4f34f214440f9df0129411a1080f
           Boot ID: af2eccec1b024400bde30b025fb9efc0
    Virtualization: oracle
  Operating System: CentOS Stream 8
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-383.el8.x86_64
      Architecture: x86-64

在此示例中,当前主机名设置为localhost.localdomain

使用hostnamectl命令更改主机名

在CentOS 8和其它使用systemd作为初始化的程序的Linux发行版中。例如Ubuntu 18.04和Debian 7的更高版本。

您可以使用hostnamectl命令更改系统主机名。 hostnamectl命令语法如下:

sudo hostnamectl set-hostname host.example.com

例如,要将系统static主机名更改为host.myfreax.com,可以使用以下hostnamectl命令:

sudo hostnamectl set-hostname host.myfreax.com

要将pretty主机名设置为Myfeax's desktop,请输入:

sudo hostnamectl set-hostname "Myfeax's desktop" --pretty

hostnamectl命令不产生任何输出。 成功时返回0,否则返回非零失败代码。要验证主机名是否已成功更改,请再次运行hostnamectl命令。

使用nmtui命令配置主机名

nmtui是用于与NetworkManager进行交互的工具。 它也可以用来设置或更改系统的主机名。请在终端运行nmtui命令来启动该工具:

sudo nmtui

此时终端将会显示一个菜单选项,使用箭头键浏览选项,选择Set system hostname,然后按Enter

在输入框中输入新的主机名。按Enter确认修改主机名,如果你想放弃修改主机名,可按ESC键取消更改。

最后,使用systemctl命令重新启动systemd-hostnamed服务,以使更改生效:

sudo systemctl restart systemd-hostnamed

使用nmcli命令修改主机名

nmcli是用于控制NetworkManager的命令行工具,也可以用于更改系统的主机名。如你需要查看当前主机名,请运行以下nmcli命令:

sudo nmcli g hostname

要将主机名更改为host.myfreax.com,请使用以下nmcli命令:

sudo nmcli g hostname host.myfreax.com

最后,使用systemctl命令重新启动systemd-hostnamed服务,以使更改生效:

sudo systemctl restart systemd-hostnamed

结论

要在CentOS系统上设置或更改主机名,请使用hostnamectl set-hostname命令,后跟新的主机名。如有任何疑问,请随时发表评论。