如何在 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)来设置 static
和 transient
名称,例如 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
命令加上新的主机名进行修改。