1. 介绍
为什么要在 Ubuntu 中更改主机名?
主机名是用于在系统或网络中标识机器的关键元素,无论是管理服务器还是虚拟机都离不开它。尤其在企业和云环境中,往往会运行多个服务器或虚拟机,拥有清晰且有意义的主机名直接提升了运维效率并简化了管理工作。迁移服务器或对现有环境进行改动时,通常也需要修改主机名。
本文将说明如何在 Ubuntu 中临时更改主机名、如何进行永久性更改以在重启后仍然生效,以及如何使用 Netplan 配置网络设置。
2. 如何检查当前主机名
验证主机名的命令
以下命令是检查当前配置主机名的最基本方法:
hostname
该命令会显示当前的主机名。如果想获取更详细的系统信息,可使用下面的 hostnamectl 命令:
hostnamectl
该命令不仅会显示主机名,还会输出详细的系统信息,示例输出类似如下:
Static hostname: my-hostname
Operating System: Ubuntu 20.04 LTS
至此,你已经成功确认了主机名。

3. 如何临时更改主机名
使用 hostname 命令
要临时更改主机名,请使用 hostname 命令。此更改在重启后会恢复,适合短期测试或在虚拟机上进行的临时工作。
sudo hostname new-hostname
例如,要将主机名临时改为 temp-hostname,运行以下命令:
sudo hostname temp-hostname
验证临时更改
再次运行 hostnamectl 命令以确认主机名已正确更改:
hostnamectl
这样即可验证更改已成功生效。不过,由于主机名在重启后会恢复,如果需要永久更改,请继续后面的步骤。
4. 如何永久更改主机名
使用 hostnamectl 命令
永久更改主机名最推荐的方式是使用 hostnamectl 命令。该方法可确保主机名在系统重启后仍然保持不变。
sudo hostnamectl set-hostname new-hostname
例如,要将主机名改为 my-new-hostname,执行以下操作:
sudo hostnamectl set-hostname my-new-hostname
直接编辑 /etc/hostname 文件
另一种永久方法是手动编辑 /etc/hostname 文件。
- 使用文本编辑器打开
/etc/hostname文件。sudo nano /etc/hostname
- 将当前主机名替换为新的主机名。
my-new-hostname
- 保存文件,退出编辑器,然后重启系统。
sudo reboot
编辑 /etc/hosts 文件
更改主机名时,别忘了同步更新 /etc/hosts 文件。该文件负责将主机名映射到 IP 地址。
127.0.1.1 my-new-hostname
这样可以确保网络中能够正确识别新的主机名。
5. 使用 Netplan 更改主机名和网络设置
什么是 Netplan?
Netplan 是 Ubuntu 用于管理网络配置的工具,特别适用于服务器和虚拟机环境。它能够在云端或大规模部署中自动化网络配置,并实现主机名与网络设置的统一管理——在复杂网络场景下尤为有用。
使用 Netplan 更改主机名和网络设置
- 编辑 Netplan 配置文件。
sudo nano /etc/netplan/50-cloud-init.yaml
- 在文件中添加主机名和网络配置。
network: ethernets: ens33: addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 version: 2 hostname: my-new-hostname
- 使用以下命令应用 Netplan 配置:
sudo netplan apply
故障排除
如果在应用 Netplan 设置时出现错误,请使用以下命令显示调试信息并定位问题:
sudo netplan --debug apply
如果出现错误信息,通常是由于语法错误或网络设置配置不当导致的,请仔细检查配置文件。建议在修改之前先备份原始配置。
6. 安全注意事项
更改主机名可能会影响 SSH 连接和防火墙设置,因此验证正确的安全配置至关重要。修改主机名后,请确保 /etc/hosts 文件和防火墙规则已反映正确的设置。此外,确认 SSH 访问仍然可用,并在必要时更新相关配置。
7. 总结
Ubuntu 提供两种更改主机名的方法:临时和永久。使用 hostname 命令进行临时更改,使用 hostnamectl 进行永久更改。通过 Netplan 管理配置也很有益,尤其在复杂的网络环境中。
更改主机名后,请始终检查 /etc/hosts 文件、防火墙规则和 SSH 设置,以确保系统正常运行。
