macos各版本需用不同dns刷新命令:sonoma至catalina须同时执行dscacheutil与killall;mojave及更早仅需killall;el capitan及更早需确认并重启discoveryd进程。

直接执行 sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder 就能覆盖绝大多数 macOS 版本(Sonoma 14 到 Catalina 10.15),且比单条命令更可靠。但别只刷缓存——DNS 解析失效往往不是缓存问题,而是系统卡在错误的解析路径上。
macOS 各版本该用哪个命令才真正生效
不同 macOS 版本底层 DNS 服务机制不同,乱用命令可能白忙活:
- macOS Sonoma (14)、Ventura (13)、Monterey (12)、Big Sur (11)、Catalina (10.15):必须同时调用
dscacheutil和killall -HUP mDNSResponder,缺一不可;单独执行任一命令都可能漏掉部分缓存条目 - macOS Mojave (10.14) 及更早(High Sierra、Sierra):
sudo killall -HUP mDNSResponder足够,dscacheutil在这些版本中不参与 DNS 缓存管理 - macOS El Capitan (10.11) 及更早:已弃用,但若仍在用,需先确认进程名——运行
ps aux | grep -E '(mDNS|discovery)',若看到discoveryd,就得用sudo killall -HUP discoveryd
为什么清完缓存网页还是打不开
缓存只是表象,真正卡住解析的常是以下三处:
-
/etc/hosts文件被篡改:恶意软件或误操作可能写入www.baidu.com 0.0.0.0这类行,浏览器走 hosts 优先级最高,直接拦截;用sudo nano /etc/hosts检查,删掉所有非注释的域名映射行 - IPv6 解析失败未降级:某些校园网或老旧路由器 IPv6 配置异常,系统卡在 IPv6 查询超时,不自动切 IPv4;进“系统设置 → 网络 → 详细信息 → IPv6”,把配置方式改成“仅本地链接”或“关闭”
- DNS 服务器本身返回空或错误响应:运营商 DNS 可能劫持、丢包或缓存污染;临时换用
8.8.8.8和1.1.1.1,并确保它们排在 DNS 列表最上方
浏览器 DNS 缓存也要单独清
Chrome、Edge、Safari 都自带 DNS 缓存,和系统缓存完全独立,不清理照样复现“微信能上、网页打不开”:
- Chrome/Edge:地址栏输入
chrome://net-internals/#dns,点 “Clear host cache”;再打开chrome://net-internals/#sockets,点 “Flush socket pools” - Safari:启用开发菜单后(“Safari → 设置 → 高级 → 在菜单栏中显示‘开发’菜单”),点击“开发 → 清除缓存”——这步会清掉 DNS 缓存,但不会清 Cookie 或历史记录
- Firefox:地址栏输入
about:networking#dns,点 “Clear DNS Cache”
真正麻烦的不是命令记不住,而是你清完缓存、换完 DNS、关掉 IPv6,结果发现路由器自己缓存了三天前的错误响应——这时候得拔掉电源等 30 秒再插回去,否则所有终端操作都是徒劳。










