網頁出口 IP 已經改變,網域查詢卻仍可能經過本地網路。本文從瀏覽器、系統解析器與代理核心三條路徑切入,說明如何建立檢測基準、設定遠端 DNS、確認 TUN 接管範圍,並分辨正常的直連解析與意外洩漏。適合已能連上節點,想進一步確認 DNS 流向的桌面與 Android 使用者。
一、什麼是 DNS 洩漏:先確認哪些查詢應走代理
DNS 會將網域名稱解析為 IP 位址,但網頁連線與網域查詢不一定走同一條路徑。瀏覽器透過代理存取網站時,可能會把網域交由代理端解析;其他應用程式則可能先呼叫系統 DNS,再將取得的 IP 位址交給代理。後者即使讓網頁流量從遠端出口送出,本地網路仍可能看得到目標網域的查詢。
這裡所說的「洩漏」須依你的路由目標判斷:預期透過代理解析的網域,實際卻交由本地網路或非預期的解析器處理,才是需要修正的情況。若區域網路名稱或原本就要直連的網站由本地 DNS 解析,檢測到本地解析器不代表整體設定一定失效。
- 系統代理:只會影響遵循系統代理設定的程式,不會自動接管所有 UDP 53 查詢。
- TUN 模式:透過虛擬網卡接收流量;是否接管 DNS,還取決於 DNS 劫持、路由、介面排除設定及 IPv6 設定。
- 瀏覽器安全 DNS:可能透過 HTTPS 自行解析並略過系統 DNS,但仍須另外確認 HTTPS 連線是否經過代理。
- 分流規則:決定應用程式連線與 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 設定」入口的介面為例;若頁面分別列出不同核心的設定,務必編輯目前實際生效的那一組。自訂完整設定也可能覆蓋圖形介面產生的內容。
-
記錄目前設定
開啟「設定」→「參數設定」,記下本機監聽連接埠與相關核心設定,並備份原有的 DNS 內容。若本機監聽連接埠是
10808,應用程式就要使用這個實際連接埠;不要直接套用其他教學中的10809。 -
辨別解析器用途
前往「設定」→「DNS 設定」,區分供代理網域使用的遠端 DNS 與供直連網域使用的本地 DNS。支援 DoH 的欄位可填入
https://dns.google/dns-query這類完整端點;只接受 IP 位址的欄位則不能填 URL。 -
檢查出站路徑
檢查 DNS 設定中的出站選項,或確認產生的設定檔內路由規則,確保遠端解析請求依預期經代理送出。本地 DNS 可用於直連網域及必要的啟動解析;欄位名稱有「遠端」不代表查詢一定已經透過代理送出。
-
確認網域策略
前往「設定」→「路由設定」,確認網域策略。Xray 路由中的
AsIs、IPIfNonMatch、IPOnDemand控制路由比對時是否觸發解析,並不是 DNS 加密開關。請先確認網域規則能正確比對,再決定是否需要解析後比對 IP 規則。 -
套用設定並重新測試
儲存設定後重新啟動服務或連線至節點,確認核心啟動記錄沒有設定錯誤。接著清除 DNS 快取並重做相同測試;每次只修改一項,並保留可正常運作的原始設定,以便還原。
四、TUN 防漏檢查:DNS 接管、IPv6 與瀏覽器
若需涵蓋不遵循系統代理設定的應用程式,再考慮開啟 v2rayN 主畫面的「啟用 TUN」。首次啟動可能需要系統管理員權限。啟用 TUN 不代表所有 DNS 旁路都會自動消失:部分版本會使用獨立核心處理 TUN,其 DNS 選項與一般代理模式使用的設定並不相同。
- 確認虛擬網卡已啟動:查看記錄確認 TUN 介面是否成功建立,不能只看開關是否已開啟。若驅動程式或路由建立失敗,應先排除啟動問題。
- 確認 DNS 接管規則:檢查是否攔截發往 UDP/TCP 53 的查詢。只接管傳統 DNS 連接埠,不會自動辨識所有使用 443 連接埠的應用程式自建 DoH。
- 檢查 IPv6:支援 IPv6 的網路可能同時產生 AAAA 查詢與 IPv6 連線。請確認 IPv6 路由是否已被接管;暫時停用 IPv6 可協助定位問題,但不適合作為所有網路的長期解決方案。
- 固定瀏覽器設定:記錄瀏覽器「設定」→「隱私權與安全性」中的安全 DNS 選項;實際位置依瀏覽器而異。測試時先固定使用一種解析方式,完成後再恢復個人偏好並重新測試。
- 檢查其他虛擬網卡:其他 VPN、虛擬機器及企業網路工具可能會變更 DNS、路由優先順序或介面指標。排查時請逐一停用,避免同時變更多條路徑。
進階檢查可觀察實體網卡是否向非預期位址送出 53 連接埠查詢。請留意限定觀察時段,並區分目標網站查詢、區域網路查詢與節點啟動解析。未觀察到明文 53 流量,也不能直接證明所有 DNS 都經過代理,因為應用程式仍可能直接連線至加密 DNS 服務。
判讀結果:測試目標網域,不必追求解析器清單完全一致
保留必要的直連解析,並確認需要走代理的網域,其 DNS 與應用程式連線都符合規則。只有明確需要整台裝置都走代理時,才逐項收緊直連例外,並重新確認區域網路服務是否正常。
五、v2rayNG Android 端 DNS 檢查清單
v2rayNG 使用 Xray 核心,由 Android VPN 介面接收納入範圍的應用程式流量。v2flyNG 使用 V2Fly 核心,兩者的 DNS 與路由欄位不能一概照搬。以下檢查項目適用於 v2rayNG;不同版本的開關名稱與排列可能有所調整,請以目前頁面說明為準。
- 確認連線模式:在 v2rayNG「設定」中確認是否使用 VPN 模式,並確認系統顯示相應的 VPN 連線。若只使用本機代理模式,其他應用程式必須自行設定代理。
- 檢查 DNS 選項:在「設定」中確認「遠端 DNS」、「國內 DNS」及「本地 DNS」相關選項;部分選項只會在特定模式下生效。先記下原始值,每次修改一組,重新連線服務後再查看記錄。
- 檢查個別應用程式代理:前往「設定」→「分應用代理」,確認測試用瀏覽器已納入 VPN 接管範圍。啟用略過所選應用程式時,清單的作用與「僅代理所選應用程式」相反,不能只看應用程式是否勾選。
- 檢查系統私人 DNS:在 Android 系統設定中搜尋「私人 DNS」,記錄目前是自動、關閉,還是指定服務供應商。它與用戶端 DNS 接管的互動方式會受系統版本與設定影響,應比較變更前後結果,不要假設一定會被覆蓋。
- 分別測試不同網路:在 Wi-Fi 與行動網路上各測試一次。切換網路後重新連線用戶端,確認解析器是否改變,並留意 IPv6 與瀏覽器安全 DNS。
若只有某個應用程式使用不同解析器,先檢查該應用程式的分應用設定與自建 DNS;若所有應用程式都異常,再檢查 VPN 連線、系統私人 DNS 與目前網路。這樣能將問題縮小至特定層級,不必反覆清除訂閱或更換協定。
六、DNS 設定後無法連線:依錯誤訊息縮小範圍
遠端 DNS 設定錯誤時,常見情況是節點能選取,網頁卻無法開啟。請先還原剛才修改的設定,確認服務能正常啟動,再根據記錄區分解析失敗、連線逾時與設定錯誤。以下錯誤訊息可能出現在不同的呼叫流程中,閱讀時須一併確認前後的目標位址、出站標記與時間。
錯誤:no such host
原因與處理方式:通常表示相關名稱解析未取得有效結果。先確認錯誤中的網域是節點位址、DoH 端點還是網站,再檢查拼字、解析器是否可連線及啟動解析路徑;不要把所有這類錯誤都歸因於節點失效。
錯誤:context deadline exceeded
原因與處理方式:操作未能在時限內完成,可能與 DNS 請求或後續連線有關。若上下文顯示 DNS 交換逾時,請檢查解析器的實際出站路徑與網路連線;若錯誤發生在連線至節點時,則應繼續排查節點連線。
錯誤:network is unreachable
原因與處理方式:所選位址沒有可用的網路路徑,可能與 IPv6、TUN 路由或介面變更有關。請檢查記錄中的目標位址類型,重新建立連線並確認路由;不要隨意修改 DNS 來掩蓋介面問題。
完成修正後,請使用相同瀏覽器、相同網路與相同代理模式重新測試,並保存修改前後的記錄。DNS 洩漏檢測重點是解析路徑是否符合預期,而不是檢測頁面是否只顯示一台伺服器。之後更換核心、更新用戶端或調整分流規則時,也應重新建立基準並比對結果。