银河麒麟系统修改主机名有五种方法:一、用hostnamectl永久修改;二、直接编辑/etc/hostname并刷新;三、用nmtui图形化设置;四、临时修改当前会话;五、通过Python脚本批量自动化修改。

如果您在银河麒麟系统中发现终端显示的主机名与预期不符,可能影响网络识别、服务部署或日志追踪。以下是修改主机名的多种可行方法,覆盖命令行与系统级配置场景:
一、使用 hostnamectl 命令永久修改主机名
该方法通过 systemd 提供的标准工具同步更新内核运行时主机名与持久化配置文件 /etc/hostname,适用于银河麒麟 V10 SP1 及后续版本,执行后立即生效且重启不丢失。
1、以管理员权限打开终端。
2、执行命令:sudo hostnamectl set-hostname 新主机名,例如:sudo hostnamectl set-hostname kylin-server-01。
3、验证更改结果:hostnamectl status,确认 “Static hostname” 行显示为新名称。
4、同步修正 /etc/hosts 文件中对应条目:执行 sudo vim /etc/hosts,将形如 127.0.1.1 原主机名 的行中的旧名称替换为新名称,保存退出。
二、直接编辑 /etc/hostname 文件并刷新内核主机名
该方法绕过高层管理工具,直接操作底层配置文件,适用于无 systemd 环境或需精确控制配置路径的场景,但必须手动确保 /etc/hosts 同步更新,否则可能导致本地服务解析失败。
1、使用文本编辑器打开主机名配置文件:sudo vim /etc/hostname。
2、删除原有内容,输入新主机名(仅一行,不可含空格、下划线或特殊字符),例如:kylin-desktop,按 Esc → :wq → Enter 保存退出。
3、编辑 hosts 映射文件:sudo vim /etc/hosts。
4、定位包含原主机名的行(常见为 127.0.1.1 原主机名),将其完整替换为:127.0.1.1 新主机名;若该行不存在,则在文件末尾新增此行。
5、立即加载新主机名至当前会话:sudo hostname -F /etc/hostname。
三、使用 nmtui 工具图形化设置主机名
nmtui 是 NetworkManager 提供的基于终端的交互式界面,可在无桌面环境的服务器版中完成主机名设置,其本质调用系统 API 更新配置,无需额外编辑文件,但部分版本需重启后完全生效。
1、在终端中输入命令启动工具:sudo nmtui。
2、使用方向键移动光标至 “Set system hostname” 选项,按 Enter 进入。
3、在弹出的输入框中输入新主机名,例如:kylin-server-prod,按 Tab 键切换至 OK,再按 Enter 确认。
4、退出 nmtui 工具,执行 hostname 验证当前会话是否已更新。
四、临时修改当前会话主机名
该方法仅更改当前 Shell 会话的运行时主机名,不写入任何配置文件,适用于调试、测试或临时标识场景,重启或新建终端后即恢复原值。
1、在终端中执行命令:sudo hostname 新主机名,例如:sudo hostname temp-test-01。
2、立即验证:hostname,输出应为刚设置的名称。
3、注意:此操作不会影响 /etc/hostname 或 /etc/hosts 内容,也不同步至其他已开启的终端会话。
五、通过 Python 脚本自动化修改主机名
该方法适用于批量部署场景,脚本自动完成 /etc/hostname 写入、/etc/hosts 替换及内核主机名刷新,具备基础权限校验与错误提示能力。
1、创建脚本文件:sudo nano /tmp/change_hostname.py。
2、粘贴以下内容(注意缩进):
#!/usr/bin/env python3
import os, sys
if len(sys.argv) != 2:
print("用法: sudo python3 change_hostname.py <新主机名>")
sys.exit(1)
new_name = sys.argv[1]
with open("/etc/hostname", "w") as f:
f.write(new_name + "\n")
os.system(f"sed -i 's/^127\.0\.1\.1[[:space:]]*.*/127.0.1.1 {new_name}/' /etc/hosts")
os.system(f"hostname -F /etc/hostname")
print(f"主机名已设为: {new_name}")
3、赋予执行权限:sudo chmod +x /tmp/change_hostname.py。
4、运行脚本:sudo python3 /tmp/change_hostname.py kylin-batch-01。

















