临时修改hostname仅对当前会话有效,系统重启后会恢复为永久配置的值。适用于测试或临时调整场景。
sudo hostname new-hostname
执行后,当前终端会话的主机名会立即变更为new-hostname,但重启系统后失效。永久修改hostname需修改系统配置文件,并确保相关服务同步更新。以下是不同版本的具体步骤:
hostnamectl命令)hostnamectl是CentOS 7及以上版本官方推荐的hostname管理工具,可同时管理静态主机名(内核启动时读取)、瞬态主机名(运行时动态分配)、灵活主机名(用户友好显示)三类主机名。
步骤1:使用hostnamectl永久修改静态主机名
执行以下命令,将new-hostname替换为目标主机名(支持字母、数字、连字符,不支持空格或特殊字符):
sudo hostnamectl set-hostname new-hostname
该命令会自动更新/etc/hostname文件(静态主机名的存储路径),并立即生效内核主机名。
步骤2:手动更新/etc/hosts文件(可选但建议)
为了避免网络服务或本地应用解析错误,需确保/etc/hosts文件中127.0.0.1和::1对应的条目与新的hostname一致。执行以下命令编辑文件:
sudo vi /etc/hosts
找到类似以下的行,将old-hostname替换为new-hostname:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 new-hostname
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 new-hostname
保存并退出编辑器(Esc→:wq)。
CentOS 6及更早版本未使用hostnamectl,需通过修改配置文件实现永久修改。
步骤1:修改/etc/sysconfig/network文件
执行以下命令编辑文件:
sudo vi /etc/sysconfig/network
找到HOSTNAME行(若不存在则新增),将其值设置为new-hostname:
HOSTNAME=new-hostname
保存并退出编辑器。
步骤2:修改/etc/hosts文件
同CentOS 7及以上版本的步骤2,确保/etc/hosts中的主机名与/etc/sysconfig/network一致。
步骤3:重启网络服务或系统
执行以下命令重启网络服务,使配置生效:
sudo service network restart
或直接重启系统:
sudo reboot
无论使用哪种方法,修改完成后均需验证hostname是否生效。常用命令如下:
查看完整hostname信息(包括静态、瞬态、灵活主机名):
hostnamectl status
输出中Static hostname字段应显示新的hostname。
仅查看当前生效的hostname:
hostname
输出应为修改后的new-hostname。
/etc/hostname、/etc/sysconfig/network、/etc/hosts),避免误操作导致系统异常。hostnamectl会自动转换为小写),防止解析错误。