2026-06-18 · 進階設定 · 約 11 分鐘

v2rayN DNS 設定詳解:境內外網域分流解析與防 DNS 污染配置方案

解析 v2rayN 的 DNS 設定與核心 dns 結構,設定境內網域使用本地 DoH、境外網域使用遠端解析,並處理 hosts、fakeDNS 與快取之間的關係。

本文速覽

適合已能正常連線節點,但仍遇到網域解析錯誤、網頁偶爾無法開啟或 DNS 檢測結果異常的 v2rayN 使用者。本文會先區分系統解析與核心解析,再提供分流設定、驗證步驟與故障定位方法;完成後即可判斷一次查詢由誰接收、經過哪條出站,以及為何取得目前的位址。

先區分系統 DNS、核心 DNS 與遠端解析

先在 v2rayN 中開啟「設定」→「參數設定」,確認目前啟用的核心類型、系統代理模式與 TUN 狀態。DNS 分流是否生效,不只取決於填寫哪個伺服器,也取決於網域請求是否進入 Xray 核心。一般系統代理主要接管應用程式的 HTTP 或 SOCKS 流量,部分應用程式仍會直接呼叫作業系統 DNS;TUN 模式則能涵蓋更多網路請求,但仍需同時檢查 DNS 劫持與路由規則。

系統 DNS 是網路介面卡或作業系統目前使用的解析器。核心 DNS 是產生設定中頂層的 dns 物件,負責依網域規則選擇解析伺服器。遠端解析表示查詢會經由代理出站傳送至目標解析器,而不只是把伺服器位址改成境外位址。若查詢封包仍從直連出口送出,填寫遠端伺服器並不代表已完成遠端解析。

應用程式查詢網域系統或 TUN 接管核心比對規則選擇解析器依出站傳送
層級 主要職責 檢查位置 常見問題
應用程式層 決定使用系統解析、內建安全 DNS 或代理解析 瀏覽器與應用程式網路設定 繞過系統與核心規則
系統層 將一般 UDP/TCP 53 查詢交給指定伺服器 網路介面卡與系統網路狀態 殘留舊 DNS 或多個介面卡同時存在
核心層 依網域、地域標籤與查詢類型選擇解析器 v2rayN 目前執行中的設定 規則順序錯誤或標籤未命中
出站層 決定查詢直連或經由代理節點 路由規則與核心記錄 遠端解析器被錯誤設為直連
53
傳統 DNS 連接埠
443
DoH 常用連接埠
2 類
A 與 AAAA 常見查詢
198.18/15
常見 fakeDNS 位址池

結論:先確認查詢是否進入核心

設定前先查看目前的執行設定與核心記錄。若測試網域完全沒有 DNS 記錄,應優先處理應用程式內建解析、系統代理範圍或 TUN 接管,而不是繼續更換解析伺服器。

設定境內本地 DoH 與境外遠端解析

先為境內網域準備低延遲的本地 DoH,再為其他網域準備需經代理存取的遠端 DoH。分流依據應使用網域集合,而不是等解析完成後再依回傳 IP 判斷;前者能在送出查詢前選定解析器,避免境外網域先向本地解析器曝光並取得異常結果。

  1. 開啟「設定」→「參數設定」,確認 Xray 核心處於啟用狀態,並記下本地 SOCKS 監聽連接埠。常見預設值為 10808,實際值請以目前參數頁面為準。
  2. 進入 v2rayN 的 DNS 設定頁面,選擇與目前核心相對應的設定區域。不同版本的介面名稱可能略有差異,修改後應查看產生的執行設定,而不要只看編輯框內容。
  3. 將境內 DoH 伺服器綁定至 geosite:cn 類型的網域規則,並使用 geoip:cn 限制預期的回傳位址。
  4. 將遠端 DoH 放在後續比對位置,作為境外網域與未命中網域的解析器;同時確保該 DoH 網域或目標連線經由代理出站。
  5. 儲存設定並重新啟動核心。先測試一個明確的境內網域,再測試一個境外網域,避免只根據單一網站下結論。

以下片段展示 Xray dns 物件的核心結構。這是結構範例,不應直接覆蓋 v2rayN 自動產生的完整設定;實際使用時應透過用戶端的自訂 DNS 區域合併,並保留既有的記錄、入站、出站與路由部分。

{
  "dns": {
    "queryStrategy": "UseIP",
    "disableCache": false,
    "hosts": {
      "dns.local.example": "223.5.5.5"
    },
    "servers": [
      {
        "address": "https://dns.alidns.com/dns-query",
        "domains": [
          "geosite:cn"
        ],
        "expectIPs": [
          "geoip:cn"
        ],
        "skipFallback": true
      },
      {
        "address": "https://1.1.1.1/dns-query",
        "domains": [
          "geosite:geolocation-!cn"
        ]
      },
      "https://1.1.1.1/dns-query"
    ]
  }
}

queryStrategy 設為 UseIP 時,核心可依可用網路請求 A 與 AAAA 結果;若本地網路沒有穩定的 IPv6,卻強制使用 IPv6 查詢策略,可能出現解析成功但連線逾時。僅使用 IPv4 的環境可依目前核心支援情況選擇對應策略,但不要將查詢策略與路由出站混為一談。

結論:本地解析器限定境內規則,遠端解析器負責預設回退

將範圍較窄的 geosite:cn 規則放在前面,再設定遠端預設解析器。儲存後以記錄驗證兩類網域分別命中哪個伺服器,避免只靠解析結果猜測規則。

讓遠端 DNS 查詢確實經由代理出站

遠端 DoH 本質上仍是一條 HTTPS 連線。若其目標位址被路由規則送往直連出站,查詢就會從本地網路發出。處理方式是在路由設定中明確指定遠端解析器網域的代理方向,同時避免將本地 DoH 一併送入代理,維持境內查詢的低延遲。

排查時開啟 v2rayN 的記錄視窗,將核心記錄層級暫時調整為可觀察 DNS 與路由命中的程度。接著清除系統快取,依序存取測試網域。需關注的資訊包括查詢類型、命中的 DNS 伺服器、路由出站標籤、回傳位址與逾時原因。測試完成後可恢復較低的記錄層級,減少日常輸出。

測試項目 預期路徑 範例觀察值 異常含義
境內網域首次解析 本地 DoH → 直連 約 18–45 ms 超過 500 ms 通常表示代理設定錯誤或連續回退
境外網域首次解析 遠端 DoH → 代理 約 90–260 ms 若立即回傳異常位址,需檢查是否使用了本地 DNS
同一網域再次解析 核心快取 通常低於 5 ms 每次都重新查詢,可能是快取關閉或 TTL 已到期
節點網域解析 基礎解析 → 建立連線 核心啟動階段完成 啟動即逾時,可能是解析依賴形成循環

處理 hosts、fakeDNS 與快取的優先順序

hosts 用於在進入一般 DNS 查詢前覆蓋指定網域。適合固定內部服務位址、暫時繞過失效解析,或將一個網域對映至另一個網域。不適合維護頻繁變動的大型網站位址,因為固定 IP 可能繞過就近調度,也可能在服務端位址變更後導致連線失敗。

fakeDNS 常用於 TUN 情境。它會先向應用程式回傳合成位址,常見位址池位於 198.18.0.0/15,核心隨後根據合成位址找回原始網域並執行路由。如此可保留網域資訊,減少應用程式先在系統層完成實際解析、最後只將 IP 交給核心的情況。是否啟用應以目前 TUN 設定與核心支援為準。

快取會保存解析結果直到 TTL 到期,以減少重複查詢與頁面首次開啟的等待時間。修改 DNS 規則後若仍看到舊結果,可能不是新設定無效,而是系統快取、應用程式快取或核心快取中的任一層仍保存舊記錄。應先重新啟動核心,再清除作業系統 DNS 快取,並完全關閉後重新啟動用於測試的應用程式。

hosts 覆蓋
在一般伺服器查詢前回傳指定位址或別名。適合少量、明確且容易維護的網域對映。
fakeDNS
向應用程式回傳合成位址,並在核心中保留原始網域對映。主要用於解決 TUN 流量中的網域識別問題。
DNS 快取
依 TTL 重複使用現有結果。能降低延遲,但設定變更後,舊結果可能暫時持續出現。
{
  "dns": {
    "hosts": {
      "internal.example": "192.168.10.20",
      "alias.example": "target.example"
    },
    "disableCache": false,
    "disableFallback": false
  }
}

設定 hosts 後,應分別檢查網域解析與實際連線。解析結果正確但網頁無法開啟,可能是目標服務要求正確的 TLS 網域、反向代理入口或特定連接埠;hosts 只會改變位址選擇,不會改寫憑證驗證、HTTP Host 或伺服器端監聽設定。

結論:先保持快取啟用,排查時再暫時清除

長期關閉快取會增加查詢次數與首次開啟延遲。修改規則後依「重新啟動核心、清除系統快取、重新啟動測試應用程式」的順序處理,比持續停用快取更容易得到穩定結果。

依現象定位解析失敗與規則未命中

先將問題拆分為「沒有送出查詢」「查詢走錯出口」「回傳結果不符合預期」與「解析正確但連線失敗」四類。不要只用網頁能否開啟來判斷 DNS,因為 TLS 交握、路由規則、節點狀態與目標服務也可能產生相同現象。

系統代理已開啟,為什麼檢測仍顯示本地 DNS?

先檢查應用程式是否使用自己的安全 DNS,再查看核心記錄中是否有該測試網域。記錄完全沒有相關內容時,進入「設定」→「參數設定」確認系統代理模式;需要涵蓋更多程式時,再依目前網路環境設定 TUN 與 DNS 接管。

境外網域可以解析,但回傳位址明顯異常,該怎麼辦?

在目前的執行設定中確認該網域命中了遠端 DoH,並核對遠端 DoH 連線是否經由代理出站。接著清除系統與應用程式快取,換一個從未查詢過的網域重新測試,排除舊記錄干擾。

啟用 TUN 後,部分區域網路裝置名稱無法開啟?

將區域網路網域與私有位址規則放入直連範圍,並保留區域網路解析器。固定裝置可新增少量 hosts 對映,同時確認 geoip:private 路由沒有被遠端代理規則提前覆蓋。

遠端 DoH 一直逾時,但節點本身卻能連線?

檢查 DoH 網域的路由規則、連接埠 443 與 IPv4/IPv6 查詢策略。若記錄顯示先取得無法連線的 IPv6 位址,可依網路能力調整查詢策略,再確認代理出站能夠存取該解析器。

修改設定並重新啟動後,為什麼設定沒有進入執行設定?

確認編輯的是目前核心對應的 DNS 區域,並檢查 JSON 語法。v2rayN 產生設定時可能會合併預設與自訂內容,應以啟動後顯示的執行設定為準;欄位缺失時先修正設定層級,再重新啟動核心。

命令列測試可以提供輔助證據,但 nslookup 預設查詢系統 DNS,不一定會經過 Xray 核心。它適合檢查作業系統目前使用的解析器,不適合單獨證明遠端 DoH 路徑。驗證核心分流時,應結合命令結果、v2rayN 核心記錄與網路出口觀察。

  1. 記錄修改前的 DNS 設定、路由模式、核心類型與監聽連接埠。
  2. 每次只修改一個變數,例如先調整解析器,再調整路由規則。
  3. 重新啟動核心,並確認沒有 JSON 解析錯誤、連接埠佔用或 DNS 初始化失敗。
  4. 使用一個境內網域與一個境外網域分別測試,記錄命中的伺服器與出站標籤。
  5. 最後恢復正常的記錄層級,並儲存可正常運作的設定副本。
下載用戶端