Mac清理DNS缓存需按系统版本执行对应命令:Sonoma至Catalina用sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder;Mojave至Sierra仅用sudo killall -HUP mDNSResponder;El Capitan及更早需先检查discoveryd进程再决定命令;同时须排查hosts文件篡改和代理设置干扰。

Mac电脑访问网页变慢、特定网站打不开或显示错误页面,很可能是本地DNS缓存中存了过期、错误或被污染的域名解析记录。直接在终端执行对应命令就能清除,但【必须按当前macOS版本选对命令】,否则可能只清掉一半,甚至完全无效。
确认你的 macOS 版本
点击左上角苹果图标 → “关于本机”,查看系统名称和版本号(例如“macOS Sonoma 14.6”)。不同版本底层管理 DNS 缓存的服务不同:Sonoma(14)至 Catalina(10.15)由 dscacheutil 和 mDNSResponder 协同管理;Mojave(10.14)至 Sierra(10.12)仅依赖 mDNSResponder;El Capitan(10.11)及更早已基本淘汰,若仍在使用,需先检查是否运行 discoveryd 进程。
打开终端并执行对应命令
按下 Command + 空格 → 输入“终端” → 回车启动。
根据你刚查到的系统版本,复制粘贴以下任一命令(注意大小写、空格和分号/&&符号):
方法一: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
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
方法三:El Capitan(10.11)及更早(仅当确认运行 discoveryd 时才用)
先运行:ps aux | grep -E '(mDNS|discovery)' → 若输出中含 discoveryd,再执行:sudo killall -HUP discoveryd
回车后提示输入管理员密码——输入时屏幕不显示字符,属正常安全机制,输完直接按回车。终端返回新行光标且无报错(如 no process found、command not found 等),即表示成功。
顺手检查两个高危干扰项
很多“清完还打不开网站”的情况,其实和 DNS 缓存无关,而是被下面两项卡住了:
① 检查 /etc/hosts 文件是否被篡改:
终端运行 sudo nano /etc/hosts → 删除所有非以 # 开头的域名映射行(例如某行写着 www.bank.com 0.0.0.0)→ 按 Ctrl+O → 回车确认保存 → 按 Ctrl+X 退出编辑器。
② 检查网络代理是否意外启用:
进“系统设置 → 网络 → 当前连接(如Wi-Fi)→ 详细信息 → 代理” → 取消勾选 HTTP 代理、HTTPS 代理、SOCKS 代理等所有选项 → 确保所有代理地址和端口字段为空 → 点击“完成”。
别忘了浏览器自己的 DNS 缓存
Chrome、Edge、Safari、Firefox 都有独立于系统的 DNS 缓存,必须单独清理:
Chrome/Edge:地址栏输入 chrome://net-internals/#dns → 点击“Clear host cache”按钮。
Safari:先启用“开发”菜单(设置 → 高级 → 勾选“在菜单栏中显示‘开发’菜单”)→ 菜单栏点击“开发 → 清除缓存”。
Firefox:地址栏输入 about:networking#dns → 点击“Clear DNS Cache”按钮。

















