云服务器主机名管理:用hostname替代IP,告别记数字

去年一个客户,运维了20多台云服务器,还在用IP地址管理。每次登录前要翻Excel表查IP,哪天忘了哪个IP对应哪个业务,就瞎了。
有一天误操作,本来要重启缓存服务器,结果重启了数据库。业务停了十分钟。
他说:“要是机器有名字就好了。”
服务器其实都有名字——主机名。但多数人只会看IP,主机名要么空着,要么放着不管。
01 IP是给机器看的,主机名是给人看的
172.31.8.102和web01-prod,哪个更容易记住、更容易识别?
IP是机器通信用的地址,主机名是服务器的身份标识,告诉运维人员这台机器是做什么的。没有主机名,20台服务器就是20串数字。有主机名,20台服务器就是20个有意义的标签。
02 好的主机名长什么样
命名规范的核心原则:一看就知道是什么、在哪里、做什么。
环境 + 角色 + 编号:
web01-prod:生产环境第一台Web服务器db01-prod:生产环境第一台数据库服务器cache01-staging:预发环境第一台缓存服务器
常见角色缩写:
web:Web服务器(Nginx/Apache)
app:应用服务器(业务代码)
db:数据库服务器(MySQL/PostgreSQL)
cache:缓存服务器(Redis/Memcached)
lb:负载均衡服务器
worker:任务处理服务器
IP地址作为主机名后缀:有时用IP段标识位置,便于快速定位。
03 永久修改主机名(别只改临时名字)
很多人用hostname命令改主机名,重启后失效。永久修改必须用hostnamectl。
查看当前主机名:hostnamectl或hostname
永久修改:
bash
sudo hostnamectl set-hostname web01-prod
修改后,新终端登录会显示新主机名。部分云厂商的云助手或DHCP机制会覆盖主机名,需要额外配置才能持久生效。
修改后要配/etc/hosts:修改主机名后,sudo会报错“无法解析主机名”,因为系统找不到127.0.1.1对应的解析条目。编辑/etc/hosts,加上新主机名的解析记录:
text
127.0.0.1 localhost 127.0.1.1 web01-prod
重启后生效。
04 内网DNS:让主机名真正用起来
改了主机名,但其他服务器想访问还是要用IP。要打通主机名之间的访问,需要内网DNS。
云厂商内网DNS:阿里云PrivateZone、腾讯云私有域解析,可以在VPC内添加内网域名解析记录。把主机名映射到内网IP,同VPC所有服务器都能通过主机名访问。
写在最后
那位客户后来重新规划了主机名,结合内网DNS,再也不用翻Excel找IP。他说:“现在看到web01-prod就知道是生产Web1,不用查表了。”
主机名管理的成本极低——改一个名字,配一个DNS——但带来的运维效率提升是长期的。用主机名替代IP,是人脑友好的第一步。你的服务器,有名字了吗?