DNS 設定指南:解決解析異常與 DNS 汙染問題
網頁打不開、圖片載入不出來、部分網站存取緩慢,很多時候排查半天發現問題根源不是節點,而是 DNS 解析被汙染或走錯了路徑。這篇文章講清楚 Clash 裡 DNS 模組該怎麼配。
為什麼 DNS 也需要設定
即便代理連接本身完全正常,如果網域解析用的是被汙染或劫持的 DNS 伺服器,瀏覽器拿到的目標 IP 就是錯的,後續無論走不走代理都無法正常存取。因此代理用戶端通常會內建一個 DNS 模組,接管系統的網域解析請求,用可信的 DNS 伺服器解析,再決定連接哪個 IP。
基礎 DNS 設定
default-nameserver:用於解析下面nameserver裡那些 DNS-over-HTTPS / DNS-over-TLS 伺服器自身的網域,通常填一個境內可直連的普通 DNS。nameserver:真正用來解析你存取網站的 DNS 伺服器,推薦使用支援加密的 DoH(https://)或 DoT(tls://),避免被中間網路設備竄改或阻斷。
fake-ip:讓分流更聰明
如果開啟了 TUN 模式,通常會同時啟用 fake-ip 模式:核心先給每個網域分配一個虛擬 IP 回傳給系統,實際連接時再根據網域(而不是真實 IP)去比對規則、發起連接。好處是分流判斷可以精確到網域層級,不受 DNS 回傳結果的影響。
fake-ip-filter 用於排除不適合用虛擬 IP 的網域(比如區域網路裝置、需要真實 IP 才能正常運作的服務),命中過濾規則的網域會走正常 DNS 解析流程。
fake-ip 影響,把對應網域加入 fake-ip-filter 通常就能解決。如何驗證 DNS 是否正常運作
可以在系統的終端機/命令提示字元裡,用 nslookup 或 dig 查詢一個網域,對比開啟代理前後回傳的 IP 是否不同——如果開啟代理後回傳了一個明顯不屬於目標網站的 IP(例如內網位址、無效位址),大概率是 DNS 設定有問題,需要檢查 nameserver 清單或 fake-ip-filter 設定。
按網域指定不同的 DNS 解析策略
如果你既要保證境內網站解析速度快,又要保證境外網站不被汙染,可以給不同規則集設定不同的 DNS 策略,讓境內網域走境內 DNS 直接解析,境外網域走加密 DNS 解析,兩者互不影響:
nameserver-policy 允許你針對特定網域分組(這裡用了內建的 geosite:cn 境內網域分類)指定專用的 DNS 伺服器,不在策略範圍內的網域則繼續使用預設的 nameserver 清單解析,兩套邏輯互不衝突。
IPv6 環境下需要額外注意什麼
如果本機或電信業者網路已經啟用了 IPv6,DNS 解析出的 AAAA 記錄可能會讓系統優先嘗試 IPv6 連接,而部分代理節點或規則集還沒有做好 IPv6 層面的適配,容易出現「有時候連得上、有時候連不上」的診斷難題。如果暫時不確定 IPv6 鏈路是否穩定,可以先在 DNS 設定裡關閉 IPv6 解析:
等確認 IPv6 環境下的節點連通性沒有問題後,再重新開啟即可,這一步能幫你快速排除「到底是 DNS 問題還是 IPv6 鏈路問題」這個常見的排查盲區。
小結
DNS 問題的表現和「網路連不上」很像,容易被誤判為節點故障。遇到存取異常先排除一下 DNS 這一層——換一個可信的加密 DNS 伺服器、檢查 fake-ip 過濾規則、留意 IPv6 環境下的相容性,往往比反覆更換節點更能定位問題。