mac刷新dns缓存需按系统版本执行对应命令:sonoma至catalina用sudo dscacheutil -flushcache; sudo killall -hup mdnsresponder,mojave至sierra用sudo killall -hup mdnsresponder,el capitan及更早需先查进程再执行sudo killall -hup discoveryd或mdnsresponder。

在 macOS 中刷新 DNS 缓存,关键不是“统一一条命令走天下”,而是匹配你当前系统版本所依赖的 DNS 服务机制。用错命令可能只清了一半缓存,甚至完全无效。
按 macOS 版本选对命令
macOS 不同版本底层管理 DNS 缓存的服务不同:较新系统(Sonoma 起)靠 dscacheutil + mDNSResponder 双管齐下;Mojave 到 Sierra 主要靠 mDNSResponder;El Capitan 及更早还涉及已弃用的 discoveryd。直接抄一条命令容易踩坑。
-
Sonoma (14)、Ventura (13)、Monterey (12)、Big Sur (11)、Catalina (10.15):必须同时执行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -
Mojave (10.14)、High Sierra (10.13)、Sierra (10.12):只需重启服务
sudo killall -HUP mDNSResponder -
El Capitan (10.11) 及更早:先确认进程名(
ps aux | grep -E '(mDNS|discovery)'),若看到discoveryd,则运行sudo killall -HUP discoveryd
推荐用复合命令一步到位
如果你不确定版本,或希望覆盖多数情况,可直接使用这条兼容性更强的命令——它在 Sonoma 至 Catalina 全线生效,且逻辑上确保两步不跳过:
- 打开终端,粘贴执行:
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder - 输入管理员密码(不显示字符,输完直接回车)
- 光标换行即表示完成,无需额外提示
不用命令的快速替代法
不想开终端?以下操作也能触发 DNS 缓存重置,适合临时验证或快速缓解:
- 点击菜单栏 Wi-Fi 图标 → “关闭 Wi-Fi”,等 3 秒 → 再点“开启 Wi-Fi”
- 或者直接重启 Mac,系统启动时会自动重建网络栈和 DNS 状态
别忘了浏览器自己的 DNS 缓存
系统缓存清了,网页还是打不开?浏览器自带的 DNS 缓存是独立的,也得单独处理:
-
Chrome / Edge:地址栏输入
chrome://net-internals/#dns→ 点“Clear host cache”;再进chrome://net-internals/#sockets→ 点“Flush socket pools” - Safari:启用“开发”菜单(设置 → 高级 → 勾选“在菜单栏中显示‘开发’菜单”)→ 顶部菜单栏“开发 → 清除缓存”
-
Firefox:地址栏输入
about:networking#dns→ 点“Clear DNS Cache”











