Skip to content

DNS 污染与假 IP 劫持排查指南:GFW 投毒原理与 Fake-IP 免疫实战

导读:当你没开代理或配置不当时,在终端中输入 ping twitter.comnslookup youtube.com,会发现它竟然能解析出一个 IP,但这个 IP 往往归属于美国军方、韩国机房或甚至国内反诈拦截页面!这就是臭名昭著的 “DNS 污染 (DNS Poisoning / 投毒)”
本文严格遵循 【症状】 → 【原因】 → 【检查】 → 【解决方案】 诊断框架,带你识别污染并一劳永逸建立免疫屏障。


一、症状 (Symptom)

  • 表象 1:在没有开启代理的情况下,解析海外被封域名,返回了一个明显错误的国外随机 IP(如 127.0.0.137.61.54.15893.46.8.89);
  • 表象 2:即便在客户端中开启了代理,打开网页依然瞬间跳转至“国家反诈中心”或本地运营商的“该域名无法访问”拦截提醒页;
  • 表象 3:浏览器控制台提示 ERR_SSL_PROTOCOL_ERROR 或安全证书域名不匹配警告(因为你拿到的假 IP 根本无法提供该网站的正规证书)。

二、原因 (Cause)

GFW 旁路镜像投毒机制

DNS 传统协议工作在无连接的 UDP 53 端口上,没有身份鉴别与防篡改验证:

mermaid
sequenceDiagram
    autonumber
    actor User as 用户电脑 (向 114.114.114.114 询问 twitter.com)
    participant Edge as 国内运营商骨干路由器
    participant GFW as GFW 旁路监控探针
    participant TrueDNS as 真正的权威根服务器

    User->>Edge: 发出明文 UDP 查询报文
    Edge->>GFW: 流量镜像至 GFW 探针
    GFW->>GFW: 深度模式匹配:命中黑名单!
    GFW-->>User: ⚡ 毫秒级伪造应答!抢先下发假 IP (127.0.0.1)
    Note over User: 用户的电脑信以为真,缓存下假 IP!
    TrueDNS-->>User: 官方真实 IP 姗姗来迟,被操作系统当做重复包丢弃

只要你的网络流量中包含了明文的 53 端口请求穿过防火墙,GFW 就会利用距离优势**“抢答投毒”**。


三、检查 (Inspection / 3步自测)

检查 1:使用已知被污染域名进行命令行探测

在终端运行:

cmd
nslookup facebook.com 114.114.114.114
  • 判定标准:若返回的 Address 列表中出现了早已被曝光的典型污染 IP 池(如 31.13.x.x 或不合常理的欧洲/韩国 IP),100% 确认已遭受系统级 DNS 污染。

检查 2:在客户端内部检查解析日志

打开 Clash Verge Rev 的“日志 (Logs)”页面:

  • 查看海外域名的 DNS 记录:
  • 判定标准:如果域名解析出的 IP 不是以 198.18.x.x 开头的虚拟 Fake-IP,说明你的 DNS 请求直接裸奔穿透到了国内公网!

四、解决方案 (Solution)

1. 唯一终极免疫方案:开启 Fake-IP 模式

在客户端内核中开启 enhanced-mode: fake-ip

  • 原理:本地客户端不再将 DNS 查询发给外部公网,而是在本地直接生成一个 198.18.x.x 的保留假 IP 返回给浏览器;
  • 浏览器带着这个假 IP 发送数据包,客户端直接截获并转交给海外落地服务器去真正解析;
  • GFW 的旁路投毒彻底失去了攻击目标,污染 100% 免疫失效!

2. 启用端到端加密 DNS (DoH / DoT)

在配置中配置 DNS over HTTPS (DoH):

yaml
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

DoH 将所有的 DNS 查询封包进带有 TLS 加密的 443 端口,GFW 无法从密文中看清你查询了什么域名,彻底杜绝抢答伪造。


🧭 关联诊断专栏

本站所有评测数据均基于独立实测与客观网络遥测。