49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
---
|
||
title: 修复 macOS 终端在私网 DNS 下 Host Name 显示为 IP 段的问题
|
||
---
|
||
|
||
在部分企业或家庭私网环境中,DNS 反向解析会将设备的私网 IP 映射为一个以 `192`、`172` 或 `10` 开头的主机名。此时 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 固定为你期望的值。
|
||
|
||
### 查看当前状态
|
||
|
||
```shell
|
||
# 查看当前 Host Name(可能为空或已被 DNS 改写)
|
||
scutil --get HostName
|
||
|
||
# 查看本地 Bonjour 名称
|
||
scutil --get LocalHostName
|
||
|
||
# 查看 Finder 中显示的计算机名
|
||
scutil --get ComputerName
|
||
```
|
||
|
||
### 设置 Host Name
|
||
|
||
```shell
|
||
sudo scutil --set HostName "MacBook-Pro"
|
||
```
|
||
|
||
建议使用不含空格和特殊字符的名称,例如 `MacBook-Pro`、`My-Mac` 或你的设备序列号。
|
||
|
||
### 验证修改
|
||
|
||
重新打开一个终端窗口,提示符中的 `@` 后面应恢复为你设置的主机名。
|
||
|
||
```shell
|
||
scutil --get HostName
|
||
# 输出: MacBook-Pro
|
||
```
|
||
|
||
## 补充说明
|
||
|
||
- `HostName` 仅影响网络层面的主机名标识,不会影响 `LocalHostName`(Bonjour 本地名称)和 `ComputerName`(Finder 显示名),三者独立管理。
|
||
- 若问题在重启后复现,可以检查 `/etc/hosts` 中是否有相关条目,或确认 DHCP/DNS 服务器是否持续下发不期望的主机名。
|