Mac网页打不开或加载慢,需按系统版本执行对应终端命令清DNS缓存:Sonoma至Catalina用“sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder”;Mojave至Sierra仅用“sudo killall -HUP mDNSResponder”;El Capitan及更早需先查进程再选discoveryd或mDNSResponder。

Mac网页打不开、加载缓慢或域名解析失败,很可能是本地DNS缓存中存了过期、错误或被污染的解析记录,需要按当前系统版本执行精准命令才能彻底清空。
先确认你的macOS版本
点击左上角苹果图标 → “关于本机”,看清系统名称和版本号。这一步不能跳过——【Sonoma (14) 至 Catalina (10.15) 与 Mojave (10.14) 至 Sierra (10.12) 的清理机制完全不同,混用命令会导致缓存只清一半甚至完全无效】。El Capitan (10.11) 及更早版本已基本淘汰,若仍在使用,需额外检查进程名。
按版本执行终端清理命令
按下 Command + 空格 → 输入“终端” → 回车启动。
方法一:适用于 macOS Sonoma (14)、Ventura (13)、Monterey (12)、Big Sur (11)、Catalina (10.15)
在终端中粘贴并执行:
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
这是一条原子化复合命令,&& 强制两个动作严格先后执行:先清dscacheutil管理的缓存层,再重启mDNSResponder服务;漏掉任一环节,旧解析记录仍可能残留。
方法二:适用于 macOS Mojave (10.14)、High Sierra (10.13)、Sierra (10.12)
只需执行:
sudo killall -HUP mDNSResponder
dscacheutil 在这些版本中不参与 DNS 缓存管理,加了反而报错或无响应。
方法三:El Capitan (10.11) 及更早(极少数场景)
先运行检查命令:
ps aux | grep -E '(mDNS|discovery)'
如果输出中含 discoveryd,才执行:
sudo killall -HUP discoveryd
如果只看到 mDNSResponder 进程,就退回方法二。乱用 discoveryd 命令在新系统上会直接提示 command not found。
输入密码并验证执行结果
第一步:回车后终端会提示输入管理员密码。
第二步:键入你当前登录用户的密码——【输入过程屏幕不显示任何字符,这是正常安全机制,不是键盘失灵】。
第三步:输完直接按回车。
第四步:终端返回新行光标且无报错信息(例如 no such process、command not found 或 Permission denied),即表示命令已成功执行。
用浏览器地址栏快速验证是否生效
打开 Safari 或 Chrome,在地址栏输入:
chrome://net-internals/#dns(Chrome/Edge)
或启用 Safari 开发菜单后选择「开发 → 清除 DNS 缓存」。
这步不是必须,但能立刻看到缓存条目是否归零——若列表为空,说明系统级清理已传导至浏览器层。

















