本文速覽

本文適合已完成訂閱匯入與基本連線,卻遇到網域解析錯誤、分流命中不穩定或首次存取延遲的使用者。設定目標是將中國大陸網域交給本地解析器,海外網域交給加密解析器,同時讓 DNS 結果繼續受到路由規則限制。讀完後即可分辨 DNS 查詢策略、路由網域策略與系統 DNS 接管範圍,並依據日誌和命令輸出確認實際解析路徑。

DNS 分流解決的不只是速度問題

用戶端存取網站時,通常會先將網域轉換為 IP 位址,再依照路由規則選擇直連、代理或阻斷出站。若解析結果錯誤,即使 VMess、VLESS 或底層傳輸參數全部正確,連線仍可能被送往錯誤位址。若解析結果來自不適合的區域,網站也可能回傳距離較遠的服務節點,呈現握手正常但首個封包緩慢的情況。

中國大陸網域使用本地遞迴解析器,主要優點是回應距離短,並能取得適合本地網路的位址。海外網域使用經代理存取的加密 DNS,主要用於降低查詢遭改寫或錯誤快取的機率。重點不是將所有查詢強制交給同一台伺服器,而是讓網域規則、DNS 伺服器與最終出站保持一致。

網域請求規則判定選擇解析器回傳位址出站比對

還要區分「用戶端內建 DNS」與「作業系統目前使用的 DNS」。僅啟用系統代理時,瀏覽器的 HTTP 流量可以進入 v2rayN,但部分應用程式仍可能直接呼叫系統解析器。TUN 模式可以接管更廣泛的流量範圍,不過是否接管 53 連接埠的查詢,仍取決於用戶端產生的入站、DNS 劫持與路由設定。看到代理已連線,不代表所有 DNS 查詢都已進入核心。

注意:修改 DNS 前,請先儲存目前可用的設定。一次只調整伺服器分組、查詢策略或路由策略中的一項,重新連線後立即測試。同時變更多個變數,會讓日誌難以找出真正原因。

先拆解四個容易混淆的設定層

一套容易維護的 DNS 設定至少包含四層:解析伺服器負責回答查詢;網域規則決定使用哪一組伺服器;查詢策略決定請求 A、AAAA 或兩者;路由策略決定取得網域或 IP 後如何比對出站。四層的參數名稱相近,但作用位置不同。

中國大陸解析組

伺服器
223.5.5.5
連接埠
53
網域範圍
geosite:cn
位址限制
geoip:cn

用於本地直連網域,優先降低解析往返時間。

海外解析組

協定
DNS over HTTPS
傳輸連接埠
443
網域範圍
geosite:geolocation-!cn
建議出站
代理

加密查詢還需要透過路由送往代理出站,不能只填寫伺服器位址。

查詢策略

UseIP
依環境查詢位址
UseIPv4
僅請求 A 記錄
UseIPv6
僅請求 AAAA 記錄
影響對象
DNS 回傳類型

本地 IPv6 不穩定時,先使用 UseIPv4 排除位址族問題。

路由網域策略

AsIs
優先保留網域
IPIfNonMatch
網域未命中時再解析
IPOnDemand
需要 IP 規則時解析
影響對象
路由規則比對

它與 dns.queryStrategy 並非同一個參數,不應互相取代。

expectIPs 用於檢查解析結果是否符合預期的位址範圍。例如將中國大陸網域交給本地伺服器後,可要求結果落在 geoip:cn。若結果不符合,核心可以繼續嘗試後續伺服器。skipFallback 則用於控制目前伺服器所比對的網域是否參與回退,適合規則邊界已明確的分組。

結論:先確認流量歸屬,再選擇解析伺服器

預計直連的網域,應優先選擇能回傳本地可達位址的解析器;預計使用代理的網域,則讓查詢與存取都經過代理路徑。只按「哪個 DNS 延遲較低」排序,容易得到與出站區域不相符的位址。

如何撰寫易讀的分組設定

以下片段展示 Xray 核心常見的 DNS 分組結構,適合用來理解欄位關係,不建議覆蓋用戶端自動產生的完整設定。v2rayN、v2rayNG 與 v2flyNG 搭載的核心和版本可能不同,匯入前應確認目前核心是否支援對應欄位。

{
  "dns": {
    "queryStrategy": "UseIPv4",
    "servers": [
      {
        "address": "223.5.5.5",
        "port": 53,
        "domains": [
          "geosite:cn"
        ],
        "expectIPs": [
          "geoip:cn"
        ],
        "skipFallback": true
      },
      {
        "address": "https://1.1.1.1/dns-query",
        "domains": [
          "geosite:geolocation-!cn"
        ]
      },
      "localhost"
    ]
  },
  "routing": {
    "domainStrategy": "IPIfNonMatch"
  }
}

第一組伺服器只處理中國大陸網域,並以位址範圍限制回傳結果。第二組處理非中國大陸網域。最後的 localhost 是備援項目,是否保留取決於實際環境;若系統解析器經常回傳異常結果,可以改用另一台明確可達的伺服器,但不要在沒有日誌依據時疊加過多備援項目。

加密 DNS 位址本身也可能包含網域。核心在建立 HTTPS 連線前,需要先知道該服務端網域的 IP,這一步稱為引導解析。使用 IP 格式的端點可以降低循環依賴;使用網域端點時,則要確保它能由本地伺服器可靠解析,並確認對應查詢不會再次遞迴進入同一條尚未建立的加密連線。

設定提示:訂閱更新通常只會替換節點資訊,不一定會同步覆蓋本地 DNS 與路由規則。更新訂閱後,應檢查自訂規則是否仍由目前設定引用。

v2rayN 與 Android 用戶端的設定順序

v2rayN 7.x 可先進入「設定」→「參數設定」,確認目前核心、系統代理與 DNS 相關選項,再進入路由設定檢查規則集。不同小版本的選單文字可能略有差異,但操作順序應保持一致:先確認流量入口,再確認 DNS 設定,最後確認路由出站。修改後停止目前連線並重新啟動,確保重新產生新設定。

  1. 記錄入口模式:確認目前使用系統代理還是 TUN。系統代理常見的本地 HTTP 連接埠為 10809,SOCKS 連接埠常見為 10808,實際值請以用戶端介面為準。
  2. 檢查 DNS 伺服器組:中國大陸組填寫本地可達伺服器,海外組填寫加密查詢端點,並為每組繫結清楚的網域範圍。
  3. 檢查路由規則順序:精確網域規則放在大範圍規則之前,阻斷規則、直連規則與代理規則不要交叉覆蓋。
  4. 重新啟動連線:儲存設定後重新連線,再清除作業系統與瀏覽器現有的 DNS 快取。
  5. 讀取核心日誌:尋找目標網域、DNS 伺服器位址、出站標籤與失敗原因,不要只看延遲測試結果。

v2rayNG 使用 Xray 核心,通常可在「設定」中的 DNS、路由與 VPN 服務相關項目進行調整。v2flyNG 使用 v2fly 核心,設定欄位的支援範圍應以核心實際版本為準。兩者都不應直接複製另一種核心的完整設定;較穩妥的方式是先在圖形介面選擇伺服器與查詢策略,再查看產生的設定是否符合預期。

53
傳統 DNS 常用連接埠
443
HTTPS 加密查詢連接埠
853
TLS DNS 常用連接埠
10808
常見本地 SOCKS 連接埠

這些連接埠只用於定位流量,不代表所有用戶端都採用相同的預設值。例如使用者修改本地監聽連接埠後,終端機環境變數仍指向 10808,就會出現瀏覽器正常、命令列失敗的分歧情況。檢查 DNS 時,也要同時確認應用程式實際連線到哪個本地入口。

如何驗證中國大陸與海外網域確實分開解析

驗證不能只看網頁是否開啟。瀏覽器可能重複使用既有連線,也可能保留自己的 DNS 快取。應選取一個確定直連的中國大陸網域,以及一個確定使用代理的海外網域,分別檢查解析結果、查詢耗時、核心日誌與最終出站。

檢查項目 預期結果 異常訊號
中國大陸網域解析 命中本地伺服器,結果符合中國大陸位址範圍 查詢進入海外加密組,首次存取延遲明顯增加
海外網域解析 命中加密伺服器,並透過代理出站建立連線 日誌顯示查詢直接發往系統 DNS
A 與 AAAA 記錄 回傳類型符合 queryStrategy 只有無法連線的 IPv6 位址,等待連線後才回退
路由命中 網域規則與最終 IP 規則指向一致的出站 DNS 走代理,但目標連線被 IP 規則改為直連

在 Windows 終端機中可使用 nslookup 指定伺服器進行基準測試。以下第一個測試可確認本地解析器是否可達,第二個則查看系統目前的解析路徑。系統命令取得的結果不一定經過 V2Ray 內建 DNS,因此較適合用於比對,而不是單獨證明核心分流已生效。

nslookup example.cn 223.5.5.5
nslookup example.com
ipconfig /flushdns

進行瀏覽器測試前,應關閉並重新開啟目標頁面,避免重複使用舊連線。接著查看 v2rayN 的即時日誌,確認目標網域先命中哪條 DNS 規則,再確認連線命中 direct、proxy 或 block 對應的出站標籤。若日誌中只有 IP、沒有原始網域,應檢查流量入口是否保留網域資訊,以及嗅探設定是否適用於目前協定。

結論:以日誌中的解析器與出站標籤作為驗收依據

同一網域連續測試三次時,快取會讓第二次與第三次幾乎不產生遠端查詢。先清除快取,再用首次查詢日誌判斷伺服器組;接著用連線日誌判斷最終出站,兩項都符合規則才算分流完成。

常見失敗現象與修正方式

最常見的問題是已填寫加密 DNS,但它自身卻被路由到直連。表現為一般節點可以連線,海外網域卻持續解析逾時。處理時先查明加密 DNS 端點的網域或 IP 命中了哪條規則,再為它建立明確的代理出站規則。不要因為逾時就不斷增加備用伺服器,否則實際查詢路徑會變得難以預測。

系統代理已啟用,為什麼系統查詢仍使用本地 DNS?

系統代理主要影響遵循代理設定的應用程式連線,不一定會接管作業系統發出的 UDP 53 查詢。需要結合 TUN、DNS 劫持或應用程式自身的代理解析能力處理,並透過日誌確認查詢是否進入核心。

中國大陸網站能開啟,但圖片載入很慢,該怎麼辦?

頁面與圖片可能來自不同網域。檢查靜態資源網域是否被 geosite:geolocation-!cn 規則送往海外解析組,也要檢查回傳位址是否被後續 IP 規則改走代理。依實際網域新增精確規則,不要直接放行整個頂級網域。

啟用 UseIPv4 後恢復正常,是否應該永久保留?

這表示異常可能來自 IPv6 位址無法連線、缺少路由或網路品質不穩定。目前網路只需要 IPv4 時可以保留;若之後需要 IPv6,應先檢查本地位址、預設路由與代理節點的 IPv6 支援,再恢復 UseIP 測試。

規則集更新後解析結果突然改變,原因是什麼?

網域可能被移至新的分類,或用戶端更新了 geosite 與 geoip 資料。記錄更新前後的命中規則,為重要業務網域增加優先順序較高的精確規則,再觀察是否恢復。精確規則應少而清楚,避免形成難以維護的長清單。

另一個常見問題是瀏覽器啟用了獨立的安全 DNS,而用戶端也設定了加密 DNS。此時查詢可能繞過用戶端分組邏輯,日誌中看不到目標網域。排查階段應統一查詢入口:要麼讓瀏覽器查詢進入代理並由用戶端處理,要麼明確記錄瀏覽器自身的解析端點與代理路徑,避免兩套策略同時運作。

穩定設定的收尾原則

完成驗證後,保留一組中國大陸解析器、一組海外加密解析器,以及一個用途明確的備援項目即可。伺服器數量越多,不代表可靠性越高;沒有網域邊界與回退條件的長清單,只會增加隨機命中與故障定位成本。

路由規則也應遵循相同原則:先放業務需要的精確網域,再放 geosite 分類,最後處理 IP 分類與預設出站。DNS 分組與路由分組採用同一套「中國大陸直連、海外代理」意圖,才能避免解析階段與連線階段互相推翻結果。

  1. 儲存一份已驗證可用的基本設定。
  2. 記錄用戶端版本、核心類型、入口模式與本地監聽連接埠。
  3. 為中國大陸與海外各選擇一個固定測試網域。
  4. 規則集或訂閱更新後,重新執行首次查詢測試。
  5. 發生異常時,依照「入口、解析器、位址結果、路由出站」順序讀取日誌。

最終驗收標準很明確:中國大陸網域由本地解析器快速回傳合理位址,並命中直連出站;海外網域由加密解析器查詢,解析請求與目標連線都命中代理出站;未分類網域具備穩定備援;IPv4 與 IPv6 回傳類型符合目前網路能力。滿足這四項後,再考慮快取時間、規則細化與個別網域覆蓋。