MacOS主机名变为MAC地址
问题描述:
在不设置DNS时,本机终端主机名显示为MAC地址。设置DNS为8.8.8.8时,本机终端主机名显示为zz
原因:
MacOs确定主机名是按照如下顺序:
1. 从以下文件中读取: /etc/hostconfig
2. 从以下系统配置项读取:/Library/Preferences/SystemConfiguration/preferences.plist
中的System ▸ System ▸ HostName
3. 由本机IP地址的反向DNS查询获取
4. 从以下系统配置项读取:/Library/Preferences/SystemConfiguration/preferences.plist
中的System ▸ Network ▸ HostNames ▸ LocalHostName
5. 如果以上方法都没获取到,就简单地定为localhost
本机中,第1,2两项都未设置,第4项设置为:正正的MacBookPro
。且由于更换DNS会导致主机名不同,所有可以推测是从第3项获取的主机名。对IP地址进行反向DNS查询,结果如下:
(base) zz@zz ~ nslookup 192.168.31.202
Server: 192.168.31.1
Address: 192.168.31.1#53
202.31.168.192.in-addr.arpa name = f4d4887f3038.
# 使用8.8.8.8谷歌DNS服务器
(base) zz@zz ~ nslookup 192.168.31.202 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find 202.31.168.192.in-addr.arpa: NXDOMAIN
解决:
- 在第1,2项设置主机名,在IP解析之前就确定主机名
- 替换第3项的DNS服务器为8.8.8.8,这样会使得IP解析不出主机名,就可以沿用第4项的主机名
在实际情况中,由于需要连接VPN做远程处理,所以不可以随意更换DNS服务,更换DNS地址会导致某些工作使用的地址无法连接,所以这里将使用第一种方法。
使用scutil查看和设置主机名:
# 查看
scutil --get HostName 主机名(第2项)
scutil --get LocalHostName 本地主机名(第四项)
scutil --get ComputerName 电脑名
# 设置
sudo scutil --set HostName zz
注意:
系统偏好设置>共享 中可在界面进行设置电脑名和本地主机名。主机名需要使用命令行进行设置。
参考:
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 NNZZ
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果