2026-08-21 · 進階設定 · 約 12 分鐘

V2Ray DNS 設定教學:網域分流解析與 DNS 污染防護

了解 dns.servers、domainStrategy 與 geosite 規則如何搭配,為中國大陸與海外網域指定不同 DNS 伺服器,減少解析遭污染及連線繞路。

本文重點

本文適合已能連上節點,並準備調整 DNS 分流的使用者。先釐清應用程式解析、核心解析與出站路由的差異,再設定中國大陸 DNS 與經代理連線的遠端 DoH,最後透過日誌和對照測試確認結果。範例是需合併至現有設定的片段,並非可直接取代訂閱節點的完整設定。

1. DNS 分流與代理分流是兩種不同設定

DNS 分流決定「由哪個伺服器將網域名稱解析為 IP」,路由分流則決定「連線從哪個出口送出」。將海外網域指定給遠端解析器,不代表連往解析器的請求已經經過代理;反過來說,網頁連線走代理,也不表示瀏覽器先前沒有透過系統 DNS 查詢網域。兩條路徑都要確認。

應用程式提交網域名稱 比對網域規則 核心視需要進行解析 比對 IP 規則 建立出站連線

這個流程描述的是應用程式將網域名稱交給核心,且路由策略需要解析的情況。如果網域規則已直接選定代理出站,路由階段可能完全不會查詢 DNS;目標網域也可能交由代理伺服器端解析。如果應用程式只提交 IP,核心通常無法可靠還原最初查詢的網域名稱。

  • DNS 解析遭污染:取得錯誤或遭到干預的解析結果。IP 位址改變本身並非遭污染的證據;CDN 原本就可能依地區回傳不同位址。
  • DNS 洩漏:查詢使用了預期以外的解析路徑。依計畫透過中國大陸 DNS 直連解析大陸網域,不應一概視為洩漏。
  • 解析繞路:中國大陸服務透過遠端解析器取得距離較遠的 CDN 位址,可能造成圖片載入緩慢或影片緩衝,不一定會完全無法連線。

2. 先分清三種設定位置中的 domainStrategy

搜尋 V2Ray DNS 設定時,常會看到同名欄位。欄位所在位置不同,作用也不一樣。請勿混淆路由中的 domainStrategy、直連出站中的同名欄位,以及 DNS 的 queryStrategy。

設定位置常見值實際作用
routing.domainStrategyAsIs依現有目標資訊比對,不主動為路由解析網域名稱;目標若已是 IP,仍可比對 IP 規則。
routing.domainStrategyIPIfNonMatch網域階段未比對到規則時,再進行解析並嘗試比對 IP 規則。
routing.domainStrategyIPOnDemand比對過程遇到需要 IP 的規則時才觸發解析,因此較受規則順序影響。
freedom.settings.domainStrategyAsIs、UseIP決定直連出站如何處理目標網域;使用 UseIP 時可呼叫內建 DNS。
dns.queryStrategyUseIP、UseIPv4、UseIPv6控制內建 DNS 查詢使用的 IP 位址類型,不負責選擇代理出口。

初次調整可先使用 IPIfNonMatch,優先依明確的網域規則決定出口,未命中時再以 IP 地理規則補足。這不是「所有網域都先解析一次」的開關,也不會接管系統中每個應用程式的 DNS。

3. 依網域選擇中國大陸 DNS 與遠端 DoH

dns.servers 中的伺服器物件可透過 domains 指定優先處理的網域清單。這裡的網域比對只用來選擇解析伺服器,不會一併建立網站連線的路由規則。本文以中國大陸 UDP DNS 與遠端 DoH 兩條路徑為例,說明各自的選擇條件與傳輸方式。

中國大陸網域解析

解析伺服器位址
223.5.5.5
傳輸連接埠
UDP 53
比對範圍
geosite:cn
備援查詢
skipFallback: true

將此伺服器排除於一般備援選擇之外,降低未分類網域被送往中國大陸解析器的機率。

遠端加密解析

解析伺服器位址
https://1.1.1.1/dns-query
傳輸連接埠
TCP 443
優先處理範圍
geosite:geolocation-!cn
預期出站
proxy

一般 HTTPS DNS 請求可交由核心路由;仍須明確指定代理出站連往解析器 IP。

geosite:cn 與 geosite:geolocation-!cn 是規則資料中的分類標籤,並非嚴格互補的完整集合。部分新網域可能未列入其中,因此上述遠端解析器也負責處理未命中的備援查詢。兩者若有重疊或資料缺漏,應配合目前使用的資料檔與日誌判斷,不能只依網域後綴推定比對結果。

  • skipFallback: true 不代表「永遠不會查詢這台伺服器」;明確比對到的網域仍可使用它。此設定主要影響備援候選伺服器的選擇。
  • 使用 https:// 與 https+local:// 的請求路徑不同。後者使用本機模式,不能直接套用本文對核心路由的假設。
  • 使用網域名稱格式的 DoH 位址時,還必須先解析解析器本身的網域名稱。本文使用 IP 位址字面值,以減少這項依賴。
  • DoH 會加密傳送至解析服務的查詢,但無法保證解析服務始終回傳合適的結果,也不能取代路由檢查。

4. 合併 DNS 與路由設定,先固定解析器的出站路徑

以下是核心 JSON 設定的合併範例,假設現有設定已有名為 proxy 的代理出站與名為 direct 的直連出站。若實際標籤不同,必須逐一替換;並保留原有的 inbounds、節點驗證、傳輸與 TLS 設定。請勿將此片段直接當成完整設定啟動。

{
  "dns": {
    "queryStrategy": "UseIP",
    "servers": [
      {
        "address": "223.5.5.5",
        "port": 53,
        "domains": [
          "geosite:cn"
        ],
        "skipFallback": true
      },
      {
        "address": "https://1.1.1.1/dns-query",
        "domains": [
          "geosite:geolocation-!cn"
        ]
      }
    ]
  },
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "ip": ["1.1.1.1"],
        "port": "443",
        "network": "tcp",
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "ip": ["223.5.5.5"],
        "port": "53",
        "network": "udp",
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": ["geosite:geolocation-!cn"],
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "ip": ["geoip:cn"],
        "outboundTag": "direct"
      }
    ]
  }
}

路由規則由上而下比對,第一條命中的規則生效。將解析器專用規則排在一般地理規則之前,可讓 DNS 傳輸路徑更容易預測。這些規則依目的 IP 與連接埠比對,因此其他連往相同位址及連接埠的連線也會套用這些規則。

  1. 確認預設出站:未命中任何規則的流量通常會使用 outbounds 中的第一個出站。若希望未分類流量預設走代理,請確認第一個出站確實是預期的代理,而不只是修改規則。
  2. 確認規則資料:啟動時若提示找不到 geosite 分類或資料檔,請修正規則資料來源與路徑。不要刪除報錯規則後繼續執行,並以此證明設定有效。
  3. 確認直連解析:若希望直連出站也使用內建 DNS,可在既有 freedom 出站的 settings 中設定 "domainStrategy": "UseIP",並確認目前使用的核心支援此設定。
  4. 確認節點引導解析:若代理伺服器位址本身是網域名稱,請勿讓它唯一的解析路徑依賴尚未建立的代理連線。應為該網域安排可用的引導解析方式,避免啟動時形成循環依賴。

5. 在用戶端套用設定,避免介面設定覆蓋 JSON

v2rayN 會依介面中的節點、DNS 與路由設定產生執行設定。直接修改暫存產生的檔案,可能在切換節點或重新啟動後被覆蓋。建議使用目前版本提供的 DNS 設定、路由設定或自訂設定入口;不同版本的選單名稱可能不同,別將某一版的選單路徑視為所有版本通用。

  1. 保留還原點:記錄目前的節點、系統代理模式與路由模式,匯出設定或備份相關選項。每次只修改 DNS 與必要的路由,不要同時更換通訊協定或傳輸參數。
  2. 檢查生效中的設定:儲存設定並重新啟動核心後,查看用戶端提供的執行設定或設定預覽,確認 dns.servers、規則順序與出站標籤確實存在。
  3. 確認應用程式連線入口:桌面應用程式必須遵循系統代理,或明確連線至本機 HTTP/SOCKS 入口。若要測試 SOCKS,請使用用戶端顯示的實際連接埠;教學中的連接埠不一定是本機預設值。
  4. 確認 Android 接管範圍:使用 v2rayNG 或 v2flyNG 時,也應檢查 VPN 模式、應用程式分流設定與 DNS 選項。遭排除的應用程式可能仍會使用原本的網路路徑。
  5. 排除其他解析設定的影響:測試期間記錄瀏覽器「安全 DNS」與 Android「私人 DNS」原本的狀態;視需要暫時關閉並進行對照測試,完成後再恢復預期設定。

瀏覽器內建的加密 DNS 可能繞過核心的網域分類邏輯,但 DNS 連線本身仍可能經過代理。應分別確認「使用哪個解析器」與「連線走哪個出口」,不能看到 DoH 就認定 DNS 分流已正確設定。

6. 透過連接埠、日誌與對照測試驗證分流

以下數字代表通訊協定連接埠與測試次數,並非效能實測結果。驗證時至少選擇一個確定符合中國大陸規則的網域,以及一個確定符合遠端規則的網域;請依實際使用的資料集確認分類,避免以未收錄的網域推斷規則失效。

53
傳統 DNS 常用連接埠
443
本文 DoH 使用的 HTTPS 連接埠
3 輪
建議重複進行的對照測試次數
驗證項目操作方式結果說明
核心是否接受設定重新啟動核心,檢查啟動日誌是否有 JSON、欄位或規則資料錯誤。成功啟動只代表語法正確且資料載入完成,不表示解析流量走的是預期出口。
是否有進行 DNS 查詢暫時提高日誌層級,清除相關快取後存取測試網域,查看 DNS 查詢與回應紀錄。若命中快取,或網域直接交由代理伺服器端解析,本機可能不會出現新的查詢。
解析器的出站路徑在日誌可提供資訊的範圍內,檢查連往 1.1.1.1:443 的連線與出站;必要時搭配本機封包擷取。結果應符合預設的代理路徑;只看到回傳 IP,無法證明傳輸經過代理。
網站流量的出站查看測試網域的連線命中了哪個出站標籤,並比較中國大陸與遠端兩組請求。DNS 路徑正確但網站流量走錯,仍須調整規則順序或應用程式接管範圍。

Windows 可執行 ipconfig /flushdns 清除系統 DNS 快取,但瀏覽器與核心仍可能保留各自的快取。直接執行 nslookup 通常測試的是系統或指定的 DNS 伺服器;啟用系統代理不會自動讓它改為測試核心 DNS。只有在明確設定本機 DNS 監聽,且查詢確實送至該監聽時,才能用它驗證相應路徑。

判斷順序:先確認解析路徑,再比較連線速度

先確認查詢由誰處理,以及解析器連線使用哪個出站,再記錄三輪連線是否成功與所需時間。若尚未確認解析路徑,單次頁面載入變快,或兩個解析器回傳不同 IP,都不足以證明防污染設定有效。

7. DNS 分流解析常見問題與排查順序

設定遠端 DoH 後,為什麼海外網站還是無法開啟?

先確認連往 1.1.1.1:443 的路由是否命中 proxy,再確認代理本身可正常使用。如果節點位址是網域名稱,請確認其引導解析不依賴同一條尚未建立的代理連線;最後再排查目標網站的連線。

中國大陸網站能開啟,但圖片突然變慢怎麼辦?

檢查圖片實際使用的 CDN 網域是否列入中國大陸規則。可先針對已確認的網域使用 full: 精確規則進行對照,分別檢查 DNS 選擇與網站流量路由。不要只因一個網域異常,就把所有查詢都改成直連。

只回傳 IPv4 就能解決所有載入逾時嗎?

不一定。可暫時將 dns.queryStrategy 改為 UseIPv4,排除 IPv6 路徑不可用的影響;若問題仍在,應還原原設定並繼續排查。應用程式快取、瀏覽器獨立解析及伺服器端解析,不一定受此欄位控制。

升級用戶端後,原本的 DNS 分流失效了?

先比對實際使用的核心、執行設定與規則資料,不要只看介面開關。確認 proxy、direct 標籤沒有變更,且 DNS 設定未被重新產生的設定覆蓋;修正後重新啟動核心,再以中國大陸與遠端兩組網域重新測試。

最後保留的設定應能說明三件事:哪些網域由中國大陸解析器處理、哪些查詢會經代理送往遠端解析器,以及未命中分類時如何進行備援。若要更嚴格地控制 DNS 路徑,還應另行規劃系統 DNS、瀏覽器解析與網路接管範圍,不能只靠一段 dns.servers 設定就涵蓋整台裝置。

下載v2rayN