Clash DNS 設定詳解:原理、防洩漏與最佳實踐

為什麼 DNS 如此重要

DNS(Domain Name System,域名系統)是網際網路的「電話簿」,負責把 example.com 這樣的可讀域名翻譯成機器能識別的 IP 位址。你在瀏覽器裡輸入網址、開啟 App 時,第一步往往就是 DNS 查詢——只有拿到正確的 IP,後續 TCP 連線和 HTTPS 握手才能進行。

在 Clash 這類代理工具中,DNS 不再只是「解析域名」這麼簡單,它直接參與分流決策。Clash 的規則可以按域名匹配(DOMAIN)、按 IP 段匹配(IP-CIDR)、按 GeoIP 判斷歸屬地(GEOIP)。如果 DNS 解析出了錯誤結果,整條分流鏈路都會跟著出錯。

設定不當通常帶來兩類問題:

  • DNS 洩漏:本應走代理的域名卻用了本地或電信業者 DNS 解析,既可能暴露存取意圖,也可能因 DNS 污染拿到錯誤 IP,導致連線失敗或繞過了代理。
  • 分流錯誤:基於 IP 的規則(如 GEOIP,PRIVATE,DIRECT)依賴正確的解析結果。若需走代理的域名被解析成本地 CDN 節點,可能誤走直連;反之,本地域名若被解析到境外 IP,又會無謂消耗代理流量。

因此,DNS 設定是 Clash 進階調校中繞不開的一環。理解其原理後,你就能解釋「為什麼某個網站突然直連了」「為什麼串流媒體打不開」等常見現象。下文將從污染成因、解析模式到實戰設定,帶你系統掌握 Clash DNS 的完整用法。

DNS 污染與加密 DNS

在未加密的 UDP/TCP DNS 查詢中,請求以明文傳輸,中間網路設備可以竄改回傳結果,這就是常說的 DNS 污染。被污染的域名可能回傳一個錯誤的 IP(常見為 0.0.0.0 或某占位位址),導致網站無法存取或存取到錯誤伺服器。

為應對污染,Clash 支援 DoH(DNS over HTTPS)和 DoT(DNS over TLS)等加密 DNS 協議。加密後,查詢內容不易被竄改,解析結果更可靠。Clash 的 nameserverfallback 機制正是圍繞「主要 DNS 快速解析 + 加密備援」這一思路設計的。

default-nameserver 用於解析 nameserverfallback 中 DoH 域名本身(例如解析 dns.google 的 IP),通常填可靠的 UDP DNS,避免「雞生蛋」的循環依賴問題。

Clash 的兩種解析模式

redir-host

在 redir-host 模式下,Clash 會先向 DNS 伺服器發起真實解析,拿到真實 IP 後再根據規則決定走代理還是直連。邏輯直觀,便於理解,也適合需要真實 IP 做 GEOIP 判斷的場景。

但缺點也明顯:解析需代理的域名時容易遭遇污染,拿到錯誤 IP;每次連線前都要等 DNS 回傳,增加首包延遲;部分應用程式會快取 DNS 結果,與 Clash 的分流策略可能產生衝突。

fake-ip(推薦)

fake-ip 模式下,Clash 為每個待解析域名分配一個保留網段內的「虛假 IP」(預設 198.18.0.0/16,這是 IANA 保留位址,不會與公網真實 IP 衝突)。應用程式拿到 fake-ip 後發起連線,Clash 在本地攔截該連線,根據域名對應表決定走代理還是直連,再建立真實連線。

優勢在於:無需等待真實 DNS 回傳即可快速回應應用程式;域名資訊保留在 Clash 內部,分流更精準;對串流媒體、規則分流相容性更好,也是目前社群最主流的選擇。

大多數情況下都建議使用 fake-ip 模式。若你遇到區域網路裝置探索異常、某些 NAS 或印表機無法存取,再考慮把相關域名加入 fake-ip-filter,或局部改用 redir-host。

一份推薦設定

下面是一份經過大量使用者驗證的 DNS 設定範本,可直接加入你的 Clash 設定檔(上游 DNS 可按網路環境微調):

dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 fake-ip-filter: - "*.lan" - "+.local" default-nameserver: - 1.1.1.1 - 8.8.8.8 nameserver: - https://1.1.1.1/dns-query - https://dns.google/dns-query fallback: - https://8.8.4.4/dns-query - https://doh.opendns.com/dns-query fallback-filter: geoip: true geoip-code: TW ipcidr: - 240.0.0.0/4

各欄位含義簡述:

  • nameserver:主 DNS,優先用於解析,選擇靠近你所在地區的加密 DNS 伺服器以降低延遲。
  • fallback:當 nameserver 回傳的結果被判定為「不可信」(如 GeoIP 不符合預期地區)時,改用 fallback 重新解析,使用加密 DNS 確保結果可靠。
  • fallback-filter.geoip:啟用 GeoIP 過濾,若 nameserver 回傳的 IP 歸屬地不符合你設定的地區碼(geoip-code,請改成你所在地區,如 TW),則觸發 fallback。
  • fake-ip-filter:排除不需要 fake-ip 的域名,如區域網路 *.lan、部分需要真實 IP 的本地服務。

常見問題與排查

常用網站無法開啟或變慢

可能是 fallback 誤觸發,導致本地域名走了境外 DNS。檢查 fallback-filter 是否正確,或在本地域名規則前新增 DOMAIN 直連規則。也可在 nameserver-policy 中為特定域名指定專用 DNS。

串流媒體提示地區不可用

部分串流媒體會偵測 DNS 與 IP 是否一致。確保串流媒體相關域名走代理,且 DNS 解析也經代理側處理;必要時在規則中為 Netflix、Disney+ 等單獨設定。

區域網路裝置無法互相存取

fake-ip 可能影響 mDNS、Bonjour 等區域網路探索協議。將 *.local*.lan 加入 fake-ip-filter,或對該網段使用 redir-host。若家中有 Chromecast、AirPlay 等裝置,也建議將其相關域名加入 filter,確保投影螢幕與探索功能正常。

IPv6 相關說明

若你的網路環境暫不需要 IPv6,建議保持 ipv6: false,避免部分應用程式優先走 IPv6 導致分流異常。若已全面啟用 IPv6,可設為 true 並設定 nameserver-policy 為 IPv6 域名指定專用解析路徑,確保 v4/v6 流量均能正確分流。

驗證是否生效

設定完成後,建議按以下步驟驗證:

  1. 存取 DNS 洩漏偵測網站(如 dnsleaktest.com),確認解析出口與預期一致,代理開啟時不應暴露本地電信業者 DNS。
  2. 分別存取常用的本地網站和需走代理的網站,確認前者直連、後者走代理,速度正常。
  3. 在 Clash 面板或日誌中查看連線記錄,確認域名與規則匹配符合預期。
  4. 關閉再開啟代理,觀察應用程式是否仍能正常解析,排除 DNS 快取導致的異常。
修改 DNS 設定後需重新載入設定或重啟 Clash 才能生效。若仍有問題,可嘗試清空系統 DNS 快取(Windows:ipconfig /flushdns;macOS:sudo dscacheutil -flushcache)。

小結

合理的 DNS 設定是穩定代理體驗的基礎。推薦使用 fake-ip 模式,配合「主要加密 DNS + 備援加密 fallback + GeoIP 過濾」的分流策略,既能防洩漏、防污染,又能保持良好的存取速度。遇到區域網路或特殊應用問題時,善用 fake-ip-filter 和 nameserver-policy 做精細調整。設定完成後務必實測驗證,並根據實際網路環境持續最佳化。掌握 DNS 設定後,你將能獨立解決大部分與解析相關的連線異常,為後續的規則分流和代理組調校打下堅實基礎。

準備好體驗 Clash 了嗎?

前往 Clash 官方網站下載用戶端,按教學匯入訂閱,Windows / macOS / Android / iOS / Linux 全平台支援,幾分鐘即可上手。

返回部落格列表