Files
homepage/docs/zh-hans/blogs/macos-private-dns-hostname.md

56 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 修复 macOS 终端在私网 DNS 下 Host Name 显示为 IP 段的问题
tags:
- macos
- dns
- terminal
author:
name: Zihlu Wang
email: real@zihluwang.me
---
在部分企业或家庭私网环境中,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 服务器是否持续下发不期望的主机名。