High Sierra系统LAN本地主机.loc域名DNS间歇性解析失败求助
解决macOS下.loc域名间歇性解析失败的问题
我之前也碰到过类似的.loc域名解析间歇性抽风的情况,结合macOS的DNS解析机制,给你几个不用关闭SIP的可行方案:
1. 强制.loc域名走指定本地DNS(最有效)
macOS允许通过/etc/resolver目录配置特定域名的解析规则,直接绕过mDNSResponder的干扰。操作步骤:
- 创建resolver目录(如果不存在):
sudo mkdir -p /etc/resolver - 创建.loc专属解析配置文件:
sudo nano /etc/resolver/loc - 在文件中添加以下内容(把
192.168.1.1换成你的家庭路由器/本地DNS服务器IP):nameserver 192.168.1.1 domain loc search loc - 保存退出nano(按
Ctrl+O回车确认,再按Ctrl+X退出)
这个配置会让系统解析任何.loc结尾的域名时,直接请求你指定的本地DNS服务器,完全跳过mDNS的解析流程,从根源上避免竞争冲突。
2. 安全刷新mDNS缓存(绕开SIP限制)
你之前用killall -HUP mDNSResponder被SIP阻止,其实可以用更温和的方式刷新缓存,不会触发SIP的保护:
sudo dscacheutil -flushcache sudo killall -INFO mDNSResponder
-INFO信号只是让mDNSResponder主动刷新缓存,不是强制杀死进程,所以SIP不会拦截这个操作。
3. 调整DNS搜索域优先级
确保系统在解析主机名时优先查找.loc域:
- 打开「系统设置」→「网络」→ 选中当前使用的网络(Wi-Fi/以太网)→ 点击「高级」→ 切换到「DNS」标签
- 在「搜索域」列表中添加
loc,并拖到最顶部 - 点击「好」保存,然后重启一下网络接口(关掉再重新打开Wi-Fi/以太网)
这样系统在解析短主机名(比如kube1)时会自动补全.loc后缀,同时解析完整域名时也会优先走本地DNS。
4. 验证配置是否生效
执行以下命令查看系统的DNS解析规则,确认.loc的配置已经被加载:
scutil --dns
你应该能看到类似这样的条目,说明配置生效了:
resolver #8
domain : loc
nameserver[0] : 192.168.1.1
flags : Request A records, Request AAAA records
reach : 0x00020002 (Reachable,Directly Reachable Address)
做完这些配置后,再测试几次ssh或scp操作,应该就能解决间歇性解析失败的问题了。
内容的提问来源于stack exchange,提问作者superstator
相关产品推荐
相关产品推荐

