通常,主机名是在操作系统安装期间设置的,或者在创建虚拟机时动态分配给虚拟机的。
您可能需要更改主机名的原因有很多。最常见的是在实例创建后自动设置主机名的情况。在继续本教程之前,请确保您以具有sudo权限的用户登录。
主机名是用于标识网络设备的标签。您不应该在同一网络上拥有相同主机名的计算机。主机名分别是以下三类。
static静态主机名,即传统的主机名。主机名存储在/etc/hostname
文件中,可以由用户设置。
pretty主机名用于向用户展示的主机名。 例如Myfreax's desktop
。
transient主机名由内核维护的动态主机名。DHCP或mDNS服务器可以在运行时更改临时的主机名。默认情况下,它与static
主机名相同。
对于static
和transient
名称,例如host.example.com
,建议使用完全限定的域名 FQDN。
查看当前主机名
要查看当前主机名,请运行hostnamectl
命令。在此示例中,当前主机名设置为localhost.localdomain
:
hostnamectl
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: 53da4f34f214440f9df0129411a1080f
Boot ID: af2eccec1b024400bde30b025fb9efc0
Virtualization: oracle
Operating System: Ubuntu 18.04
CPE OS Name: cpe:/o:ubuntu
Kernel: Linux 4.18.0-383.el8.x86_64
Architecture: x86-64
hostnamectl更改主机名
在Ubuntu和其它使用systemd
作为初始化的程序的Linux发行版中。例如CentOS和Fedora/RedHat的更高版本。
您可以使用hostnamectl
命令更改系统主机名。这是hostnamectl
命令的语法sudo hostnamectl set-hostname host.example.com
。
例如,要将系统静态主机名更改为host.myfreax.com
,可以运行命令sudo hostnamectl set-hostname host.myfreax.com
。
要将pretty主机名设置为Myfeax's desktop
,在运行hostnamectl
命令时添加--pretty
选项。
hostnamectl
命令不产生任何输出。成功时返回0,否则返回非零失败代码。要验证主机名是否已成功更改,请再次运行hostnamectl
命令。
sudo hostnamectl set-hostname host.myfreax.com
sudo hostnamectl set-hostname "Myfeax's desktop" --pretty
hostnamectl
nmtui配置主机名
nmtui
是用于与NetworkManager
进行交互的工具。它也可以用来设置或更改系统的主机名。请在终端运行nmtui
命令来启动该工具。
此时终端将会显示一个菜单选项,使用箭头键浏览选项,选择Set system hostname
,然后按Enter
。
在输入框中输入新的主机名。按Enter
确认修改主机名,如果你想放弃修改主机名,可按ESC键取消更改。
最后,运行systemctl
命令重新启动systemd-hostnamed
服务,使更改生效。
sudo nmtui
sudo systemctl restart systemd-hostnamed
nmcli修改主机名
nmcli
是用于控制NetworkManager
的命令行工具,也可以用于更改系统的主机名。如你需要查看当前主机名,请运行sudo nmcli g hostname
命令。
要将主机名更改为host.myfreax.com,请运行命令sudo nmcli g hostname host.myfreax.com
。
最后,使用systemctl
命令重新启动systemd-hostnamed
服务,以使更改生效:
sudo nmcli g hostname
sudo nmcli g hostname host.myfreax.com
sudo systemctl restart systemd-hostnamed
结论
要在Ubuntu 18.04系统设置或更改主机名,请使用hostnamectl set-hostname
命令,后跟新的主机名。如有任何疑问,请随时发表评论。