如何在 CentOS 上修改主机名

时间:2021-11-22     作者:smarteng     分类: Linux命令


通常主机名在操作系统安装过程中设置或者在创建虚拟机的过程中动态指定的。
有很多原因,你需要去改变主机名。最常见的原因就是,当自动创建实例的时候,需要自动设置主机名。
这篇指南解释了如何在 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

   Static hostname: tencent42
         Icon name: computer-vm
           Chassis: vm
        Machine ID: xxxxx
           Boot ID: xxxxx
    Virtualization: kvm
  Operating System: TencentOS Server 3.1 (Final)
       CPE OS Name: cpe:/o:tencentos:tencentos:3
            Kernel: Linux 5.4.119-19-0008
      Architecture: x86-64

在这个例子中,当前主机名被设置为 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 命令加上新的主机名进行修改。

标签: hostname