如何在 CentOS 8 上修改主机名

通常主机名在操作系统安装过程中设置或者在创建虚拟机的过程中动态指定的。

有很多原因,你需要去改变主机名。最常见的原因就是,当自动创建实例的时候,需要自动设置主机名。

这篇指南解释了如何在 CentOS 8 上修改主机名,而不需要重启系统。

一、前提条件

在继续这篇文章之前,请确保你使用一个有 sudo 权限的账号登录了系统。

二、理解主机名

一个主机名就是在网络上标记一个设备的标签名称。在同一个网络中,你不应该有两台或者更多机器拥有同样的主机名。

hostname有三种类型:static, pretty, 和 transient

  • static – 传统主机名。它存储在/etc/hostname文件中,并且可以被用户设置
  • pretty – 一个自由形态的 UTF8 主机名,用来代表用户。例如: Linuxize's desktop
  • transient – 由 kernel 维护的动态主机名。 在运行过程中,DHCP 或者 mDNS 服务器可以改变 transient 主机名。默认情况下,它和 static 主机名一模一样。

我们强烈推荐使用完整域名(FQDN)来设置statictransient名称,例如host.example.com

三、显示当前主机名

执行下面的命令,显示当前主机名。

hostnamectl

复制

在这个例子中,当前主机名被设置为centos8.localdomain

四、修改主机名

方法一、使用hostnamectl命令

在 CentOS 8 和所有使用 systemd 的 Linux 发行版中,你可以使用hostnamectl命令来修改系统主机名和相关的设置。语法如下:

sudo hostnamectl set-hostname host.example.com
sudo hostnamectl set-hostname "Your Pretty HostName" --pretty
sudo hostnamectl set-hostname host.example.com --static
sudo hostnamectl set-hostname host.example.com --transient

复制

例如,想将系统 static 主机名改成host.linuxize.com,你将用到下面的命令:

sudo hostnamectl set-hostname host.linuxize.com

复制

想将 pretty 主机名修改成Linuxize's desktop,输入:

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

复制

hostnamectl命令不会产生输出。如果成功,返回 0,否则,返回一个非零错误码。

想要验证主机名是否成功修改,使用hostnamectl命令。

方法二、使用nmtui命令

nmtui是一个基于 curses 的工具,它与网络管理器交互。它也可以用来设置或者修改主机名。

启动这个工具,在终端输入它的名字:

sudo nmtui

复制

使用方向按键移动,选择Set system hostname,并且按’Enter’回车键:

输入新的主机名:

Enter回车键确认新的主机名:

最后,重启systemd-hostnamed服务,使得修改生效:

sudo systemctl restart systemd-hostnamed

复制

方法三、使用nmcli命令

nmcli是一个用来控制网络管理器的命令行工具,并且它也可以修改系统的主机名。

查看当前主机名,输入:

sudo nmcli g hostname

复制

想要将主机名修改为host.linuxize.com,使用下面的命令:

sudo nmcli g hostname host.linuxize.com

复制

为了让修改生效,重启systemd-hostnamed服务:

sudo systemctl restart systemd-hostnamed

复制

五、结论

想要修改 CentOS 系统的主机名,使用hostnamectl set-hostname命令加上新的主机名进行修改。

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注