配置主机名
简介
hostname 有三种类型:static、transient 和 pretty。
- static:静态主机名,可由用户自行设置,并保存在 /etc/hostname 文件中。
- transient:动态主机名,由内核维护,初始是 static 主机名,默认值为“localhost”。可由 DHCP 或 mDNS 在运行时更改。
- pretty:灵活主机名,允许使用自由形式(包括特殊/空白字符)进行设置。静态/动态主机名遵从域名的通用限制。
说明:
static 和 transient 主机名只能包含 a-z、A-Z、0-9、“-”、“_”和“.”,不能在开头或结尾处使用句点,不允许使用两个相连的句点,大小限制为 64 个字符。
使用 hostnamectl 配置主机名
查看所有主机名
查看当前的主机名,使用如下命令:
# hostnamectl status
说明:
如果命令未指定任何选项,则默认使用 status 选项。
设定所有主机名
在 root 权限下,设定系统中的所有主机名,使用如下命令:
# hostnamectl set-hostname name
设定特定主机名
在 root 权限下,通过不同的参数来设定特定主机名,使用如下命令:
# hostnamectl set-hostname name [option...]
其中 option 可以是 --pretty、--static、--transient 中的一个或多个选项。
如果 --static 或 --transient 与 --pretty 选项一同使用时,则会将 static 和 transient 主机名简化为 pretty 主机名格式,使用“-”替换空格,并删除特殊字符。
当设定 pretty 主机名时,如果主机名中包含空格或单引号,需要使用引号。命令示例如下:
# hostnamectl set-hostname "Stephen's notebook" --pretty
清除特定主机名
要清除特定主机名,并将其还原为默认形式,在 root 权限下,使用如下命令:
# hostnamectl set-hostname "" [option...]
其中 “” 是空白字符串,option 是 --pretty、--static 和 --transient 中的一个或多个选项。
远程更改主机名
在远程系统中运行 hostnamectl 命令时,要使用 -H,--host 选项,使用如下命令:
# hostnamectl set-hostname -H [username]@hostname new_hostname
其中 hostname 是要配置的远程主机,username 为自选项,new_hostname 为新主机名。hostnamectl 会通过 SSH 连接到远程系统。
使用 nmcli 配置主机名
查询 static 主机名,使用如下命令:
# nmcli general hostname
在 root 权限下,将 static 主机名设定为 host-server,使用如下命令:
# nmcli general hostname host-server
要让系统 hostnamectl 感知到 static 主机名的更改,在 root 权限下,重启 hostnamed 服务,使用如下命令:
# systemctl restart systemd-hostnamed