什么是主机名?
主机名是分配给联网设备、用于在网络中识别该设备的可读标签。在域名语境中,主机名通常是完全限定域名(FQDN)最左侧的组成部分,例如 www.example.com 中的“www”,或 mail.example.com 中的“mail”。主机名为服务器提供易记的标识,否则用户只能通过 IP 地址访问这些服务器。主机名的结构和约定
域名中的主机名
www.example.com
│ │ │
│ │ └── TLD
│ └── Second-level domain
└── Hostname (subdomain)
常见主机名
| 主机名 | 典型用途 |
|---|---|
| www | Web 服务器(World Wide Web) |
| 邮件服务器 | |
| ftp | 文件传输服务器 |
| api | API 端点服务器 |
| dev | 开发环境 |
| staging | 预生产测试 |
| blog | 博客平台 |
| shop | 电子商务平台 |
| cdn | 内容分发网络 |
| ns1、ns2 | DNS 名称服务器 |
主机名与域名的区别
需要理解三者的区别:
- 主机名:识别具体机器(www、mail、ftp)
- 域名:已注册的名称(example.com)
- FQDN:将两者组合起来的完整地址(www.example.com.)
示例拆解
server01.datacenter.example.com.
│ │ │ │
│ │ │ └── Root (implicit)
│ │ └── Domain
│ └── Subdomain
└── Hostname (machine identifier)
主机名规则和限制
有效主机名必须遵循以下约定:
1. 长度:每个标签 1-63 个字符,FQDN 总长度最多 253 个字符
2. 字符:字母(a-z)、数字(0-9)和连字符(-)
3. 开头和结尾:必须以字母或数字开头和结尾
4. 大小写:不区分大小写(DNS 将 A-Z 和 a-z 视为相同)
5. 不能使用下划线:虽然常见,但下划线不符合 RFC 标准
有效示例
www
mail-server
server01
api-v2
my-app-prod
无效示例
-server (starts with hyphen)
server_ (contains underscore - technically invalid)
my..server (consecutive dots)
主机名的 DNS 配置
主机名通过 DNS 记录映射到 IP 地址:
A 记录(IPv4)
www IN A 192.0.2.1
mail IN A 192.0.2.2
AAAA 记录(IPv6)
www IN AAAA 2001:db8::1
CNAME(别名)
blog IN CNAME www.example.com.
本地主机名与网络主机名
本地主机名
在设备本身设置:
# Linux/Mac
hostname
hostnamectl set-hostname webserver01
# Windows
hostname
网络主机名
在 DNS 中配置并解析到 IP:
- 通过 DNS 区域文件管理
- 需要配置 DNS 服务器
- 会传播到互联网各处
最佳实践
1. 使用描述性名称:让主机名体现设备用途
2. 遵循命名约定:建立一致的命名模式
3. 保持简短:更容易输入和记忆
4. 避免特殊字符:只使用字母数字和连字符
5. 记录分配关系:维护主机名到 IP 的映射
6. 考虑扩展规模:为多台服务器采用编号方案
主机名是网络识别的基础,把人类可读的标签与计算机通信所使用的数字 IP 地址连接起来。