一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何清除safari浏览器DNS缓存

时间:2026-08-06 09:57:49 编辑:袖梨 来源:一聚教程网

应先执行sudo dscacheutil -flushcache再运行sudo killall -HUP mDNSResponder以清除macOS系统级DNS缓存;若仅单域名错误且确认含【NXDOMAIN】标记,可用临时hosts法精准清理;Safari开发菜单清空缓存仅影响浏览器层,需配合使用;换用8.8.8.8等公共DNS可绕过本地缓存验证问题。

当Safari只对某个特定网站(比如 api.pay.example.com)打不开,提示“无法连接到服务器”或 ERR_NAME_NOT_RESOLVED,而其他网站一切正常时,说明系统级DNS缓存里已存了该域名的错误解析结果,必须清除它才能恢复访问。

用终端命令一键刷新系统DNS缓存

这一步适用于绝大多数情况,能清掉 macOS 底层 mDNSResponder 服务维护的全部缓存条目。

打开“终端”(可在“启动台→其他”中找到);

输入命令:sudo dscacheutil -flushcache,回车后输入管理员密码(输入时不显示字符),再回车;

紧接着再执行:sudo killall -HUP mDNSResponder,回车确认。

两条命令缺一不可。只运行第一条可能残留部分缓存;只运行第二条则无法触发完整重建。执行完成后无需重启 Safari,立即生效。

精准清除单个出错域名的负向缓存

当你确认只有 www.badhost.test 这一个域名报错,其他全正常,且已用 sudo dscacheutil -cachedump -entries Host 查到它带【NXDOMAIN】标记时,才需要此方法——避免误清其他有效缓存。

方法一:临时 hosts 污染+强制刷新

第一步:执行 sudo killall -HUP mDNSResponder

第二步:把出错域名强行写进 hosts:echo "127.0.0.1 www.badhost.test" | sudo tee -a /etc/hosts

第三步:刷新缓存:sudo dscacheutil -flushcache

第四步:立刻删掉刚加的行:sudo sed -i '' '/www.badhost.test/d' /etc/hosts

【务必用反斜杠转义域名中的点号,否则 sed 会误删整行】

通过 Safari 开发菜单清空浏览器层缓存

注意:这个操作清的是 Safari 自己维护的 DNS 缓存(极小概率存在),不是系统级缓存,不能解决 ERR_NAME_NOT_RESOLVED 类错误,但可配合使用。

打开 Safari → 点击菜单栏“Safari” → “设置” → “高级” → 勾选“在菜单栏中显示‘开发’菜单”;

关闭设置窗口;

点击顶部菜单栏“开发” → “清空缓存”。

这一步操作起来很简单,直接点击就行,不需要输密码或重启浏览器。

换用公共 DNS 强制绕过旧缓存

适合怀疑当前 ISP DNS 返回了错误结果,或想跳过本地缓存链路验证问题是否出在 DNS 本身。

进入“系统设置” → “网络” → 选择当前连接(如 Wi-Fi)→ 点击右侧“详细信息” → 切换到“DNS”标签页;

删掉原有 DNS 地址,点击“+”添加 8.8.8.81.1.1.1

点“好”保存,关闭窗口。

改完后 Safari 会自动走新 DNS 查询路径,旧缓存自然失效。

热门栏目