网页打不开、跳转广告页或能用微信但打不开网页,在macOS上大概率是DNS劫持所致,主因包括ISP重定向、路由器被篡改或本地配置遭恶意修改;需刷新DNS缓存、禁用DHCP推送的DNS并设静态可信地址、启用DoH加密解析、检查hosts文件及IPv6设置。
网页打不开、跳转广告页、搜索页,或能用微信但打不开网页——这些现象在 macos 上大概率是 dns 劫持造成的。劫持通常来自 isp 插入重定向、路由器被篡改,或本地配置被恶意修改。解决重点不是“换一个dns”,而是切断劫持路径 + 强制可信解析 + 清除残留干扰。
立即生效:刷新系统 DNS 缓存
缓存中可能已存有被污染的解析结果,重启服务可快速释放错误映射:
- 打开终端,粘贴执行(适用于 macOS Ventura 及更新版本):
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 旧版本(Monterey 及更早)只需运行:
sudo killall -HUP mDNSResponder - 输入管理员密码(不显示字符),回车后无提示即表示成功
切断劫持源头:禁用 DHCP 分配的 DNS 并设静态可信地址
很多劫持通过路由器用 DHCP 推送虚假 DNS 实现。必须让系统彻底忽略它:
- 进入「系统设置」→「网络」→ 当前连接 →「详细信息…」→「DNS」标签页
- 点击左下角「−」号,清空所有自动获取的 DNS 条目
- 切换到「高级」→「TCP/IP」,将「配置 IPv4」改为「手动」
- 在「DNS 服务器」栏添加至少两个独立来源的地址,例如:
• 1.1.1.1(Cloudflare)
• 8.8.8.8(Google)
• 208.67.222.222(OpenDNS) - 勾选「忽略来自 DHCP 服务器的 DNS 服务器地址」(如选项存在)
防御升级:启用加密 DNS(DoH)或关闭 mDNSResponder 转发
明文 DNS 易被中间设备监听篡改;而 macOS 的 mDNSResponder 默认会把非 .local 查询转发给 ISP DNS,构成风险面:
-
推荐优先启用 DoH(macOS Ventura+):在「DNS」标签页直接添加 URL 格式地址,如
https://cloudflare-dns.com/dns-query 或 https://dns.google/dns-query - 若需更彻底隔离,可临时停用 mDNSResponder 的 DNS 转发行为:
终端执行:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
再手动编辑 /etc/resolv.conf,只保留 nameserver 行(如 nameserver 1.1.1.1),最后 reload 服务
排查隐藏干扰:检查 hosts 文件与 IPv6 行为
有些劫持不走 DNS,而是直接改写本地映射或利用 IPv6 解析异常绕过防护:
- 终端运行:sudo nano /etc/hosts,逐行查看是否有非注释行指向 0.0.0.0、127.0.0.1 或陌生 IP 的常见域名(如 baidu.com、taobao.com),有则按 Ctrl+K 删除
- 进入「网络」→「详细信息…」→「IPv6」标签页,将配置方式改为「仅本地链接」或「关闭」,避免因 IPv6 DNS 查询失败导致静默超时
- 浏览器自身也有 DNS 缓存,可在 Chrome/Safari 中清除「浏览数据」→ 勾选「Cookie 及其他站点数据」「缓存的图像和文件」


















