dns污染导致github等网页无法加载,需三步解决:先改hosts绑定最新ip,再切换抗污染dns(如223.5.5.5),最后清空系统及浏览器dns缓存;验证时ping和nslookup应显示一致正确ip,异常则检查防火墙拦截。

macOS 出现网页打不开、GitHub 访问失败、部分应用连不上服务,但 ping 得通 IP、微信能用——这大概率不是断网,而是 DNS 污染在作祟。本质是系统被误导,把域名解析到了错误的 IP 上,就像查电话簿查到了假号码。
确认是不是 DNS 污染
别急着改设置,先验证问题根源:
- 终端执行 ping -c 3 github.com,看返回的 IP 是否异常(比如 127.0.0.1、192.30.x.x 或明显不属于 GitHub 的地址)
- 再运行 nslookup github.com 1.1.1.1(用 Cloudflare DNS 查),对比 nslookup github.com(用当前系统 DNS 查)的结果是否一致
- 如果两者 IP 不同,且系统 DNS 返回的是可疑地址,基本可锁定为污染或劫持
- 手机连同一 Wi-Fi 能正常访问,而 Mac 不能,也强烈提示本地 DNS 配置或缓存出问题
清掉污染的本地缓存
缓存里存着错误映射,不清掉就会一直“认错门牌”:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 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 - 输密码时无显示,输完直接回车;命令成功后终端只换行,不报错
切断污染源头:换可信 DNS 并确保生效
ISP 或路由器提供的 DNS 最易被插手,必须换成干净、稳定、优先级高的替代方案:
- 进入「系统设置 → 网络 → 当前连接 → 详细信息… → DNS」
- 点「−」清空所有原有 DNS 条目
- 点「+」添加至少两个可信地址,例如:
• 223.5.5.5(阿里 DNS,国内响应快)
• 1.1.1.1(Cloudflare,隐私友好) - 用上下箭头把 223.5.5.5 拖到列表最顶端,确保它被优先使用
- 点击「完成」,再点右下角「应用」使配置生效
排查隐藏干扰项
有些污染不走 DNS,而是绕过它直接下手:
- /etc/hosts 文件被篡改:终端运行 sudo nano /etc/hosts,逐行检查非 # 开头的行;发现类似 0.0.0.0 github.com 或 127.0.0.1 www.taobao.com 这类映射,按 Ctrl+K 删除整行,Ctrl+O 保存,Ctrl+X 退出
- IPv6 解析卡死:某些网络对 IPv6 DNS 支持不全,系统卡在失败查询上迟迟不降级;可在「网络 → 详细信息… → IPv6」中将配置方式改为「仅本地链接」或「关闭」
- 浏览器自带 DNS 缓存:Chrome/Edge 访问 chrome://net-internals/#dns → 点「Clear host cache」;Safari 在「偏好设置 → 隐私 → 管理网站数据」中搜索并删除相关域名记录










