Mac 网页打不开、加载缓慢,甚至跳转到完全不相关的页面?大多数情况下,原因是本地 DNS 缓存中存有过期或错误的域名解析记录。不同 macOS 版本的清理命令各不相同,用错了可能导致清理不彻底甚至报错。下面直接列出各版本对应的终端命令,帮助您快速解决 DNS 缓存问题。

从 Sonoma 到 Catalina 的版本适用命令:sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder;Mojave 到 Sierra 仅需执行 sudo killall -HUP mDNSResponder;El Capitan 及更早系统则需要先检查进程,再根据实际运行的进程名(discoveryd 或 mDNSResponder)选择对应命令。请注意,命令与系统版本不匹配时,执行会失败甚至出现错误提示——这并非危言耸听。
Mac 网页无法打开、加载缓慢或跳转到错误页面,根本原因往往在于本地 DNS 缓存中遗留了过期、错误或被污染的域名解析信息。必须根据当前系统版本执行对应的终端命令,才能彻底清除缓存;否则可能只清理了部分记录,甚至完全无效。
先确认你的 macOS 版本
点击左上角苹果图标 → “关于本机”,查看系统名称和完整版本号(例如“macOS Sonoma 14.6”或“macOS Ventura 13.7”)。【这一步不可跳过】——Sonoma(14)至 Catalina(10.15)、Mojave(10.14)至 Sierra(10.12)、El Capitan(10.11)及更早,这三类系统底层管理 DNS 缓存的服务完全不同,混用命令会导致清理失败。
按版本执行终端清理命令
按下 Command + 空格 → 输入“终端” → 回车启动应用。然后根据你刚查到的版本,选择以下方法之一:
方法一:适用于 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 (10.13)、Sierra (10.12)
只需执行:sudo killall -HUP mDNSResponder
dscacheutil 在这些版本中不参与 DNS 缓存管理,加了反而报错或无响应。
方法三:适用于 macOS El Capitan (10.11) 及更早(极少数仍在用)
先检查实际运行的进程名:ps aux | grep -E '(mDNS|discovery)'
如果输出中包含 discoveryd,才执行:sudo killall -HUP discoveryd
如果只看到 mDNSResponder,就退回用方法二的命令。【乱用 discoveryd 命令在新系统上会直接报错】
输入密码并完成执行
第一步:回车后,终端会提示输入管理员密码。
第二步:键入你当前登录用户的密码——输入过程屏幕不显示任何字符,这是正常的安全机制,不要因此怀疑键盘失灵。
第三步:输完直接按回车,终端返回新行光标且无报错信息(如 no such process、command not found 或 Permission denied),即表示命令已成功执行。
