进阶配置

Fake-IP 与 DNS 防泄漏:Clash DNS 模块深度解析

DNS 解析是代理链路中最易出现问题的环节。配置不当会引发两类风险:DNS 污染导致境外域名解析到错误 IP 而无法访问;DNS 泄漏则让真实的访问记录暴露给 ISP。Clash 官方 DNS 模块内置 Fake-IP 机制,在系统层面从根本上解决上述两类问题,是 Clash 区别于同类工具的核心能力之一。

传统代理的 DNS 困境

在传统的 HTTP 代理模式下,当你的浏览器访问 google.com 时,会先在本地进行 DNS 解析,得到 IP 地址后再建立连接。这里存在一个矛盾:如果 DNS 解析走本地 ISP 的 DNS 服务器,google.com 的解析结果可能因为污染而返回错误的 IP;如果 DNS 解析走代理,代理又需要先建立好连接才能转发 DNS 请求,形成鸡生蛋蛋生鸡的死循环。

早期的解决方案是在代理服务器端进行 DNS 解析(Remote DNS Resolution),即客户端直接把域名发给代理服务器,由代理服务器在其网络环境中解析并返回结果。这解决了污染问题,但增加了延迟,且无法与 Clash 的基于 IP 的规则(如 GEOIP)配合使用。

Fake-IP 的工作机制

Fake-IP 是 Clash 采用的一种更优雅的解决方案。其核心思路是:当应用程序发出 DNS 请求时,Clash 不等待真实的 DNS 解析结果,而是立即从预留的 IP 段(默认 198.18.0.0/16)中分配一个"假"IP 返回给应用程序。应用程序收到这个假 IP 后立即发起连接请求,Clash 截获这个连接,根据假 IP 查找对应的域名,再根据规则决定如何处理。

这样做的好处非常明显:应用程序不需要等待 DNS 解析完成就能开始连接,大幅降低了首次连接的延迟;真实的 DNS 解析在后台异步进行,并且是通过代理发出的,完全避免了 DNS 污染;同时也杜绝了 DNS 泄漏——因为所有 DNS 请求都由 Clash 统一管理,不会有任何请求泄漏到本地 DNS 服务器。

DNS 完整配置示例

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  # 不使用 Fake-IP 的域名(直接返回真实 IP)
  fake-ip-filter:
    - "*.lan"
    - localhost.ptlogin2.qq.com
  # 国内 DNS:用于解析直连域名,速度快
  nameserver:
    - 223.5.5.5       # 阿里
    - 119.29.29.29    # 腾讯
  # 境外 DNS:用于解析代理域名,防污染
  fallback:
    - https://8.8.8.8/dns-query       # Google DoH
    - https://1.1.1.1/dns-query       # Cloudflare DoH
    - tls://8.8.4.4:853               # Google DoT
  # 触发 fallback 的条件
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4   # 保留地址,通常是污染结果

nameserver 与 fallback 的分工

nameserver 是主 DNS 服务器组,负责处理大部分 DNS 请求,通常配置为国内速度快的 DNS(如阿里 223.5.5.5、腾讯 119.29.29.29)。fallback 是备用 DNS 服务器组,当 nameserver 返回的结果被 fallback-filter 规则判定为可疑(如返回的是境外 IP,或落在保留地址段)时,Clash 会转而使用 fallback DNS 重新查询,并以 fallback 的结果为准。

推荐 fallback DNS 使用 DoH(DNS over HTTPS)或 DoT(DNS over TLS)协议,这些协议对 DNS 请求进行加密传输,在网络传输过程中无法被中间节点篡改,彻底解决 DNS 污染问题。

fake-ip-filter:哪些域名不该用 Fake-IP

并非所有域名都适合使用 Fake-IP。以下几类域名需要加入 fake-ip-filter 排除列表,让 Clash 直接返回真实 IP:

  • 局域网域名:如 *.local*.lan,这些地址在局域网内使用,Fake-IP 会导致局域网设备无法正常发现
  • 游戏平台相关域名:部分游戏客户端会对 DNS 解析结果进行校验,Fake-IP 可能触发反作弊机制
  • NTP 时间同步服务:时间同步对 IP 的准确性有要求,应直接返回真实 IP
  • 特定应用的认证域名:如 QQ 登录域名,使用 Fake-IP 可能导致登录失败

验证 DNS 是否存在泄漏

配置完成后,可以访问 dnsleaktest.combash.ws/dnsleak 进行 DNS 泄漏检测。如果检测结果只显示你代理服务器所在地区的 DNS 服务器,说明配置正确;如果显示了你本地 ISP 的 DNS 服务器,则存在 DNS 泄漏,需要检查 DNS 配置或结合 TUN 模式的 DNS 劫持功能来解决。

Clash
准备好使用 Clash 了吗?
免费下载,支持 Windows、macOS、Linux、Android 全平台。
立即下载
文章导航
相关文章
Clash
立即下载 Clash
全平台客户端,免费使用
前往下载页