V2Ray DNS 洩漏檢測與 v2rayN DNS 防洩漏設定教學

說明 DNS 洩漏成因與檢測方式,並逐步設定遠端 DNS、本機 DNS 分流及 FakeIP,降低網域查詢未經代理的情況。

本文重點

適合已能連線至節點,但不確定網域查詢是否經過代理的使用者。先分辨瀏覽器、系統與核心各自使用的 DNS,再透過對照測試找出查詢出口,最後設定遠端解析、本機分流及 TUN 下的 FakeIP。重點不是讓檢測頁只顯示一個位址,而是確保需要代理的網域查詢依預期路徑送出。

如何判斷 DNS 洩漏

DNS 負責將網域名稱轉換為 IP 位址。網頁連線經過代理,不代表網域解析請求也經過代理:應用程式可能先向路由器查詢位址,再將解析結果交給代理。若原本預期網域透過代理解析,這種本機查詢就是需要排查的路徑偏差。

應用程式提出網域查詢 選擇解析入口 比對 DNS 規則 選擇解析出口 建立目標連線

v2rayN 是用戶端介面,實際的轉送與解析行為取決於目前使用的核心及設定。瀏覽器的「安全 DNS」、Windows 網卡 DNS、核心內建 DNS 是不同的查詢入口。只在其中一處填入公共 DNS 位址,無法確保其他入口也以相同方式運作。

查詢入口常見路徑檢查重點
Windows 系統解析使用網卡設定的 DNS,查詢可能先經過路由器系統代理通常不會接管一般 UDP DNS
瀏覽器安全 DNS瀏覽器自有的 DoH 服務是否繞過用戶端 DNS 規則,以及連線本身是否經過代理
核心內建解析依設定使用本機或遠端解析器解析器選擇與查詢出口都必須正確
TUN 接管 DNS攔截到的 DNS 請求會進入核心確認 DNS 攔截、路由範圍與例外規則是否生效

傳統 DNS 常使用 UDP 或 TCP 的 53 連接埠;DoH 通常使用 HTTPS 的 443 連接埠;DoT 通常使用 853 連接埠。加密解決的是傳輸內容可被讀取的問題,代理處理的是流量出口路徑,兩者不能互相取代。

檢測方式:先建立對照,再查看解析器

準備一個能顯示解析器位址及所屬網路的 DNS 檢測頁面。測試期間使用同一個頁面與瀏覽器,每次只變更一項設定。檢測頁顯示的通常是遞迴解析器連線至測試網域時的出口,不一定等於電腦的公用 IP 位址,也不一定是節點出口。

  1. 記錄基準結果

    在允許短暫直接連線的測試環境中,先關閉代理,記錄檢測頁顯示的解析器位址及電信業者網路。不方便直接連線時可略過這一步,但後續判斷應以路由記錄為主,不能只憑地理位置下結論。

  2. 排除瀏覽器干擾

    在瀏覽器設定中搜尋「安全 DNS」,暫時關閉自訂安全 DNS,並記錄原本的設定。這能降低瀏覽器內建 DoH 對用戶端測試的干擾;測試完成後再依需求恢復。

  3. 測試系統代理

    在 v2rayN 系統匣選單的「系統代理」中選擇「自動設定系統代理」,保持節點與路由規則不變,再次執行檢測。記錄解析器是否有所變化,不要把「網頁能開啟」當成 DNS 已被接管的證明。

  4. 與 TUN 模式對照

    關閉其他流量接管程式,再於主介面啟用「啟用 TUN」。依系統提示完成權限設定,並確認核心正常運作。清除快取後重新測試,比較系統代理與 TUN 兩種狀態下的解析結果。

  5. 檢查記錄

    在用戶端記錄區查看測試時段的 DNS 與路由記錄。必要時可暫時提高記錄層級,確認查詢使用了哪個解析器及出口;完成後請恢復原設定,避免長期記錄瀏覽過的網域。

在 Windows PowerShell 中,可使用以下兩個指令檢查系統解析路徑。第一個指令會清除 Windows DNS 快取,第二個則會發出一般 DNS 查詢;這兩個指令不會自動使用 v2rayN 的 HTTP 或 SOCKS 代理。瀏覽器與核心也可能各自保留快取,需分別重新啟動或清除。

ipconfig /flushdns
nslookup example.com

結論:解析器所在區域不是判斷依據

若檢測結果顯示本地電信業者網路,請先確認是否為刻意直接連線的網域查詢,再檢查出口記錄。公共解析服務採分散式部署,顯示附近地區並不能單獨證明有 DNS 洩漏。

v2rayN 遠端 DNS:同時設定位址與出口

不同桌面介面與核心的 DNS 表單不盡相同。先開啟「設定」→「DNS 設定」,確認目前使用的核心及對應設定頁面。如果目前介面沒有這個選項,請先核對安裝套件的介面與設定選單,不要直接貼上其他核心使用的設定文字。

遠端 DNS 的目的,是讓需要代理的網域透過預期的解析服務查詢。以 https://1.1.1.1/dns-query 為例,這是特定的 DoH 位址,不是訂閱網址,也不是節點位址。填入這個位址後,還需確認連往該服務的連線會經由代理出口。

  1. 先備份原設定

    記下「設定」→「DNS 設定」中的原始值、目前使用的核心及路由選項。保留可還原的設定副本,不要在測試前刪除既有 DNS 規則。

  2. 設定遠端解析

    在目前核心對應的遠端 DNS 欄位中,填入支援的解析服務位址。若使用上述 DoH 位址,請確認表單接受完整的 HTTPS URL,而非僅接受 IP 位址。

  3. 確認查詢出口

    檢查 DNS 查詢的出口選項或相關路由規則,確保遠端解析連線使用代理。Xray 設定中的 https+local:// 具有本機直連的語意,不能當作「強制代理」的寫法。

  4. 重新啟動並測試

    儲存設定、重新啟動核心,再清除快取並執行檢測。若網頁反而無法開啟,請先查看 DNS 逾時及節點網域解析記錄,不要同時更換節點、DNS 與路由模式。

即使核心的 DNS 已設定正確,仍需確認應用程式是否將網域交由代理處理。部分應用程式會先在系統中解析,再提交目標 IP;此時核心 DNS 設定未必會參與這次解析。若要涵蓋這類應用程式,請繼續檢查 TUN 與 DNS 接管設定,而不是反覆更換遠端解析位址。

本機 DNS 分流:明確劃分直連與代理範圍

使用本機 DNS 不代表設定有誤。區域網路裝置、內部網域及明確設定為直連的網站,可能需要本機解析才能取得可連線的位址。關鍵在於限制規則的套用範圍,避免將需要代理的網域交給本機解析器,同時也不要將所有查詢一律強制送往遠端服務。

網域用途解析策略驗證方式
區域網路裝置與內部網域使用所在網路的 DNS,保留區域網路直連確認內部名稱是否解析為正確的私有位址
明確設定為直連的網站依網域規則使用本機 DNS確認解析與連線都依直連規則處理
明確設定為代理的網站使用遠端 DNS,並讓查詢連線經過代理同時檢查解析器選擇與代理出口記錄
節點伺服器網域使用不依賴該節點連線的引導解析重新啟動核心後仍能完成首次連線

例如,223.5.5.5 可作為特定網路環境下的公共本機解析候選位址,但它無法解析企業內部網域,也不適用於所有網路。內部名稱應優先交由所在網路提供的解析器處理;涉及內部網域時,也請遵守所在網路的使用規範。

結論:依網域用途分流,不必美化檢測結果

保留必要的本機解析,只需收緊代理網域的查詢路徑。若業務需求是讓所有查詢都經過代理,請明確停用相關的本機回退,再確認節點引導解析與區域網路存取仍能正常運作。

FakeIP 與 TUN:接管範圍比開關名稱更重要

FakeIP 會先回傳合成位址給應用程式,再由核心保存網域與位址的對應關係,後續連線則依網域處理。這有助於避免應用程式提前取得真實 IP,導致網域資訊遺失,但它不是獨立的「防洩漏開關」。如果查詢未被接管,或後續連線沒有回到核心處理,都會影響結果。

Xray 中的相關機制通常稱為 FakeDNS,其他核心的 FakeIP 設定結構則各有不同。v2rayN 的 TUN 功能所使用的核心,也不一定與一般代理連線相同,請以目前設定與執行記錄為準。不要將 Xray 的 fakedns 欄位複製到其他核心的 DNS 設定中。

常見錯誤與驗收清單

記錄訊息會因核心而異。以下列出常見錯誤片段,排查時應連同前後文一起查看,特別要分辨錯誤對象是 DNS 伺服器、節點伺服器還是目標網站。單一錯誤訊息不能證明發生 DNS 洩漏。

錯誤:lookup example.com: i/o timeout

原因:網域解析逾時,可能是解析器無法連線,也可能是查詢出口設定錯誤。

解決方式:先確認目前的解析器位址與查詢路徑,再檢查相關連線是否遭防火牆或路由攔截;不要直接停用憑證驗證。

錯誤:no such host

原因:目前的解析路徑未取得可用的網域解析結果,可能與網域拼寫錯誤、負向快取或分流規則錯誤有關。

解決方式:確認網域有效、清除快取,並比較本機與遠端解析結果;若是內部網域,優先確認是否誤送至公共 DNS。

錯誤:network is unreachable

原因:目前的網路堆疊沒有通往目標位址的可用路徑,可能與 IPv6、TUN 路由或合成位址連線有關。

解決方式:查看錯誤訊息中的目標位址,確認網卡與路由範圍;若位址屬於 FakeIP 位址池,請先清除舊的對應資料,並確認 TUN 正常運作。

設定完成後,請依下列四項進行驗收。瀏覽器檢測只涵蓋目前瀏覽器產生的測試流量,不能取代其他應用程式的檢查。v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心;移轉至 Android 時,應重新檢查各自的 DNS 與流量接管設定,不能直接套用桌面系統代理的測試結論。

下載v2rayN查看四個平台的安裝套件