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

了解 DNS 洩漏成因與檢測方式,逐步設定 v2rayN 遠端 DNS、網域策略及 TUN 模式,並附上 v2rayNG 設定檢查清單。

本文快速導覽

網頁出口 IP 已經改變,網域查詢卻仍可能經過本地網路。本文從瀏覽器、系統解析器與代理核心三條路徑切入,說明如何建立檢測基準、設定遠端 DNS、確認 TUN 接管範圍,並分辨正常的直連解析與意外洩漏。適合已能連上節點,想進一步確認 DNS 流向的桌面與 Android 使用者。

一、什麼是 DNS 洩漏:先確認哪些查詢應走代理

DNS 會將網域名稱解析為 IP 位址,但網頁連線與網域查詢不一定走同一條路徑。瀏覽器透過代理存取網站時,可能會把網域交由代理端解析;其他應用程式則可能先呼叫系統 DNS,再將取得的 IP 位址交給代理。後者即使讓網頁流量從遠端出口送出,本地網路仍可能看得到目標網域的查詢。

這裡所說的「洩漏」須依你的路由目標判斷:預期透過代理解析的網域,實際卻交由本地網路或非預期的解析器處理,才是需要修正的情況。若區域網路名稱或原本就要直連的網站由本地 DNS 解析,檢測到本地解析器不代表整體設定一定失效。

應用程式查詢 解析入口 DNS 規則 解析出站 遞迴解析器

二、DNS 洩漏檢測:用三組結果交叉比對

先記錄關閉代理時的公網出口、DNS 解析器業者及目前使用的網路,再開啟代理重複測試。可選用支援隨機測試網域與多輪查詢的 DNS 檢測網站。檢測網站通常顯示遞迴解析器的出口,不一定是電腦直接連線的 DNS 位址;公共 DNS 的任播節點與位置資料庫也會影響地區顯示,不能只看國旗下判斷。

測試狀態記錄項目主要用途
關閉代理公網出口、解析器業者、網路類型建立目前網路的本地基準
僅開啟系統代理網頁出口、瀏覽器安全 DNS 狀態、解析器變化確認瀏覽器實際採用的解析路徑
開啟 TUN解析器清單、IPv4 與 IPv6 連線、核心記錄檢查系統流量與 DNS 的接管範圍

每組至少測試兩輪;設定變更後,請清除快取並重新開啟測試頁面。Windows 可在終端機執行以下命令。這只會清除系統 DNS 快取,不會一併清除瀏覽器快取,也不會變更 DNS 伺服器設定。

ipconfig /flushdns
Get-DnsClientServerAddress

第二個命令適用於 PowerShell,可列出各網路介面的 DNS 位址,方便辨認實體網卡與虛擬網卡。但這不能直接判定是否洩漏:網卡仍列出路由器位址,不代表所有查詢都繞過 TUN。反過來說,nslookup example.com 也不會經過一般 HTTP 系統代理,只能用來觀察這個工具的查詢路徑,不能取代瀏覽器與整台裝置的測試。

判讀結果:先比對業者,再確認實際出站

若代理前後都出現同一家本地業者的解析器,先確認是否符合預期的直連規則;對於必須走代理的網域,再搭配 DNS 記錄與實體網卡流量確認,不要急著更換節點。

三、v2rayN 遠端 DNS 與網域策略設定步驟

操作前先記下 v2rayN 版本、目前使用的應用程式核心,以及 TUN 所使用的核心。不同版本的 DNS 頁面版面可能不同,以下步驟以提供「設定」→「DNS 設定」入口的介面為例;若頁面分別列出不同核心的設定,務必編輯目前實際生效的那一組。自訂完整設定也可能覆蓋圖形介面產生的內容。

  1. 記錄目前設定

    開啟「設定」→「參數設定」,記下本機監聽連接埠與相關核心設定,並備份原有的 DNS 內容。若本機監聽連接埠是 10808,應用程式就要使用這個實際連接埠;不要直接套用其他教學中的 10809。

  2. 辨別解析器用途

    前往「設定」→「DNS 設定」,區分供代理網域使用的遠端 DNS 與供直連網域使用的本地 DNS。支援 DoH 的欄位可填入 https://dns.google/dns-query 這類完整端點;只接受 IP 位址的欄位則不能填 URL。

  3. 檢查出站路徑

    檢查 DNS 設定中的出站選項,或確認產生的設定檔內路由規則,確保遠端解析請求依預期經代理送出。本地 DNS 可用於直連網域及必要的啟動解析;欄位名稱有「遠端」不代表查詢一定已經透過代理送出。

  4. 確認網域策略

    前往「設定」→「路由設定」,確認網域策略。Xray 路由中的 AsIs、IPIfNonMatch、IPOnDemand 控制路由比對時是否觸發解析,並不是 DNS 加密開關。請先確認網域規則能正確比對,再決定是否需要解析後比對 IP 規則。

  5. 套用設定並重新測試

    儲存設定後重新啟動服務或連線至節點,確認核心啟動記錄沒有設定錯誤。接著清除 DNS 快取並重做相同測試;每次只修改一項,並保留可正常運作的原始設定,以便還原。

四、TUN 防漏檢查:DNS 接管、IPv6 與瀏覽器

若需涵蓋不遵循系統代理設定的應用程式,再考慮開啟 v2rayN 主畫面的「啟用 TUN」。首次啟動可能需要系統管理員權限。啟用 TUN 不代表所有 DNS 旁路都會自動消失:部分版本會使用獨立核心處理 TUN,其 DNS 選項與一般代理模式使用的設定並不相同。

進階檢查可觀察實體網卡是否向非預期位址送出 53 連接埠查詢。請留意限定觀察時段,並區分目標網站查詢、區域網路查詢與節點啟動解析。未觀察到明文 53 流量,也不能直接證明所有 DNS 都經過代理,因為應用程式仍可能直接連線至加密 DNS 服務。

判讀結果:測試目標網域,不必追求解析器清單完全一致

保留必要的直連解析,並確認需要走代理的網域,其 DNS 與應用程式連線都符合規則。只有明確需要整台裝置都走代理時,才逐項收緊直連例外,並重新確認區域網路服務是否正常。

五、v2rayNG Android 端 DNS 檢查清單

v2rayNG 使用 Xray 核心,由 Android VPN 介面接收納入範圍的應用程式流量。v2flyNG 使用 V2Fly 核心,兩者的 DNS 與路由欄位不能一概照搬。以下檢查項目適用於 v2rayNG;不同版本的開關名稱與排列可能有所調整,請以目前頁面說明為準。

若只有某個應用程式使用不同解析器,先檢查該應用程式的分應用設定與自建 DNS;若所有應用程式都異常,再檢查 VPN 連線、系統私人 DNS 與目前網路。這樣能將問題縮小至特定層級,不必反覆清除訂閱或更換協定。

六、DNS 設定後無法連線:依錯誤訊息縮小範圍

遠端 DNS 設定錯誤時,常見情況是節點能選取,網頁卻無法開啟。請先還原剛才修改的設定,確認服務能正常啟動,再根據記錄區分解析失敗、連線逾時與設定錯誤。以下錯誤訊息可能出現在不同的呼叫流程中,閱讀時須一併確認前後的目標位址、出站標記與時間。

錯誤:no such host

原因與處理方式:通常表示相關名稱解析未取得有效結果。先確認錯誤中的網域是節點位址、DoH 端點還是網站,再檢查拼字、解析器是否可連線及啟動解析路徑;不要把所有這類錯誤都歸因於節點失效。

錯誤:context deadline exceeded

原因與處理方式:操作未能在時限內完成,可能與 DNS 請求或後續連線有關。若上下文顯示 DNS 交換逾時,請檢查解析器的實際出站路徑與網路連線;若錯誤發生在連線至節點時,則應繼續排查節點連線。

錯誤:network is unreachable

原因與處理方式:所選位址沒有可用的網路路徑,可能與 IPv6、TUN 路由或介面變更有關。請檢查記錄中的目標位址類型,重新建立連線並確認路由;不要隨意修改 DNS 來掩蓋介面問題。

完成修正後,請使用相同瀏覽器、相同網路與相同代理模式重新測試,並保存修改前後的記錄。DNS 洩漏檢測重點是解析路徑是否符合預期,而不是檢測頁面是否只顯示一台伺服器。之後更換核心、更新用戶端或調整分流規則時,也應重新建立基準並比對結果。

下載 V2Ray 用戶端