分流的準確性一半取決於 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 再試。