macos dns解析优先级由网络服务顺序决定,而非dns列表顺序;活动且排首位的服务所配dns才生效,列表内服务器按响应质量动态调整优先级,修改后须执行对应命令刷新缓存(ventura+用sudo dscacheutil -flushcache; sudo killall -hup mdnsresponder,monterey及更早仅需后者),并用scutil --dns验证nameserver[0]是否为预期地址。

macOS 通过系统设置管理 DNS 解析优先排序,核心在于两点:**服务顺序决定“用哪组 DNS”,DNS 列表顺序只影响初始尝试顺序,实际使用由响应质量动态调整。** 填错位置、忽略服务排序或不刷新缓存,都会导致配置看似生效实则无效。
服务优先级决定唯一生效的 DNS 来源
系统不会合并 Wi-Fi、以太网等所有接口的 DNS 设置。它只采用当前**活动且排在最上方的网络服务**所配置的 DNS 列表:
- 打开“系统设置” → “网络”,点击右下角“详细信息…”
- 点击左下角齿轮图标 → “设定服务顺序…”,把你要依赖的网络(如 Wi-Fi)拖到列表顶部
- 确保该服务在“DNS”标签页中已填入你希望主用的 DNS 地址(例如 223.5.5.5 和 114.114.114.114)
- 其他服务(如以太网)即使配了 DNS,只要不在首位且当前未激活,就不会参与解析
DNS 列表内地址按质量自动升降序
你在“DNS”标签页里手动上下拖动的顺序,只是初始查询顺序。系统会持续监测每台服务器的表现,并实时调整使用倾向:
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
- 首台 DNS 响应快、无超时、无 SERVFAIL 错误,后续查询继续发给它
- 若某台连续超时(默认 5 秒)或返回 NXDOMAIN/SERVFAIL,系统会临时跳过它,转向下一台
- 被跳过的服务器若恢复稳定,几分钟内自动“回升”,重新进入活跃队列
- IPv4 和 IPv6 地址独立评分,互不影响;比如 2001:db8::1 和 8.8.8.8 的健康度各自计算
改完必须刷新缓存才能真正生效
图形界面保存设置后,旧 DNS 缓存仍在运行,新配置不会立刻起效。务必执行对应命令:
- macOS Ventura 及更新版本:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
- macOS Monterey 及更早版本:sudo killall -HUP mDNSResponder
- 验证是否生效:终端输入 scutil --dns,查看输出中 nameserver[0] 是否为你期望的首选服务器
让特定域名走指定 DNS 的轻量方案
不想全局换 DNS,只想让 company.internal 或 example.com 走内网 DNS?推荐用 /etc/resolver/ 方式,无需安装额外服务:
- 创建目录:sudo mkdir -p /etc/resolver
- 为域名建专属配置文件:echo "nameserver 10.0.0.5" | sudo tee /etc/resolver/company.internal
- 检查权限:sudo ls -l /etc/resolver/company.internal,确保属主是 root:wheel,且权限为 644(不可被 group/other 写入)
- 该文件一保存即生效,无需重启服务,也无需刷新缓存










