如何在 Ubuntu 18.04 上更改主机名

本教程将指导您在 Ubuntu 18.04 系统上完成更改主机名的过程。

主机名在安装 Ubuntu 操作系统时设置,或者如果您正在启动虚拟机,则会在启动时将其动态分配给实例。

本指南中介绍的方法无需重新启动系统即可运行。

虽然本教程是为 Ubuntu 18.04 编写的,但相同的说明适用于 Ubuntu 16.04 和任何基于 Ubuntu 的发行版,包括 Linux Mint 和 Elementary OS 。

先决条件

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

主机名是标识网络上的计算机的标签。您不应在同一网络上的两台不同计算机上使用相同的主机名。

显示当前主机名

要查看当前主机名,请输入以下命令:

1
hostnamectl
1
2
3
4
5
6
7
8
9
 Static hostname: ubuntu1804.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: 6f17445f53074505a008c9abd8ed64a5
Boot ID: 1c769ab73b924a188c5caeaf8c72e0f4
Virtualization: kvm
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-22-generic
Architecture: x86-64

如上所示,当前主机名设置为 ubuntu1804.localdomain 。

更改主机名

以下步骤概述了如何在 Ubuntu 18.04 中更改主机名。

使用更改主机名 hostnamectl

在 Ubuntu 18.04 中,我们可以使用命令 hostnamectl 更改系统主机名和相关设置。

例如,我们要将系统静态主机名更改为 buzheng ,我们可以使用以下命令:

1
sudo hostnamectl set-hostname buzheng

hostnamectl 命令不产生输出。成功时,返回 0 ,否则返回非零故障代码。

编辑 /etc/hosts 文件

打开 /etc/hosts 文件并将旧主机名更改为新主机名。

1
2
3
4
5
6
7
127.0.0.1   localhost
127.0.0.1 buzheng

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

编辑 cloud.cfg 文件。

如果安装了软件包 cloud-init ,您还需要编辑 /etc/cloud/cloud.cfg 文件。此软件包通常默认安装在由云提供商(如 AWS )提供的映像中,用于处理云实例的初始化。

要检查是否已安装软件包,请运行以下 ls 命令:

1
ls -l /etc/cloud/cloud.cfg

如果看到以下输出,则表示未安装软件包,无需进一步操作。

1
ls: cannot access '/etc/cloud/cloud.cfg': No such file or directory

如果安装了软件包,输出将如下所示:

1
-rw-r--r-- 1 root root 3169 Apr 27 09:30 /etc/cloud/cloud.cfg

在这种情况下,您需要打开 /etc/cloud/cloud.cfg 文件:

1
sudo nano /etc/cloud/cloud.cfg

搜索 preserve_hostname , 更改 false 为 true :

1
2
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true

保存文件并关闭编辑器。

验证更改

要验证主机名是否已成功更改,同样使用以下 hostnamectl 命令:

1
hostnamectl
1
2
3
4
5
6
7
8
9
 Static hostname: buzheng
Icon name: computer-vm
Chassis: vm
Machine ID: 6f17445f53074505a008c9abd8ed64a5
Boot ID: 1c769ab73b924a188c5caeaf8c72e0f4
Virtualization: kvm
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-22-generic
Architecture: x86-64

您应该能在控制台上看到新的主机名称。

结论

在本教程中,我们向您展示了如何在不重新启动计算机的情况下轻松更改 Ubuntu 服务器主机名。