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映射,集群命名统一便于日志检索与监控告警。


emer 发布于  2026-10-22 07:11 

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 协助处理


emer 发布于  2026-10-6 07:58 
'); })();