分流的准确性一半取决于 DNS:域名解析被污染,规则再对也会连错地方。Clash 内置了一套 DNS 服务,配置好它能同时解决“解析被污染”和“解析变慢”两个问题。

基础配置

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 223.5.5.5            # 国内 DNS:解析快
    - 119.29.29.29
  fallback:                # 国外 DNS:加密防污染
    - https://1.1.1.1/dns-query
    - tls://8.8.8.8:853
  fallback-filter:
    geoip: true
    geoip-code: CN

nameserver 负责日常解析,fallback 用加密 DNS 兜底。配合 fallback-filter:解析结果是国内 IP 用前者,疑似被污染(返回境外 IP)时采用 fallback 的结果。

fake-ip 模式(推荐)

程序请求解析时,Clash 立即返回一个保留网段的“假 IP”(198.18.x.x),并记住“假 IP ↔ 域名”的映射。程序拿假 IP 发起连接,Clash 在连接时还原出域名再匹配规则、由节点在远端真正解析。好处:

  • 解析零延迟(不用等真实 DNS 往返);
  • 域名规则总能命中(连接自带域名信息);
  • 本地不产生真实解析,天然防污染与 DNS 泄漏。

redir-host 模式

返回真实 IP,连接时按 IP 匹配。兼容性场景(个别程序会校验 IP 合法性、需要拿真实 IP 做判断)下使用。代价是解析变慢且泄漏风险高。日常建议 fake-ip。

fake-ip-filter:给例外放行

少数场景必须拿到真实 IP(局域网设备发现、某些游戏登录器、Windows 网络连通性检测),把它们加进过滤列表即可跳过 fake-ip:

  fake-ip-filter:
    - "*.lan"
    - "+.stun.*.*"
    - "+.msftconnecttest.com"
    - "+.msftncsi.com"
    - "localhost.ptlogin2.qq.com"

生效与验证

  • 订阅一般自带 dns 段;要覆盖它,用 Mixin 统一注入。
  • TUN 模式必须启用内置 DNS 且推荐 fake-ip(配合 dns-hijack)。
  • 验证:nslookup google.com 127.0.0.1 返回 198.18.x.x 即 fake-ip 生效。
提示:开启 fake-ip 后若某程序联网异常,先怀疑它拿假 IP 做了特殊用途,把相关域名加入 fake-ip-filter 再试。