分流的准确性一半取决于 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 再试。