本文重點

本文適合已能在 v2rayN 連線至節點,但遇到網域解析異常或分流結果不如預期的讀者。先確認請求是否進入核心,再分辨 DNS 伺服器選擇與流量路由;最後透過瀏覽器、終端機及核心記錄逐一驗證,不要只因網頁無法開啟就認定是 DNS 問題。

先釐清:DNS 分流不等於流量分流

造訪網域時,DNS 解析負責取得 IP 位址,路由則決定連線從哪個出口送出,兩者是不同的判斷。將中國大陸網域交給本機 DNS、其他網域交給遠端 DNS,只是指定由誰處理查詢;若路由規則仍將連線送往直連出口,使用遠端 DNS 並不會讓連線自動改走代理。

也要先確認 DNS 查詢是否送達核心。只開啟系統代理時,瀏覽器可能透過作業系統解析網域,也可能自行發出加密 DNS 查詢;終端機程式的行為則取決於各自的代理設定。V2Ray 或 Xray 的內建 DNS 設定,只能直接控制交由核心處理的解析請求。若應用程式已在本機將網域解析成 IP,再把 IP 交給代理,核心可能看不到原始網域。

應用程式發出請求確認網域是否可見比對 DNS 規則選擇解析器路由連線

排查時依序檢查:應用程式送出的是網域還是 IP、DNS 選用了哪台伺服器,最後確認連線符合哪條路由規則。不要因為「節點已連線」就認定 DNS 分流正常;節點狀態只能表示連線已建立,無法說明瀏覽器採用哪種解析路徑。

為中國大陸網域與其他網域指定解析器

內建 DNS 常見的設定方式是:符合中國大陸網域規則的查詢使用本機解析,其餘查詢使用遠端解析。網域規則取決於核心可用的規則資料;不同核心與規則資料版本的涵蓋範圍可能不同。未符合規則的網域會使用預設解析器,因此應先確認「預設交給誰處理」,比不斷新增零碎規則更重要。

中國大陸網域

比對依據
geosite:cn 等網域規則
解析器
系統本機 DNS
範例位址
192.0.2.53

192.0.2.53 是文件中的範例位址,並非可直接使用的 DNS 伺服器;實際設定時,請填入目前網路可用的解析器。

其他網域

比對依據
未符合上述規則
解析器
遠端 DoH
範例端點
dns.example.net/dns-query

範例網域僅用來示範 URL 格式;測試前請替換為自己能連線且支援 DoH 的實際服務。

此處的「境內外」是網域規則的分類方式,不代表每次都會偵測伺服器所在地。網域可能使用跨地區的服務設施,分類也可能隨規則資料更新而變動。工作網站或內部網域建議優先新增明確規則,不要只依網域後綴判斷應採用哪條網路路徑。

在 v2rayN 檢查設定與配置格式

先在 v2rayN 的「設定」→「參數設定」確認目前使用的核心與代理模式,再開啟用戶端提供的 DNS 設定頁面。不同版本的設定頁面可能略有差異,請以目前介面顯示的選項為準。修改前請保留原始配置;若訂閱、預設配置或自訂範本會重新產生核心配置,重新啟動後也要確認修改仍然生效。

以下是用來說明欄位關係的 Xray DNS 範例片段,並非可直接執行的完整配置。符合 geosite:cn 的網域會交由 localhost 所代表的系統本機解析,其餘查詢則使用後續的 DoH 項目。實際套用前,請確認核心支援相關欄位、規則資料可用,並將範例 DoH 位址替換為有效端點。

{
  "dns": {
    "servers": [
      {
        "address": "localhost",
        "domains": ["geosite:cn"]
      },
      "https://dns.example.net/dns-query"
    ],
    "queryStrategy": "UseIP"
  }
}

queryStrategy 用來指定查詢的 IP 位址族策略,不負責選擇直連或代理。若某個網站只有 IPv6 記錄,而目前網路沒有可用的 IPv6,排查時可先確認位址族選擇,避免將位址族問題誤判為遠端 DNS 故障。上述 dns.example.net 是範例網域,對應端點並未提供實際解析服務。

設定後第一步:檢查產生的配置

儲存並重新啟動核心後,檢查用戶端實際產生的核心配置與記錄。若產生的配置中沒有剛設定的 DNS 伺服器,請先處理配置遭覆蓋的問題,再測試網頁連線。

DoH 與 fakedns:分別解決什麼問題

DoH 透過 HTTPS 傳送 DNS 查詢,可降低查詢在應用程式與指定解析器之間遭一般明文 DNS 路徑竄改的風險,但無法取代路由規則,也不保證解析器回傳的每個位址都適合目前的連線出口。遠端 DoH 本身也需要建立連線:若端點使用網域名稱,首次連線時可能需要先解析該端點。請查看記錄,確認實際採用的連線出口。

fakedns 是另一種機制:核心先回傳一個用於對應的虛擬位址給應用程式,等應用程式連線至該位址時,再找回原始網域進行處理。這適用於需要保留網域資訊的特定透明代理情境;它不是公共 DNS 伺服器,也不是將所有實際查詢「加密一次」的開關。是否啟用,應依 TUN、入站接管與嗅探設定一併判斷。

53
傳統 DNS 常用連接埠
443
DoH 常用 HTTPS 連接埠
2 層
分別檢查 DNS 與路由

這兩個連接埠號碼只能作為辨識請求類型的線索,不能據此推斷所有查詢都經過核心。例如,瀏覽器若啟用了自己的 DoH,請求可能看起來就像一般 HTTPS 連線;只確認是否有 53 埠流量,無法判斷瀏覽器最後使用哪台解析器。

結論:先選擇接管方式,再考慮 fakedns

若只使用一般系統代理,且網域已能交由核心處理,請先驗證 DNS 伺服器選擇與路由規則;只有確認透明代理情境中原始網域遺失,才進一步評估 fakedns。

讓解析結果與路由規則相互配合

路由中的網域規則與 IP 規則負責不同任務:前者可直接依網域決定連線出口,後者則需要可用的目標 IP。以 Xray 的 domainStrategy 為例,IPIfNonMatch 會在網域規則未符合時嘗試解析,以便繼續比對 IP 規則;IPOnDemand 則會在路由判斷需要 IP 時進行解析。請勿將路由的 domainStrategy 與 DNS 的 queryStrategy 混為一談。

實用的驗證方式是先挑選兩個能自行控制存取結果的網域:一個明確加入本機解析規則,另一個交由預設遠端解析器處理。分別記錄 DNS 查詢、路由比對與最終出口,不要只比較網頁載入速度。若 DNS 選擇正確但連線仍走錯路徑,應調整路由規則;若路由正確但解析位址異常,則先檢查 DNS 規則是否符合及上游解析器。

依現象排查:從用戶端到核心記錄

測試前先記下 v2rayN 目前的本機代理連接埠,並確認系統代理指向相同連接埠。不同裝置與配置使用的連接埠可能不同,不要將範例連接埠寫入長期配置。使用瀏覽器測試時,暫時檢查瀏覽器是否有獨立 DNS 設定或擴充功能介入;使用終端機測試時,確認命令是否明確使用代理,避免以直連結果驗證核心 DNS。

  1. 先確認請求入口。分別測試瀏覽器與終端機,並在 v2rayN 記錄中尋找相同時間的連線紀錄。若找不到紀錄,請先檢查系統代理、應用程式代理設定或 TUN 接管狀態。
  2. 再確認網域是否保留。若記錄中只顯示目標 IP,請檢查應用程式是否已預先解析;若顯示網域,則分別確認 DNS 與路由規則是否符合。
  3. 最後比較結果。多次測試同一網域時,記錄測試時間、使用的解析器、回傳的位址族與連線出口。更換網路後請重新測試,避免沿用上一個網路環境的快取結果。

遇到「瀏覽器可以開啟,終端機卻不行」時,先別急著切換 DoH。終端機程式可能未讀取系統代理,也可能只讀取自己的代理環境變數。遇到「中國大陸網站繞到遠端」時,先檢查網域分類與路由比對;若「只有部分網域失敗」,再檢查 DNS 回傳值、IPv4/IPv6 是否可用,以及該網域是否需要特殊規則。

修改 DNS 後,記錄中卻沒有查詢紀錄?

先確認應用程式的請求是否進入核心。檢查 v2rayN 的系統代理或 TUN 狀態,再確認瀏覽器是否啟用了獨立的加密 DNS;只修改核心配置並不會接管所有應用程式的解析。

本機解析規則已符合,連線卻仍走代理?

分別查看 DNS 與路由的比對結果。解析器選擇不會決定連線出口;若需要直連,請在路由設定中新增或檢查該網域的對應規則。

更換 DoH 端點後,所有網域都無法解析?

先確認端點 URL 指向實際可用的 DoH 服務,再查看核心記錄中該端點的連線錯誤。若端點使用網域名稱,也請檢查首次解析方式與連線出口。

啟用 fakedns 後看到虛擬 IP,代表解析出錯嗎?

虛擬位址可能正是 fakedns 預期回傳的結果。請重點檢查後續連線能否對應回原始網域,以及目前的入站與路由是否符合該模式;不要將虛擬位址視為網站的實際伺服器位址。