修改主机名需按系统规范操作:Linux用hostnamectl设静态名并更新/etc/hosts;macOS需同步设置ComputerName、LocalHostName和HostName;Windows需重启生效,且防火墙规则可能重置。

修改电脑主机名时,必须确保新名称符合系统命名规范、不与局域网内其他设备冲突,并同步更新本地解析配置,否则可能导致网络服务异常、远程连接失败或某些软件启动报错。
检查当前主机名和系统类型
在终端中执行 hostname 查看当前主机名;再运行 uname -s 确认是 Linux 还是 macOS,因为两者修改方式不同。Windows 用户需跳过此步,直接进入「系统属性」设置界面。
Linux 下还可运行 hostnamectl status 获取更详细的主机信息,包括静态(static)、瞬态(transient)和柔性(pretty)三种主机名状态——【只有 static 类型才会被系统服务持久读取】。
Linux 系统修改主机名(推荐 hostnamectl 方式)
第一步:使用 root 权限执行 sudo hostnamectl set-hostname new-name,其中 new-name 不能含下划线、空格或特殊字符,建议只用小写字母、数字和短横线。
第二步:编辑 /etc/hosts 文件,将原来指向 127.0.1.1 或 127.0.0.1 的旧主机名替换为新名称。例如把 127.0.1.1 old-hostname 改成 127.0.1.1 new-name。这一步漏掉会导致 sudo、ssh、systemd-logind 等服务无法正常解析本机名。
第三步:重启 systemd-hostnamed 服务(可选)→ 执行 sudo systemctl restart systemd-hostnamed,让主机名变更立即对 D-Bus 接口生效。多数情况下无需重启,但 GNOME 或 KDE 桌面环境可能需要重新登录才能刷新顶部栏显示的主机名。
macOS 修改主机名
方法一:图形界面操作——打开「系统设置」→「通用」→「共享」,直接修改「电脑名称」字段。系统会自动同步更新 LocalHostName 和 HostName(DNS 主机名),但【LocalHostName 不允许含空格或中文,否则 Wi-Fi 热点和 AirDrop 可能失效】。
方法二:终端命令 → 分别执行三条命令:sudo scutil --set ComputerName "MyMac"(用户可见名)、sudo scutil --set LocalHostName "mymac"(本地网络识别名)、sudo scutil --set HostName "mymac.local"(SSH 登录显示名)。三者不一致时,AirDrop 用 LocalHostName,Terminal 提示符默认读取 HostName。
Windows 修改主机名
右键「此电脑」→「属性」→「高级系统设置」→「计算机名」选项卡→ 点击「更改」→ 在「计算机名」框中输入新名称 → 确定后重启系统。这一步会自动更新注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName 和 ActiveComputerName 两项。
注意:如果启用了 Windows Defender 防火墙的“专用网络”配置文件,主机名变更后可能触发防火墙重置规则,导致共享文件夹临时不可访问,需手动重新启用「网络发现」和「文件和打印机共享」。

















