在 Linux 中,hostname(主机名) 有一套约定俗成的命名规则和系统限制,不同发行版基本遵循 RFC 952 / RFC 1123 标准。下面从允许字符、长度限制、推荐规范、系统限制几个方面说明。
一个合法的 hostname 通常只能包含:
-_ 开头或结尾(部分系统禁止).(除非是 FQDN)✅ 示例:
server01
web-node-1
db-master
❌ 不推荐或非法:
server_01
web node
-hostname-
getconf HOST_NAME_MAX
# 通常是 64(含结尾 \0)
使用 systemd 的系统(如 CentOS 7+、Ubuntu 16+)区分三种 hostname:
/etc/hostnamehostnamectl set-hostname server01
hostnamectl set-hostname "Web Server 01" --pretty
如果 hostname 包含点 .,通常是 FQDN:
server01.example.com
规则:
- 开头或结尾hostname 通常应在 /etc/hosts 中解析到本机 IP:
127.0.1.1 server01
# 或
192.168.1.10 server01
否则可能导致:
sudo 慢角色-序号.环境.域名
示例:
web-01.prod.example.com
db-master.staging.internal
_# 查看 hostname
hostname
# 查看详细信息
hostnamectl
# 设置 hostname(永久)
hostnamectl set-hostname server01
# 临时设置
hostname temp-name
| 项目 | 规则 |
|---|---|
| 字符 | a–z 0–9 - |
| 长度 | ≤ 63 |
| 是否区分大小写 | 不区分(建议小写) |
| 是否允许空格 | ❌ |
是否允许 _ |
❌(不推荐) |
是否允许 . |
✅(仅 FQDN) |
| 推荐风格 | 小写下划线 |
如果你愿意,我也可以帮你: