CentOS虚拟机设置hostname的完整步骤
在修改前,先确认当前主机名,可使用以下命令之一:
hostname # 查看当前生效的主机名(瞬态或静态)
hostnamectl # 查看静态、瞬态、灵活三种主机名状态(CentOS 7+推荐)
输出示例:localhost.localdomain(默认值)。
hostnamectl命令(最简方式,适用于CentOS 7及以上)hostnamectl set-hostname your-new-hostname
将your-new-hostname替换为所需主机名(如k8s-node1、hadoop100),无需重启系统,立即生效(新会话或重启后仍保持)。
需修改以下两个文件,确保信息一致:
/etc/hostname文件:vi)打开,删除原有内容,写入新主机名:vi /etc/hostname
示例:将localhost.localdomain改为slave2,保存退出(:wq)。/etc/hosts文件:127.0.0.1和::1行,将后面的旧主机名(如localhost.localdomain)替换为新主机名:vi /etc/hosts
示例修改:127.0.0.1 localhost slave2
::1 localhost slave2
保存退出,确保无空行。/etc/sysconfig/network文件(CentOS 6/7传统方式)若系统使用传统网络配置,需编辑此文件设置静态主机名:
vi /etc/sysconfig/network
修改或添加以下行:
HOSTNAME=your-new-hostname
保存退出,重启后生效。
若需临时更改主机名(如测试),可使用以下命令:
hostname your-temp-hostname
注意:重启系统或新会话后会恢复为永久设置的主机名。
修改完成后,可通过以下命令验证:
hostname # 查看当前生效主机名
hostnamectl # 查看静态主机名状态
cat /etc/hostname # 确认文件内容是否正确
cat /etc/hosts # 确认IP与主机名映射是否正确
若修改后未生效,可尝试重启系统或重启网络服务(CentOS 7+):
systemctl restart network # CentOS 7及以下
systemctl restart NetworkManager # CentOS 8及以上
-,不能以数字开头或包含下划线_、点.等特殊字符。/etc/cloud/cloud.cfg文件(删除preserve_hostname: false等与hostname相关的限制项),否则修改可能不生效。/etc/hosts文件中IP与主机名的映射正确,或配置DNS解析。