在 DNS 服务器出现之前,网络上的每台计算机都需要一个主机名列表及其关联的 IP 地址。在 Linux 上,这可以在/etc/hosts文件中找到。我们现在确实有 DNS 服务器,但仍由计算机来广播其名称和地址。
今天,现代 Linux 系统具有三种不同的主机名。人眼最常看到的是漂亮的主机名。这可以包含在网络中无用的符号和空格,但有助于使其更加用户友好。另外两个是:
如果你使用它,你应该将漂亮的主机名配置为容易记住的东西,并允许瞬态和静态主机名是它的变体。Linux 会自动从漂亮的主机名中删除符号并用连字符替换空格。
在您着手更改主机名之前,让我们看看它当前的配置。毕竟,您可能已经在安装过程中将主机名设置为您想要的。如果没有,很容易改变。
查看 Linux 计算机主机名的最基本方法是查看终端中的提示。您通常会在每个命令的开头看到以下结构:
[username]@[hostname]
您还可以通过从终端发出命令主机名来检查计算机的主机名。
要获取计算机的主机名以及大量更多信息,您将使用hostnamectl命令。
如您所见,此命令还为您提供计算机的唯一机器 ID、引导 ID 以及有关虚拟化、操作系统、Linux 内核和处理器架构的信息。
您可以使用hostname或hostnamectl命令来更改 Linux 计算机的主机名。另一个命令sysctl将允许您更改计算机主机名的内核参数,而无需重新启动。不过,首先,您需要了解一些关于静态和瞬态主机名的基本规则:
在 Linux 中更改主机名的第一种也是最快的方法是使用hostname命令。您需要以 root 身份登录,或使用sudo发出命令。
如您所见,该命令不会返回任何输出。您可以通过再次运行不带任何参数的主机名命令来验证主机名是否已更改。此外,您会注意到主机名不会反映终端中的修改。但是,一旦您关闭并重新打开终端,您就会看到更改。
接下来,您可以使用hostnamectl进行更改。实际上,hostnamectl可以更改所有三种类型的主机名,而不仅仅是静态主机名。
sudo hostnamectl set-hostname ren
默认情况下,hostnamectl set-hostname将修改所有三种类型的主机名。您不会看到任何确认,但可以再次单独使用hostnamectl来查看您的更改。高级用户可以使用不同的标志和参数来改变这种行为。您可以在hostnamectl的在线手册页中找到这些内容的完整描述。
最后,您还可以使用sysctl更改内核主机名。
如您所见,如果不应用于所有三种主机名类型,这会导致您的系统具有与静态和漂亮主机名不同的临时主机名。
如果您使用 Gnome 桌面,还有另一种更改计算机主机名的方法。如果您转到Settings > About,您可以更改Device Name字段以设置不同的主机名。
在此之后发出hostnamectl命令显示 Linux 如何调整漂亮的主机名以应用于静态版本。它将大写字母更改为小写,将空格换成连字符,并删除所有符号。
如您所见,在 Linux 中更改主机名相当简单明了。事实上,这很容易,以至于我无意中这样做了几次而没有意识到。这给我们带来了最后一点:对您所做的任何更改都要有意识和深思熟虑并记录下来。
如果您要管理多个服务器或 Linux 桌面,您可能需要制定有关主机名的策略。如果是这样,您可以(并且应该)将其合并到同一个文档中,在其中详细说明安全和密码更改策略、用户管理、文件和磁盘管理计划以及有关 Linux 计算机的其他重要细节。