mac清理dns缓存需三步同步:一、按系统版本执行对应命令(如sonoma用sudo dscacheutil -flushcache && sudo killall -hup mdnsresponder);二、检查/etc/hosts和ipv6配置排除干扰;三、更换为8.8.8.8等公共dns并清除浏览器独立缓存。
直接清dns缓存不总管用,因为“响应缓慢”往往不是缓存里有错记录,而是系统卡在一条低效甚至失败的解析路径上。真正要解决,得从缓存清理、路径干预和源头替换三方面同步处理。
先用对命令彻底清掉系统级DNS缓存
macOS不同版本管理DNS的方式不一样,乱用命令等于白干:
- macOS Sonoma(14)、Ventura(13)、Monterey(12)、Big Sur(11)、Catalina(10.15):必须同时执行两步——sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder。只跑其中一条,可能漏掉域名服务层或缓存服务层的数据。
- macOS Mojave(10.14)及更早(High Sierra、Sierra):sudo killall -HUP mDNSResponder 就够了。dscacheutil 在这些版本里不参与 DNS 解析缓存。
- El Capitan(10.11)及更早:已淘汰,但若仍在用,先运行 ps aux | grep -E '(mDNS|discovery)' 看进程名;若看到 discoveryd,就用 sudo killall -HUP discoveryd。
检查并绕过干扰源:/etc/hosts 和 IPv6
这两处不清理,清完缓存照样慢:
- /etc/hosts 被篡改:恶意软件或误操作可能加了类似 www.example.com 0.0.0.0 的行,浏览器优先走 hosts,直接拦截请求。用 sudo nano /etc/hosts 打开,删掉所有非注释的域名映射行(保留以 # 开头的说明行即可)。
- IPv6 解析卡死:某些校园网或老旧路由器 IPv6 配置异常,系统会先发 IPv6 查询,等超时(常达数秒)才降级到 IPv4。进“系统设置 → 网络 → 当前连接 → 详细信息 → IPv6”,把配置方式改成“仅本地链接”或“关闭”。
换掉不可靠的DNS服务器,切断污染源头
运营商 DNS 常劫持、丢包或缓存污染,换公共 DNS 是最有效的断根方式:
- 进“系统设置 → 网络 → 当前连接 → 详细信息 → DNS”,清空原有服务器列表。
- 点“+”添加两个地址:8.8.8.8(Google)和 1.1.1.1(Cloudflare),确保它们排在最上面。
- 保存后,系统会自动丢弃全部旧缓存并启用新路径,后续解析不再经过污染源。
别忘了浏览器自己也存着一份DNS缓存
Chrome、Safari、Firefox 都有独立缓存,和系统完全不互通:
- Chrome / Edge:地址栏输入 chrome://net-internals/#dns,点“Clear host cache”;再打开 chrome://net-internals/#sockets,点“Flush socket pools”。
- Safari:先开启开发菜单(设置 → 高级 → 勾选“在菜单栏中显示‘开发’菜单”),然后点“开发 → 清除缓存”。这步会清 DNS 缓存,但不影响 Cookie 或历史记录。
- Firefox:地址栏输入 about:networking#dns,点“Clear DNS Cache”。











