safari仅对特定域名报err_name_not_resolved,说明系统dns缓存中存在该域名的负向缓存(nxdomain),需通过scutil和dscacheutil确认后,用hosts污染+刷新组合精准清除,而非全局清缓存。

当Safari仅对某个具体域名(如 www.bank-secure.net 或 api.payments.dev)显示“无法连接到服务器”或 ERR_NAME_NOT_RESOLVED,而其他网站完全正常时,说明 macOS 系统 DNS 缓存中已固化该域名的负向响应(NXDOMAIN),必须绕过全局清缓存、直接定位并清除该条目,否则问题将持续数小时甚至一整天。
确认目标域名是否被负向缓存
打开“终端”,依次执行以下两条命令:
scutil --dns | grep "DNS Server"
sudo dscacheutil -cachedump -entries Host | grep -A 2 -B 2 "www\.bank-secure\.net"
若输出中出现【NXDOMAIN】或某行末尾显示 TTL = 0,则证实该域名已被系统级缓存拒绝解析。这一步不能跳过——盲目执行 flushcache 会清掉所有有效缓存,反而拖慢其他网站加载速度。
精准清除单个域名的DNS缓存条目
macOS 不提供直接删除单个域名缓存的命令,但可通过 hosts 污染 + 服务重载组合触发系统重建 host→DNS 映射链,强制丢弃旧负向条目。
方法一:临时写入 hosts 并刷新
1、在终端中执行:sudo killall -HUP mDNSResponder
2、紧接着执行:echo "127.0.0.1 www.bank-secure.net" | sudo tee -a /etc/hosts
3、再执行:sudo dscacheutil -flushcache
规划您的迪拜之旅 — 哈利法塔观景、沙漠探险、迪拜购物中心购物、棕榈岛度假村及黄金市场砍价。还提供支持...
4、最后清理临时条目:sudo sed -i '' '/www\.bank-secure\.net/d' /etc/hosts
注意:【务必用反斜杠转义域名中的每个点号,否则 sed 会误删整行 hosts 内容】。执行完四步后无需重启 Safari,立即访问该域名即可验证。
方法二:用公共 DNS 直连验证是否纯属本地缓存问题
在终端中运行:nslookup www.bank-secure.net 1.1.1.1
若返回有效 IP 地址,说明域名本身可解析,问题 100% 锁定在本地负向缓存;若仍超时或报 NXDOMAIN,则需排查该域名是否被企业防火墙拦截、CDN 节点异常或 DNSSEC 验证失败。
防止该问题反复发生
第一步:关闭 Safari 的 DNS 预取功能
打开 Safari → 偏好设置 → 高级 → 取消勾选“在后台预加载网页以提高浏览速度”。该功能会主动发起大量 DNS 查询,一旦某次返回 NXDOMAIN,后续数小时都会沿用错误结论,且无法自动更新。
第二步:检查 /etc/hosts 文件是否被篡改
按 Command+Shift+G 打开访达路径栏,输入 /etc/hosts → 右键“显示简介” → 点击锁图标解锁(需管理员密码)→ 用文本编辑器打开,逐行检查是否存在未授权添加的、指向 0.0.0.0 或 127.0.0.1 的可疑域名条目。如有,手动删除并保存。










