Linux查看主机名
Linux查看主机名
引言
多台服务器排障、日志定位、主机识别时先确认主机名。hostname命令最直接,hostnamectl看完整静态/瞬态/灵活名,cat /etc/hostname看持久化配置,三者来源不同,排障时别混。
查看当前主机名
hostname
一行输出当前系统主机名,登录终端提示符里显示的就是它。
hostnamectl 详细信息
hostnamectl
显示静态主机名、瞬态主机名、灵活主机名,还有操作系统、内核、架构等信息,CentOS7以上通用。
查看持久化配置
cat /etc/hostname
这里保存的是重启后生效的主机名,临时hostname改了不落盘,重启会回到这里的值。
查看IP对应名称
hostname -I
输出本机所有非回环IP,配合主机名做主机识别。
临时修改(重启失效)
hostname web-server-01
当前会话立即生效,重启后被/etc/hostname覆盖。
永久修改
hostnamectl set-hostname web-server-01
写入/etc/hostname,重启后保留;改完重连SSH或执行bash使提示符刷新。
注意事项
- 主机名建议用小写字母、数字、中划线,别用中文和下划线;
- 主机名含点号会被当成FQDN,短名和全名分开看;
- 改完主机名记得同步/etc/hosts里127.0.0.1映射,避免部分解析异常;
- 容器内hostname通常跟随容器名,重启重建会变;
- 集群里主机名要规范统一,便于日志检索和监控告警;
- 临时hostname与静态名不一致时,以配置文件为准。
总结
hostname查看当前主机名,hostnamectl看完整主机名分类和系统信息,cat /etc/hostname看持久化配置,hostname -I看本机IP。临时用hostname改名立即生效但重启失效,永久用hostnamectl set-hostname写入配置。主机名规范用小写加中划线,修改后同步/etc/hosts映射,集群命名统一便于日志检索与监控告警。
Linux怎么修改主机名,永久生效方法
前言
新装好的服务器默认主机名是 localhost 或者一串乱七八糟的字符,不好区分。怎么改成自己想要的名字,而且重启后还生效?本文讲一下。
查看当前主机名
先看看现在主机名是什么:
hostname
输出类似:
localhost.localdomain
修改主机名的方法
方法一:hostnamectl(推荐,CentOS7+)
这是最方便的方法,一条命令永久生效:
hostnamectl set-hostname 新主机名
比如改成 web-server:
hostnamectl set-hostname web-server
注意: 主机名只能用小写字母、数字、横杠(-),不能用下划线、中文、空格。
方法二:修改配置文件
编辑 /etc/hostname 文件:
vi /etc/hostname
把里面的内容改成新的主机名,保存退出。
然后重启生效:
reboot
或者不重启,手动让它生效:
hostname 新主机名
方法三:临时修改
只改当前运行时的主机名,重启后就恢复:
hostname 新主机名
注意: 这个只是临时生效,重启后还是原来的。
修改后验证
重新登录一下 SSH,或者执行:
bash
让当前 shell 生效,然后看:
hostname
应该显示新的主机名了。
同时修改 hosts
有些服务(比如 MySQL)会用到主机名,最好同时把 /etc/hosts 也改一下:
vi /etc/hosts
找到类似这一行:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
在后面加上新主机名:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 web-server
保存退出。
常见坑
坑1:改了主机名但命令行没变
执行了 hostnamectl set-hostname,但命令行前面还是显示旧的。
原因: 当前 shell 会话没刷新。
解决: 退出重新登录 SSH,或者执行 bash 开个新 shell。
坑2:重启后又变回原来的
改了主机名,重启之后又变回去了。
原因: 只执行了 hostname 新名字(临时修改),没改配置文件。
解决: 用 hostnamectl set-hostname 新名字 永久修改。
坑3:主机名有大写或者下划线
主机名用了大写字母或者下划线,有些服务报错。
原因: 主机名规范要求只能用小写字母、数字、横杠。
正确写法: web-server-01
错误写法: Web_Server_01
坑4:改了主机名导致服务连不上
改了主机名之后,某些服务连不上数据库或者其他服务。
原因: 那些服务里配置的还是旧主机名。
解决: 把相关服务的配置里的主机名也改过来,或者同时改 /etc/hosts 做映射。
总结
| 方法 | 命令 | 是否永久 |
|---|---|---|
| hostnamectl | hostnamectl set-hostname 新名字 |
是(推荐) |
| 修改 /etc/hostname | 编辑文件后重启 | 是 |
| hostname | hostname 新名字 |
否(临时) |
推荐用 hostnamectl set-hostname,一条命令搞定,永久生效。
遇到问题加QQ23979811 协助处理