如何解决DNS污染问题

一、启用加密 DNS 协议(最有效方案)

  1. DNS over HTTPS/TLS (DoH/DoT)

    • 浏览器设置‌(Chrome/Edge/Firefox):
      设置 → 安全与隐私 → 启用「使用安全 DNS」→ 选择 Cloudflare 1.1.1.1 或 Google 8.8.8.8
    • 系统级配置‌:
      Windows:设置 → 网络 → 网络适配器属性 → 编辑 DNS → 首选加密 DNS(输入 https://dns.google/dns-query)。
  2. DNS 加密工具

    • 安装 ‌DNSCrypt-proxy‌ 或 ‌Cloudflare WARP‌,强制所有 DNS 查询通过加密隧道传输。

 二、更换公共 DNS 服务器

手动替换运营商 DNS,避免使用易被污染的默认解析:

  • 推荐公共 DNS‌:
    • Cloudflare:1.1.1.1(IPv4) / 2606:4700:4700::1111(IPv6) • Google:8.8.8.8(IPv4) / 2001:4860:4860::8888(IPv6) • 国内优化:阿里 DNS 223.5.5.5 / 腾讯 DNS 119.29.29.29:ml-citation{ref="6,7" data="citationList"}
  • 设置路径‌:
    控制面板 → 网络适配器 → TCP/IPv4 → 手动输入上述 DNS7

 三、代理与 VPN 防护

  1. VPN 全局加密
    使用付费 VPN(如 ExpressVPN、NordVPN),所有流量(含 DNS)通过加密通道,彻底绕过污染。
  2. SSH/SOCKS5 代理
    配置支持远程 DNS 解析的代理(如 Shadowsocks),在代理设置中启用「远程 DNS」。

 四、本地系统级修复

  1. 强制刷新 DNS 缓存
    # Windows ipconfig /flushdns # macOS sudo killall -HUP mDNSResponder ```:ml-citation{ref="7,12" data="citationList"}
  2. 清理 Hosts 文件
    删除 C:\Windows\System32\drivers\etc\hosts(Windows)或 /etc/hosts(Mac/Linux)中的异常域名映射。

五、进阶防护措施

  1. DNSSEC 验证
    在路由器或系统设置中启用 DNSSEC(域名系统安全扩展),确保解析结果未被篡改。
  2. 防火墙规则
    禁止 UDP 53 端口出站(传统 DNS 端口),强制系统使用 DoH/DoT 端口(853/443)。

优先级建议:

  1. 首选加密 DNS‌(DoH/DoT),从源头阻断污染;
  2. 若需低延迟,选择国内可信公共 DNS(如阿里/腾讯);
  3. 高敏感场景(如企业)使用 VPN+加密 DNS 双重防护。

附:若污染针对特定网站(如 GitHub),可手动在 Hosts 添加正确 IP 临时应急,但需注意 IP 变更风险。