Linux系统主机名的修改分为临时修改和永久修改两种场景,临时修改仅在当前会话生效,重启后会恢复原有配置,永久修改则会持久化保存配置,重启后依然生效。不同Linux发行版的操作方式略有差异,下面分别介绍具体的操作方法。

临时修改主机名
临时修改主机名不需要修改系统配置文件,直接通过命令行执行即可,当前会话的所有进程都会识别新的主机名,但是系统重启后会自动恢复为原来的主机名。
使用hostname命令可以直接设置临时主机名,执行以下命令:
# 将主机名临时修改为new_hostname,替换为你需要的主机名即可 hostname new_hostname
执行完成后可以通过hostname命令验证是否修改成功,直接执行该命令会输出当前的主机名。
永久修改主机名
使用hostnamectl命令(适用于systemd管理的系统)
目前大多数主流Linux发行版都使用systemd作为初始化系统,这类系统可以直接使用hostnamectl命令永久修改主机名,该命令会自动更新对应的配置文件,无需手动编辑。
执行以下命令即可完成永久修改:
# 永久修改主机名为new_hostname,替换为你需要的主机名 hostnamectl set-hostname new_hostname
该命令会自动更新/etc/hostname文件的内容,同时会更新/etc/hosts文件中对应的主机名映射,避免本地服务解析出现问题。修改完成后可以通过以下命令查看当前主机名的状态:
# 查看主机名详细信息 hostnamectl
手动修改配置文件(适用于非systemd系统)
对于不使用systemd的老版本Linux系统,需要手动修改两个配置文件来完成永久修改。
首先编辑/etc/hostname文件,该文件仅保存主机名本身,将文件内容替换为你需要的新主机名即可:
# 编辑/etc/hostname文件 vim /etc/hostname
文件内容示例:
new_hostname
然后编辑/etc/hosts文件,找到原来主机名对应的映射行,将原来的主机名替换为新的主机名,避免本地服务解析异常:
# 编辑/etc/hosts文件 vim /etc/hosts
文件修改示例:
127.0.0.1 localhost 127.0.0.1 new_hostname # 将原来的主机名替换为new_hostname
修改后生效验证
如果是使用hostnamectl命令修改的主机名,大部分场景下新的主机名会立即生效,但是部分已经启动的进程可能不会识别新的主机名,建议执行以下命令让当前会话生效:
# 重新加载当前shell会话的主机名配置 exec bash
如果是手动修改配置文件的方式,修改完成后需要重启系统或者重启网络服务让配置生效:
# 重启网络服务,不同发行版命令略有差异 # CentOS/RHEL系统 systemctl restart network # Ubuntu/Debian系统 systemctl restart systemd-hostnamed
最后可以通过hostname命令或者hostnamectl命令验证主机名是否已经修改成功。
注意事项
- 主机名建议使用小写字母、数字和连字符组合,不要包含特殊字符和空格,避免部分服务解析出现异常。
- 修改
/etc/hosts文件时,不要删除127.0.0.1 localhost这一行,否则可能导致本地服务无法正常访问。 - 如果是云服务器修改主机名,部分云厂商的控制台可能会同步显示主机名,修改后可以在控制台确认是否同步更新。
Linuxhostnamehostnamectl主机名修改network修改时间:2026-07-14 20:00:17