在RHEL7中,修改主机名主要使用hostnamectl命令,临时修改可执行hostnamectl set-hostname "新主机名"(重启后失效);永久修改需指定类型,如静态主机名(--static)、瞬态主机名(--transient)或美观主机名(--pretty),hostnamectl set-hostname --static "new-hostname",查看当前主机名可用hostnamectl status,相比传统hostname命令,hostnamectl支持动态管理,且能同步修改/etc/hostname`文件,确保配置持久化。
在Linux系统管理中,主机名(Hostname)是标识系统在网络中的身份的重要参数,常用于远程连接、服务配置及日志管理等场景,在RHEL7(Red Hat Enterprise Linux 7)系统中,修改主机名的方式相较于传统版本有所调整,本文将详细介绍RHEL7中修改主机名的核心命令及其使用方法,帮助用户快速掌握操作技巧。
RHEL7主机名的类型:静态、瞬态与灵活
在了解具体命令前,需先明确RHEL7中主机名的三种类型,这直接关系到修改命令的选择和效果:
- 静态主机名(Static Hostname):存储在
/etc/hostname文件中,是系统重启后仍会保留的主机名,也是推荐设置的“正式”主机名。 - 瞬态主机名(Transient Hostname):由系统动态管理(如通过DHCP服务器分配),重启后会失效,优先级低于静态主机名。
- 灵活主机名(Pretty Hostname):允许包含特殊字符(如空格、标点)的“友好”主机名,常用于显示界面,但不建议用于网络通信。
RHEL7中修改主机名的核心命令
RHEL7推荐使用hostnamectl命令管理主机名,该命令属于systemd套件,功能全面且操作简单,也可通过直接编辑/etc/hostname文件或临时使用hostname命令实现,但各有适用场景。

hostnamectl命令:推荐方式,功能全面
hostnamectl是RHEL7中管理主机名的标准工具,支持设置静态、瞬态、灵活主机名,并提供查看、修改、更新等功能。
(1)查看当前主机名信息
执行以下命令可查看当前所有类型的主机名及系统相关信息:
hostnamectl status
输出示例:
Static hostname: rhel7-server # 静态主机名
Icon name: computer-server
Machine ID: 1234567890abcdef1234567890abcdef12345678
Boot ID: 0987654321abcdef0987654321abcdef09876543
Operating System: Red Hat Enterprise Linux 7.9 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7:ga
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
若仅需查看静态主机名,可结合grep过滤:
hostnamectl status | grep "Static hostname"
(2)修改静态主机名(推荐)
静态主机名是系统持久化的标识,日常使用中应优先修改静态主机名,命令格式:
sudo hostnamectl set-hostname <新主机名>
示例:将静态主机名修改为web-server-01:
sudo hostnamectl set-hostname web-server-01
执行后,/etc/hostname文件会自动更新,无需手动保存,且重启后依然生效。
(3)修改灵活主机名
若需设置包含特殊字符的“友好”主机名(如“Web Server 01”),使用--pretty参数:
sudo hostnamectl set-hostname --pretty "Web Server 01"
注意:灵活主机名主要用于显示,网络通信中仍会使用静态主机名。
(4)修改瞬态主机名
临时修改主机名(重启后失效),使用--transient参数:
sudo hostnamectl set-hostname --transient temp-server
此方式适用于临时测试场景,不建议长期使用。
(5)重置主机名
若需将静态主机名重置为默认值(如localhost.localdomain),可删除/etc/hostname文件中的内容并重启,或使用以下命令:
sudo hostnamectl set-hostname ""
直接编辑/etc/hostname文件:传统方式,需手动生效
/etc/hostname文件是存储静态主机名的核心配置文件,通过编辑该文件可直接修改静态主机名,但修改后需手动触发生效(或重启系统)。
操作步骤
(1)使用文本编辑器(如vi、nano)打开文件,需root权限:
sudo vi /etc/hostname
(2)修改文件内容为新的主机名(仅保留一行,无需其他字符):
web-server-01
(3)保存文件后,执行以下命令使修改立即生效(无需重启):
sudo hostname -F /etc/hostname
或重启系统:
sudo reboot
注意事项
- 编辑
/etc/hostname文件仅影响静态主机名,不会更新瞬态或灵活主机名。 - 若修改后主机名未立即生效,可能是
NetworkManager服务未读取新配置,可尝试重启网络服务:sudo systemctl restart NetworkManager。
hostname命令:临时修改,重启失效
hostname命令是Linux系统中通用的临时修改主机名工具,但在RHEL7中,其修改结果仅对当前会话有效,重启后会恢复为静态主机名(/etc/hostname中的值)。
使用方法
sudo hostname <临时主机名>
示例:
sudo hostname temp-test
执行后,通过hostname或hostnamectl status可查看临时主机名,但重启系统后会失效。
适用场景
适用于临时测试或快速切换主机名的场景,无需持久化时使用。
修改主机名后的注意事项
-
更新
/etc/hosts文件
修改主机名后,建议同步更新/etc/hosts文件中的本地主机名解析记录,避免导致网络服务异常(如Apache、Nginx等),编辑/etc/hosts文件,确保0.0.1和:1对应的主机名与新的静态主机名一致:sudo vi /etc/hosts ``` 示例:
0.0.1 localhost localhost.localdomain 127.0.0.1 web-server-01 ::1 localhost localhost.localdomain web-server-01
-
检查网络服务依赖
部分服务(如SSH、邮件服务器

