教程 更新日期: 2026-06-15 阅读时间: 8 分钟

Clash DNS 防污染配置详解 | 彻底解决DNS泄漏

全面解析Clash DNS配置:fake-ip模式、nameserver-policy、DNS分流、防污染设置,确保代理隐私安全。

目录

DNS 污染原理简介

DNS(域名系统)是将域名转换为 IP 地址的服务。当你访问 google.com 时,设备需要先通过 DNS 查询获取其 IP 地址。

DNS 污染(DNS Pollution)是指某些网络运营商或审查机构在 DNS 查询过程中返回错误的 IP 地址,导致你无法访问目标网站。常见的污染方式:

如果不正确处理 DNS,即使代理本身是加密的,DNS 查询也可能暴露你正在访问的域名列表,造成隐私泄漏。

Clash DNS 工作机制

Clash 内置了 DNS 解析器,可以接管所有 DNS 查询。其工作流程:

  1. 应用发起 DNS 查询(如查询 google.com 的 A 记录)。
  2. Clash DNS 模块拦截该查询。
  3. 根据配置,Clash 将查询发送给不同的上游 DNS 服务器。
  4. 对于需要代理的域名,Clash 通过代理通道向 fallback DNS 服务器发起查询(加密的 DNS-over-TLS)。
  5. 对于直连域名,Clash 向 nameserver 中的国内 DNS 查询(速度快)。
  6. Clash 返回最终解析结果给应用。

通过这种分流机制,Clash 同时实现了 防污染(代理域名走加密 DNS)和 高性能(国内域名走本地 DNS)。

enhanced-mode 配置

enhanced-mode 控制 Clash 如何处理 DNS 解析结果:

fake-ip 模式(推荐)

fake-ip 模式返回一个虚假的 IP 地址(如 198.18.0.1),等应用实际发起连接时,Clash 再根据规则决定使用真实 IP 还是通过代理访问。

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - localhost.ptlogin2.qq.com
    - "+.stun.*.*"
    - "+.stun.*.*.*"
    - "+.stun.*.*.*.*"
    - "+.stun.*.*.*.*.*"
    - dns.msftncsi.com
    - www.msftncsi.com
    - www.msftconnecttest.com

优点

注意:部分应用(如某些游戏、局域网服务)可能不兼容 fake IP,需要通过 fake-ip-filter 排除。

redir-host 模式

redir-host 模式会真实解析域名,但通过代理通道查询 fallback DNS,避免污染。

dns:
  enable: true
  enhanced-mode: redir-host
  fake-ip-range: 198.18.0.1/16

优点:兼容性好,所有应用都能正常工作。

缺点:DNS 查询速度较慢(每次都要等待真实解析结果)。

nameserver vs fallback 配置

Clash 的 DNS 配置中有两组 DNS 服务器,各自承担不同角色:

nameserver(默认 DNS)

用于解析国内域名不需要代理的域名。使用普通 DNS 协议,速度快。

nameserver:
  - 223.5.5.5           # 阿里 DNS
  - 119.29.29.29        # 腾讯 DNS

fallback(回退 DNS)

用于解析需要代理的域名。Clash 会同时向 nameserver 和 fallback 发起查询,然后根据 fallback-filter 的规则判断使用哪组结果:

fallback:
  - "tls://8.8.8.8:853"     # Google DNS over TLS
  - "tls://1.1.1.1:853"     # Cloudflare DNS over TLS
  - "https://dns.google/dns-query"  # Google DNS over HTTPS

fallback-filter:
  geoip: true
  geoip-code: CN
  ipcidr:
    - 240.0.0.0/4
  domain:
    - "+.google.com"
    - "+.facebook.com"
    - "+.youtube.com"

nameserver-policy 按规则分组

nameserver-policy 允许你为特定域名指定专用的 DNS 服务器,实现更精细的 DNS 分流:

nameserver-policy:
  # 国内域名用国内 DNS
  "+.baidu.com":
    - 223.5.5.5
    - 119.29.29.29

  # 国外域名走 DoT
  "+.google.com":
    - "tls://8.8.8.8"
  "+.github.com":
    - "tls://1.1.1.1"

  # 特定域名使用指定 DNS
  "dns.msftncsi.com":
    - 223.5.5.5

nameserver-policy 的优先级高于 nameserver/fallback 的自动分流,适合需要精确控制的场景。

DNS 泄漏检测方法

配置完 DNS 后,务必进行泄漏测试:

  1. browserleaks.com/dns:查看你的 DNS 服务器 IP,应该不是你 ISP 的 DNS。
  2. dnsleaktest.com:运行扩展测试,检查所有 DNS 请求是否都通过代理。
  3. ipleak.net:综合检测 IP、DNS、WebRTC 泄漏。

正常情况下的期望结果:

完整配置示例

以下是一个综合考虑防污染、性能和兼容性的完整 DNS 配置:

dns:
  enable: true
  listen: "0.0.0.0:53"
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "*.msftconnecttest.com"
    - "*.msftncsi.com"
    - "localhost.ptlogin2.qq.com"
    - "localhost.sec.qq.com"
    - "+.stun.*.*"
    - "dns.tencent.com"
    - "dns.alicdn.com"
  prefer-h3: true

  nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - "https://dns.alidns.com/dns-query"

  fallback:
    - "tls://8.8.8.8:853"
    - "tls://1.1.1.1:853"
    - "https://dns.google/dns-query"
    - "https://cloudflare-dns.com/dns-query"

  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4
    domain:
      - "+.google.com"
      - "+.facebook.com"
      - "+.youtube.com"
      - "+.twitter.com"
      - "+.github.com"
      - "+.telegram.org"

  nameserver-policy:
    "+.baidu.com":
      - 223.5.5.5
    "+.bilibili.com":
      - 223.5.5.5
    "+.google.com":
      - "tls://8.8.8.8"
    "dns.msftncsi.com":
      - 223.5.5.5
    "www.msftconnecttest.com":
      - 223.5.5.5
DNS 配置是代理安全的关键环节。配合正确的 规则分流,可以实现完善的隐私保护。如果你使用 TUN 模式,DNS 配置更为重要,详见 TUN 模式指南