非官方技术粉丝站 · 本站与 Clash Verge 官方项目无任何隶属关系 · 仅供网络技术学习与合法科研用途
网络协议架构组 网络协议架构组 · 配置进阶 · 更新于: 2026-10-09

DNS 防污染与防泄漏权威指南:Fake-IP vs Redir-Host 深度解析

深入剖析 Clash Verge 的 DNS 解析全流程。详述 RFC 3089 Fake-IP 映射机制、Redir-Host 局限、DoH/DoT 加密查询、防 DNS 泄漏与智能分流 Policy 生产级实战。

配置过程中若遭遇内核报错、端口冲突或无法上网,快速定位修复。
遇到问题?查看故障排查

在互联网通信体系中,DNS(Domain Name System,域名系统) 被誉为数字世界的电话簿。然而,设计于上世纪 80 年代的原始 DNS 协议(RFC 1035)基于明文 UDP 53 端口传输,既缺乏对数据包来源的身份校验,也没有任何载荷加密保护。这种固有的协议缺陷,使得本地网络极易遭受运营商缓存污染、跨国链路中间人伪造响应(DNS Cache Poisoning)以及隐私泄露。

对于使用 Clash Verge 客户端 的用户而言,DNS 不仅决定了一个域名是否能够正确解析,更是底层**规则分流引擎(Rule Engine)**判定流量该走向直连、拒绝还是经由节点转发的第一道决策关卡。如果 DNS 解析在起点就遭遇了投毒,后续的一切分流规则都将发生灾难性的误判。

本文将深入底层网络协议栈,拆解 Fake-IP 与 Redir-Host 的内核工作原理,并提供一份抵御跨国污染、防止 WebRTC 泄漏的工业级 DNS 配置方案。


1. 传统明文 DNS 的致命痛点:中间人抢答与污染机理

当你的浏览器尝试访问 example.com 时,操作系统会向本地配置的递归 DNS 服务器(如局域网网关 192.168.1.1 或运营商提供的公共 DNS)发送一个标准的 DNS 查询报文。

[ 本地应用程序 (Chrome) ]
         │ (发出 UDP 53 DNS 查询: "query example.com")
         ▼
[ 物理出口网络路由器 / 运营商骨干网 ]
         │
         ├───▶ [ 跨国链路中间设备监听 ] ───▶ 【伪造错误 IP 抢先应答!】──┐
         │                                                            │
         ▼ (合法的正常解析链路需要 150~300ms 跨国回程)                    ▼
[ 远程权威根服务器 / 目标机房 ]                                [ 客户端率先接收到虚假 IP ]
                                                                      │
                                                                      ▼
                                                      【连接被导向黑洞或无效地址】

1.1 旁路投毒(Race Condition Attack)的本质

由于 UDP 协议是无状态的,客户端操作系统通常只采纳最先返回的那个 DNS 响应包,并根据报文中的 Transaction ID(事务 ID)与本地发包记录进行粗糙的匹配。恶意旁路监听设备凭借更近的物理距离与网络带宽优势,在合法的权威 DNS 响应尚未跨越海底光缆返回之前,就强行构造一个带有虚假 IP(如 0.0.0.0、回环地址或无效保留网段)的应答包送达客户端。

当操作系统将这个被污染的虚假 IP 交给客户端后,若此时未开启深度规则接管,应用程序向虚假 IP 发起 TCP 握手必将遭遇超时重传(Connection Timed Out),形成网络完全阻断的假象。


2. Fake-IP 模式内核原理:为什么它能实现零延迟建连?

为了从根本上彻底杜绝本地 DNS 查询被抢答污染,同时消除远程解析带来的长距离网络往返等待时间,现代代理核心全面引入了基于 RFC 3089(SOCKS-based IPv6/IPv4 Gateway) 思想设计的 Fake-IP 模式。

[ 应用程序发起域名请求 ] ───▶ [ 发送 DNS 查询: "api.github.com" ]
                                        │
                                        ▼ (被本地 Clash Verge 内部 DNS 劫持)
               【核心直接从 198.18.0.0/16 映射池分发伪 IP】
                                        │
                                        ▼ (仅耗时 1ms,返回 "198.18.0.23")
[ 应用程序立刻向 198.18.0.23 发起 TCP SYN 握手建连 ]
         │
         ▼
[ 流量被 TUN 虚拟网卡或系统代理精准捕获 ]
         │
         ▼ (核心查阅本地内存反向查找表: 198.18.0.23 == "api.github.com")
【核心将包含完整域名的请求封装入代理隧道】 ───▶ [ 远程节点执行真正无污染的权威解析 ]

2.1 Fake-IP 的五步完整时序流转:

  1. 本地内存建表:Clash Verge 内核在内存中维护了一张极其高效的线程安全双向哈希映射表(Bi-directional Mapping Table)。
  2. 极速分发保留地址:当应用程序请求解析某个域名时,内核并不立刻向外网发起真实的 DNS 查询,而是从保留的基准测试专用网段(默认推荐 198.18.0.1/16)中摘取一个尚未过期的虚拟 IP(如 198.18.0.45),在 1ms 之内立即应答给应用程序。
  3. 零等待 TCP 发起:应用程序误以为该域名确实对应此 IP,立刻向 198.18.0.45 发出 TCP SYN 数据报文。
  4. 底层流量捕获与还原:数据包进入 TUN 虚拟网卡模式 或透明代理模块后,代理核心截获该报文的目标 IP,并在内存表中以 $O(1)$ 的时间复杂度反查出原始域名 api.github.com。
  5. 远端代理出口无损解析:核心在构造外发加密代理数据帧时,直接将原始域名附带在协议头中,交给位于海外的代理节点服务器在当地执行高质量的本地 DNS 解析并建立连接。

通过这种“以虚代实”的机制,本地网络根本不需要等待任何真实的境外 DNS 解析结果,不仅彻底免疫了本地运营商的旁路 UDP 投毒,还将建连首包延迟降低了整整一个往返时延(RTT)。


3. Redir-Host 与 Fake-IP 深度横向对比及历史选型陷阱

在早期的代理客户端中,普遍采用的是 Redir-Host 模式。在该模式下,核心必须先拿到真实的远端 IP 才能继续往下分流。

评估维度Redir-Host 模式(传统过时)Fake-IP 模式(现代标准推荐)
首包解析延迟高 (150ms ~ 500ms):必须等待真实的海外 DoH 返回才能开始握手极低 (<1ms):本地直接分发 Fake IP,几乎零感知建连
抗污染防御力脆弱。若配置的海外 DoH 节点自身被阻断,则解析直接陷入死锁极强。解析直接移交远端代理节点处理,本地无需境外解析
分流规则匹配精度能够拿到真实 IP,适合纯粹依赖 IP-CIDR 规则的粗放环境结合 DOMAIN-SUFFIX 与 GEOSITE 表现完美,支持域名精准规则
特殊网络工具兼容性对习惯使用原生 ping 域名 的运维人员更直观控制台执行 Ping 会显示 198.18.x.x,极少数私有应用可能做校验
对 TUN 模式的协同支持容易发生 DNS 递归死循环与路由回环震荡与 TUN 虚拟网卡模式 存在天然协同优势,工业界事实标准

结论:除非你在极其特殊的封闭内网必须排查原始 IP 连通性,否则在生产环境中,请一律锁定 enhanced-mode: fake-ip。


4. 工业级 DNS 架构配置:国内外双轨分流与加密解析栈

为了兼顾国内站点的超高速 CDN 定位(保证淘宝、微信、Bilibili 解析到离你最近的本地电信/联通机房)与境外站点的绝对防污染,Clash Verge 的 DNS 模块必须采用双轨分流策略体系(Nameserver-Policy)。

以下是经过严格压测验证的生产级 DNS 配置模板:

# 生产级防污染与低延迟双轨 DNS 配置
dns:
  enable: true
  listen: 127.0.0.1:1053
  ipv6: false                           # 推荐关闭 IPv6 解析以规避漏网直连
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "localhost.ptlogin2.qq.com"       # 针对腾讯系本地快捷登录等特异性域名豁免
    - "+.msftconnecttest.com"           # Windows 连网检测探针豁免
    - "+.msftncsi.com"
  default-nameserver:
    # 用于解析下文 DoH 域名自身 IP 的基础引导 DNS (只能填纯 IP)
    - 223.5.5.5
    - 119.29.29.29
  nameserver:
    # 默认主解析服务器:优先国内高速安全加密通道
    - https://dns.alidns.com/dns-query
    - https://doh.pub/dns-query
  fallback:
    # 触发回退策略时选用的境外高安全性加密解析服务器
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query
  fallback-filter:
    # 判定何时触发回退的关键过滤规则
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4
      - 0.0.0.0/32
  nameserver-policy:
    # 针对国内顶级域名与特定规则集实行强制本地纯净解析
    "geosite:cn,private":
      - https://dns.alidns.com/dns-query
      - https://doh.pub/dns-query
    "geosite:geolocation-!cn":
      - https://1.1.1.1/dns-query
      - https://8.8.8.8/dns-query

4.1 核心配置逻辑逐行解析:

  • default-nameserver:这是一个极易被忽视的关键锚点。因为你的 nameserver 填写的可能是域名形式的 DoH 地址(例如 https://dns.alidns.com/dns-query)。要建立 HTTPS 请求连接,系统必须先知道 dns.alidns.com 的 IP!default-nameserver 只能填纯 IP 地址,专职用于破除这一“鸡生蛋、蛋生鸡”的先验解析死锁。
  • fake-ip-filter:某些特定的本地设备(如智能路由器后台 router.lan)或特殊的桌面客户端连网探针(Windows NCSI 检测网络可用性的小地球图标),一旦被赋予 Fake IP 会误判当前网络无互联网连接。在此列表中的通配符域名将直接被赋予真实的局域网解析结果。
  • nameserver-policy:基于现代 geosite.dat 规则库的高性能路由分发机制,当请求匹配到国内域名标签时,100% 走本地 DoH;当匹配非中国大陆域名时,直接走境外加密通道或移交远端,杜绝了由于 自定义分流规则错误 导致国内 CDN 被定位至海外机房的严重降速现象。

5. DNS 泄漏检测机制与深层防御实战

所谓 DNS 泄漏(DNS Leak),是指即使你已经开启了代理,但你的浏览器或其他应用程序依然绕过了代理客户端,私自向你本地宽带运营商的默认 DNS 服务器发起了域名查询请求。运营商的日志服务器因此完整记录了你访问过的每一个敏感网站域名。

[ 应用程序 (WebRTC / 外部播放器) ]
         │
         ├─── (正常数据流经代理隧道) ───▶ [ 目标网站无法看到你真实 IP ]
         │
         └───【危险旁路:私自调用系统底层 UDP 53】───▶ [ 本地宽带运营商 DNS 服务器 ]
                                                              │
                                                              ▼
                                              【运营商完整记录你的访问足迹!】

5.1 导致 DNS 泄漏的三大根源:

  1. 浏览器 WebRTC 局域网探针:WebRTC 协议为了实现点对点(P2P)语音和视频通话,会绕过普通的 HTTP 代理设置,直接遍历操作系统的所有物理网络接口进行 STUN 绑定探查,直接暴露出物理网卡真实的公网 IPv4 与 IPv6 地址。
  2. 操作系统双栈 IPv6 旁路:许多家用宽带默认分配了公网 IPv6 地址,而若代理配置中未对 IPv6 做妥善规则接管,系统网络栈会优先使用 IPv6 协议向本地运营商分配的 IPv6 DNS 发起明文查询。
  3. 未劫持特权端口 53:非标准软件可能硬编码了 8.8.8.8:53 发送 UDP 包,若未开启 TUN 模式下的 dns-hijack,这些数据包将顺着系统默认路由直连出站。

5.2 如何彻底封堵 DNS 泄漏漏洞:

  • 开启 TUN 模式的强制 DNS 劫持:在 TUN 全量接管实战手册 中,确保开启 dns-hijack: ["any:53", "tcp://any:53"],强行将所有试图越界发送的 53 端口数据流收拢至 Clash Verge 内部处理。
  • 浏览器端禁用 WebRTC 真实 IP 暴露:在 Chrome / Edge 中安装隐私插件,或在 Firefox 的 about:config 中将 media.peerconnection.enabled 设置为 false。
  • 在线泄漏权威检测:访问第三方测试平台(如 dnsleaktest.com),执行“Extended Test”。如果在测试结果列表中只看到了你所选代理节点所在的机房 IP,而完全没有出现你本地电信/联通/移动的 DNS 服务器,则代表防护体系构建成功。

6. 基础设施对 DNS 与握手延迟的连锁效应

无论你的客户端 DNS 调优做得多么天衣无缝,网络传输的物理定律依然受到底层服务商线路架构的决定性制约。

6.1 劣质公网节点的 DNS 连锁崩塌效应

如果使用的服务商节点搭建在拥挤的廉价公网 VPS 上,其递归解析通常直接调用当地机房的通用公共 DNS。在高峰期,海外机房的公网端口一旦遭受大流量攻击或突发丢包,远端的 DNS 递归查询耗时往往会从 20ms 飙升至 2000ms 以上。此时,客户端在 Fake-IP 模式下即使瞬间发出了 TCP SYN 包,数据流在到达远端节点后依然会卡死在“等待目标域名解析结果”的阻塞队列中,导致网页频繁出现白色假死画面。

6.2 具备原生独立 IP 与企业内网专线的基础设施保障

真正具备高 SLA(服务等级协议)的顶级网络服务商,会在香港、东京、新加坡等核心 POP 节点自建具备内存级缓存的本地权威递归 DNS 集群,并与主流跨国 CDN(如 Cloudflare、Fastly、Akamai)在同一 IXP(互联网交换中心)实现内网 BGP 互联互通:

基础设施对比指标普通廉价公网中转节点企业级 IEPL 专用内网链路
远端 DNS 递归耗时150ms ~ 600ms (走公共国际路由)5ms ~ 15ms (机房内网高速 Local Cache)
CDN 节点精准调度经常被误识别为跨洲 IP,导致解析分流错误拥有原生机房 ASN 广播,精准命中亚太最快 CDN 边缘节点
DNS-over-TLS 支持节点内部明文查询,存在二次泄漏风险节点出口全链路加密直连全球根域名服务器

如需彻底告别由于远端解析抖动引发的白屏等待,建议审视底层订阅服务的线路资质:


7. 常见问题深度解答 (FAQ) 与相关技术链路闭环

Q1: 为什么在终端执行 ping google.com 显示的是 198.18.0.x?这正常吗? 这是完全正常的现象。这正是 Fake-IP 模式发挥作用的直接证据。在没有开启 TUN 模式的前提下,系统原生 ICMP Ping 工具直接将回显数据发往了保留虚拟地址,由于本地没有任何物理网卡绑定该网段,Ping 会超时;但只要你的浏览器是通过 HTTP/SOCKS 代理或开启了 [TUN 全量接管](/config/tun),真实网络请求就会由核心还原出域名后正常送达。
Q2: 为什么开启代理后,国内网银或企业内部系统提示“网络环境异常”? 这通常是因为你的国内 DNS 解析没有正确走本地直连通道,导致国内企业内网域名的 IP 被解析到了海外机房,触发了银行或企业风控系统的异地登录警报。请检查你的配置中是否正确配置了 `nameserver-policy`,并参考 [生产级分流规则体系构建指南](/config/rules) 将相关企业域名明确列入直连白名单。
Q3: 遇到完全无法上网,报错日志频繁提示 dns query failed 怎么办? 这说明用于引导解析的 `default-nameserver` 无法连通,或者当前系统的 DNS 缓存已经彻底被污染锁死。请尝试: 1. 检查物理网卡 DNS 设置,确保能正常连通 `223.5.5.5`; 2. 在 Clash Verge 中清空 Fake-IP 缓存数据库; 3. 参考 [系统代理与网络权限修复排障](/troubleshooting/system-proxy) 执行网络自愈。

下一步进阶阅读与技术链路闭环:

网络协议架构组头像
网络协议架构组 网络系统架构组 修订日期: 2026-10-09

本文由具备 CCIE / CISSP 资质背景的网络协议架构工程师主笔,已在 Windows 11、macOS 与 Linux 物理机完成实测复核。欢迎查阅 团队档案与审校机制 或参与公开勘误。

下一步建议操作

遇到问题?查看故障排查

配置过程中若遭遇内核报错、端口冲突或无法上网,快速定位修复。

遇到问题?查看故障排查