插件窝 干货文章 各版本Linux 系统如何修改主机名?

各版本Linux 系统如何修改主机名?

hostname 主机 修改 sudo 876    来源:    2025-05-11

在 Linux 系统中修改主机名(hostname)的方法因发行版和初始化系统(init system)的不同而有所差异。以下是主流 Linux 发行版和初始化系统的修改方法:


一、临时修改(重启后失效)

适用于所有 Linux 发行版,但重启后恢复原主机名:

sudo hostname "new-hostname"  # 立即生效

验证:

hostname  # 查看当前主机名

二、永久修改(不同发行版/初始化系统)

1. Systemd 系统(大多数现代发行版)

适用系统:Ubuntu 16.04+/CentOS 7+/RHEL 7+/Debian 8+ 等

sudo hostnamectl set-hostname "new-hostname"  # 永久修改

验证

hostnamectl status  # 检查静态/动态主机名

2. 修改 /etc/hostname 文件(通用方法)

echo "new-hostname" | sudo tee /etc/hostname  # 写入新主机名
sudo reboot  # 重启生效

3. 旧版 SysVinit 系统(如 CentOS 6/RHEL 6)

sudo vi /etc/sysconfig/network  # 修改 HOSTNAME="new-hostname"
sudo reboot

4. 修改 /etc/hosts 文件(重要!)

无论哪种方法,需确保 /etc/hosts 中包含新主机名映射:

127.0.0.1   localhost new-hostname
::1         localhost new-hostname

三、发行版特定方法

Ubuntu/Debian

sudo sed -i 's/old-hostname/new-hostname/g' /etc/hostname /etc/hosts
sudo service systemd-hostnamed restart  # 无需重启

CentOS/RHEL

sudo vi /etc/hostname  # 直接编辑文件
sudo systemctl restart systemd-hostnamed

Arch Linux

echo "new-hostname" > /etc/hostname
sudo systemctl restart hostnamectl

四、验证修改

hostname           # 查看当前主机名
hostnamectl       # 查看详细主机名状态
uname -n          # 另一种验证方式
cat /etc/hostname # 检查配置文件

注意事项

  1. 避免特殊字符:主机名建议仅使用字母、数字、连字符(-),避免下划线或空格。
  2. 网络依赖:如果主机名用于网络服务(如 DHCP/DNS),需同步更新相关配置。
  3. 容器环境:在 Docker/Kubernetes 中修改主机名需使用专用参数(如 docker run --hostname)。

按以上步骤操作后,主机名将在当前会话和重启后均生效。