Linux 更改主机名设置方法
VPS 默认分配的主机名通常是太笼统或不便记忆。如果有多个 VPS,为方便平时管理,有必要更改下主机名。如果 VPS 面板没有提供更改选项,需要手动更改主机名。
主机名设置规范
规范主机名为 FQDN 格式,由主机别名 + 域名组成。主机别名允许使用字母、数字或连字符,最长 64 个字符。域名部分,如果没有自己注册域名,可以用 .localdomain
这种自定义域名。
例如下面的主机名示例(红色部分是主机别名,后面部分是域名)。
- 没有自己域名:webserver.localdomain
- 拥有自己域名:webserver.example.com
Linux 设置主机名(首选方法)
hostnamectl 介绍
在使用 systemd 的 Linux 系统里,有个 hostnamectl
工具,可以帮助我们方便地设置主机名。
先检查 hostnamectl
是否可用,运行下面命令会显示当前主机名状态。
hostnamectl status
如果提示找不到命令,则表明不能用 hostnamectl
设置主机名。需要修改文件设置(参考方法二)。
hostnamectl
可以设置三类主机名,分别是静态(Static)、动态(Transient)、易读(Pretty)。
- 静态主机名:由用户设置的主机名,存储在
/etc/hostname
文件中; - 动态主机名:系统启动初始化主机名,可由 DHCP 或 mDNS 分配;
- 易读主机名:由用户设置的展示主机名,允许使用特殊字符(UTF-8);
以下是查询各类型主机名命令:
# 查询静态主机名 hostnamectl status --static # 查询动态主机名 hostnamectl status --transient # 查询易读主机名 hostnamectl status --pretty
hostnamectl 设置主机名
设置主机名只需下面这句命令(它会同时设置三类主机名,即时生效。退出 SSH 重新登录查看)。
hostnamectl set-hostname webserver.localdomain
注:如果 VPS 商家有通过 DHCP 分配主机名,那么在系统启动时可能会更改主机名。要解決这个问题,避免使用 localhost
作为主机别名就行。
将主机名绑定本地 IP
编辑 /etc/hosts
文件,新加规则将主机名绑定到本地 IP(建议 FQDN 在前别名在后)。
127.0.0.1 webserver.localdomain webserver ::1 webserver.localdomain webserver
注:如果主机名使用的是自己域名,并设置了公共 DNS 解析,则可以不设置这步。
Linux 更改主机名(次选方法)
如果你用的老旧 Linux 发行版,需要通过修改配置文件设置主机名。
设置主机名
Debian & Ubuntu
编辑 /etc/hostname
文件,删除当前主机名输入新的保存。
RHEL & CentOS
编辑 /etc/sysconfig/network
文件,修改 HOSTNAME
参数值为新主机名保存。
绑定本地 IP
编辑 /etc/hosts
文件,新加规则将主机名绑定到本地 IP(建议 FQDN 在前别名在后)。
127.0.0.1 webserver.localdomain webserver ::1 webserver.localdomain webserver
注:如果主机名使用的自己域名,并设置了公共 DNS 解析,则可以不设置这步。
对于以修改文件方式设置主机名,需要 reboot
才能生效,用 hostname
命令检查确认。