MacOS DNS缓存污染需三步解决:先验证是否污染(对比nslookup结果),再按版本执行对应命令清理系统缓存(如Sonoma用sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder),最后清理/etc/hosts、切换可信DNS并清除浏览器DNS缓存。MacOS中DNS缓存污染会导致域名解析变慢、跳转错误或部分网站打不开,但问题往往藏在缓存背后,不单是“清一下”就能解决。关键在于**切断污染源 + 强制刷新 + 验证路径是否干净**。
确认是不是缓存污染在作怪
先别急着敲命令。如果只有mac打不开某些网站,而手机连同一wi-fi却正常,或者ping 域名能通但浏览器打不开,那大概率是本地dns缓存或配置被干扰了。可以快速验证:
在终端输入 scutil --dns | grep nameserver,看列出的dns服务器是不是你手动设的;再用 nslookup example.com 1.1.1.1(换公共dns查)对比结果——如果系统dns返回的ip和1.1.1.1返回的不一样,说明缓存或上游dns已被污染。
彻底清理系统级DNS缓存
macOS不同版本清理机制不同,乱用命令会漏掉缓存项:
— macOS Sonoma (14)、Ventura (13)、Monterey (12) 及更新版:执行
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
— macOS Mojave (10.14) 到 Catalina (10.15):只需
sudo killall -HUP mDNSResponder
输密码时无显示,输完直接回车。成功后终端会换行,不是报错就表示完成。
顺手检查并清理/etc/hosts文件
这个文件优先级比DNS还高,一旦被写入恶意映射(比如 www.bank.com 0.0.0.0),所有请求直接被拦截或指向错误地址:
— 终端运行 sudo nano /etc/hosts
— 检查有没有非#开头的、带域名和IP的行
— 删除所有可疑行,按 Ctrl+O → 回车 → Ctrl+X 保存退出
(常见污染来源:广告屏蔽脚本、某些“优化工具”或误操作)
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
换用可信DNS并确保它真正生效
运营商DNS最容易被污染或劫持。换成Cloudflare或阿里DNS后,必须让它“排第一”才管用:
— 进“系统设置 → 网络 → 当前连接 → 详细信息 → DNS”
— 点“-”删掉原有DNS条目
— 点“+”,依次添加:
• 223.5.5.5(阿里DNS,国内快)
• 1.1.1.1(Cloudflare,干净稳定)
— 选中223.5.5.5,用上下箭头把它拖到列表最顶端
— 点“完成”,再点右下角“应用”
别忘了浏览器自己的DNS缓存
Chrome、Edge、Safari都有独立DNS缓存,系统清完了,浏览器还在用旧记录:
— Chrome/Edge:地址栏输入 chrome://net-internals/#dns → 点“Clear host cache”
— Safari:开启“开发菜单”(设置 → 高级 → 勾选“在菜单栏中显示‘开发’菜单”)→ 顶部菜单栏点“开发 → 清除缓存”
— Firefox:地址栏输入 about:networking#dns → 点“Clear DNS Cache”

















