问题极大概率是macos dns缓存中固化了该域名的负向记录(nxdomain),需精准清除:先用scutil和dscacheutil确认存在【nxdomain】或ttl:0条目,再通过临时写入hosts+刷新+清理三步法清除单域名缓存。

当Safari只对某个特定网页(比如 www.bankofchina.com 或 api.pay.qq.com)突然提示“无法连接到服务器”或 ERR_NAME_NOT_RESOLVED,而其他网站完全正常时,问题极大概率是 macOS 系统级 DNS 缓存中固化了一条该域名的负向记录(NXDOMAIN),必须精准清除这条缓存,而非盲目刷全量缓存。
确认是否为特定域名负向缓存
打开“终端”,依次执行以下两条命令:
scutil --dns | grep "DNS Server"
sudo dscacheutil -cachedump -entries Host | grep -A 2 -B 2 "目标域名"
若输出中出现【NXDOMAIN】字样,或某条目显示 TTL: 0,即证实系统已将该域名标记为“解析失败”并长期缓存。这一步不能跳过——跳过会导致后续所有操作无效,且可能误伤其他正常域名的解析效率。
精准清除单个域名的DNS缓存条目
macOS 原生不支持直接删除单个域名缓存,但可通过“临时污染 hosts + 强制刷新”组合触发系统重建解析链,从而挤掉旧的负向条目。
方法一:强制覆盖缓存条目(推荐)
1、在终端中执行:sudo killall -HUP mDNSResponder
2、紧接着执行:echo "127.0.0.1 www.example.com" | sudo tee -a /etc/hosts(把 www.example.com 替换为你实际出错的完整域名)
规划您的迪拜之旅 — 哈利法塔观景、沙漠探险、迪拜购物中心购物、棕榈岛度假村及黄金市场砍价。还提供支持...
3、再执行:sudo dscacheutil -flushcache
4、最后执行:sudo sed -i '' '/www\.example\.com/d' /etc/hosts
【务必使用反斜杠转义域名中的点号,否则 sed 会误删整行】
方法二:绕过缓存直连公共DNS验证
在终端中运行:nslookup www.example.com 1.1.1.1。若返回有效 IPv4 地址,说明域名本身可解析,问题纯属本地缓存固化;若仍超时,则需排查该域名是否被防火墙拦截、CDN节点异常或DNSSEC验证失败。
阻止同类错误反复发生
第一步:禁用 Safari 的 DNS 预取功能
打开 Safari → 偏好设置 → 高级 → 取消勾选“在后台预加载网页以提高浏览速度”。该功能会主动发起大量 DNS 查询并缓存结果,一旦某次查询返回 NXDOMAIN,后续数小时都会沿用该错误结论。
第二步:检查并清理被篡改的 Hosts 文件
用访达按 Command+Shift+G,输入 /etc/hosts → 右键“显示简介” → 点击右下角锁图标解锁(需输入管理员密码)→ 用文本编辑器打开,逐行检查是否存在未授权添加的、指向 0.0.0.0 或 127.0.0.1 的可疑域名条目,手动删除后保存。










