修复 macOS 终端在私网 DNS 下 Host Name 显示为 IP 段的问题

在部分企业或家庭私网环境中,DNS 反向解析会将设备的私网 IP 映射为一个以 19217210 开头的主机名。此时 macOS 终端提示符会从正常的 user@MacBook-Pro 变为 user@192-168-1-100 这样的形式,影响日常使用体验。

原因

macOS 在启动终端会话时会通过反向 DNS 查询当前 IP 对应的主机名。当私网 DNS 服务器返回了一个基于 IP 段拼凑的主机名(例如 192-168-1-100.example.com)时,系统便会采纳该名称作为 Host Name,终端提示符随之改变。

修复方法

使用 macOS 自带的 scutil(System Configuration Utility)即可将 Host Name 固定为你期望的值。

查看当前状态

# 查看当前 Host Name(可能为空或已被 DNS 改写)
scutil --get HostName

# 查看本地 Bonjour 名称
scutil --get LocalHostName

# 查看 Finder 中显示的计算机名
scutil --get ComputerName

设置 Host Name

sudo scutil --set HostName "MacBook-Pro"

建议使用不含空格和特殊字符的名称,例如 MacBook-ProMy-Mac 或你的设备序列号。

验证修改

重新打开一个终端窗口,提示符中的 @ 后面应恢复为你设置的主机名。

scutil --get HostName
# 输出: MacBook-Pro

补充说明

  • HostName 仅影响网络层面的主机名标识,不会影响 LocalHostName(Bonjour 本地名称)和 ComputerName(Finder 显示名),三者独立管理。
  • 若问题在重启后复现,可以检查 /etc/hosts 中是否有相关条目,或确认 DHCP/DNS 服务器是否持续下发不期望的主机名。
macosdnsterminal