適合遇到「網頁可以開啟,但檢測結果仍顯示本地電信業者 DNS」的桌面使用者。先釐清網頁流量與網域解析的路徑,再建立關閉代理時的基準,接著依序檢查瀏覽器安全 DNS、v2rayN 的遠端與直連解析,以及 TUN 接管範圍。最後透過重複測試和記錄確認結果,不要只憑地區標籤判定是否洩漏。
什麼是 DNS 洩漏:網頁走代理,DNS 查詢未必也走代理
連線至網域前,應用程式通常需要先取得對應的 IP 位址。DNS 洩漏是指原本預期透過指定代理路徑處理的網域查詢,卻交由預期之外的解析器處理,例如本地網路電信業者的 DNS。網頁出口 IP 已變更,不代表 DNS 查詢也走了相同路徑。
v2rayN 是用來管理用戶端的介面,實際連線與解析方式仍取決於所選核心、產生的設定檔及流量入口。設定系統代理,只會影響遵循系統代理設定的應用程式。若某個程式自行傳送 UDP DNS 查詢,或瀏覽器啟用了獨立的安全 DNS,就可能形成另一條解析路徑。
連接埠只能協助辨識流量,不能單憑連接埠判定安全性。DoH 是透過 HTTPS 傳送 DNS 查詢;若連線本身採直連,解析服務仍可能不經代理。反過來說,傳統 DNS 若透過代理通道傳送,也不能只憑「53 連接埠」就判定發生洩漏。
DNS 洩漏檢測:先記錄基準,再比對代理結果
檢測頁面通常會讓瀏覽器查詢一批隨機子網域,再依據權威 DNS 收到的查詢,顯示遞迴解析器的出口。結果反映的是這次瀏覽器測試觸發的解析流程,並非電腦上所有應用程式的流量稽核。可在網址列輸入 dnsleaktest.com,比對標準測試與延伸測試的結果。
-
記錄基準
在允許直連測試的網路環境中,先關閉 v2rayN 的系統代理與 TUN。記錄網頁出口 IP、檢測到的解析器 IP 和電信業者名稱。測試網域會產生實際網路請求;有保密需求的環境,請勿任意關閉防護。
-
固定瀏覽器設定
使用相同的瀏覽器與設定進行測試。以 Edge 為例,前往「設定」→「隱私權、搜尋與服務」→「安全性」,檢查「使用安全 DNS」選項;不同版本的文字可能略有差異,可在設定中搜尋「安全 DNS」。記錄原有設定,測試時先關閉瀏覽器獨立解析。
-
啟用代理
在 v2rayN 主視窗的「系統代理」選單中選擇「自動設定系統代理」,並確認目前節點可用。先只啟用系統代理,不要同時切換 TUN、節點和路由範本,以免無法判斷是哪項變更生效。
-
重複檢測
重新開啟檢測頁面,分別執行標準測試與延伸測試。每種狀態各測 2 次,記錄時間、出口 IP、解析器及使用的路由模式。頁面未顯示某個解析器,不代表其他應用程式一定不會使用它。
-
比對解析路徑
若啟用代理後仍出現基準測試中的電信業者解析器,請繼續檢查瀏覽器與系統 DNS。若只出現公共 DNS 服務,還需確認該服務是否符合預期,以及連往該服務的連線是否確實經過代理。
結論:比對解析器身分,不要只看國家或地區
解析器採用任播、轉送或異地出口時,顯示的地區可能與節點所在地不同。請先比對解析器 IP 與服務商,再搭配路由和記錄判斷;不要為了讓國家名稱一致而反覆更換 DNS。
遠端 DNS 與直連 DNS:用途各有不同
本文以 v2rayN 7.x 桌面介面的設定方式為例。常見路徑為「設定」→「DNS 設定」;舊版或不同介面版本可能將相關項目放在「設定」→「參數設定」。請先確認本機選單與目前使用的核心;若找不到同名欄位,請勿直接貼上其他核心的設定。
| 項目 | 主要用途 | 需確認的條件 |
|---|---|---|
| 遠端 DNS | 解析預期透過代理連線的網域 | 解析查詢本身的出口路徑符合規則 |
| 直連 DNS | 解析直連網站及必要的節點網域 | 避免應走代理的網域因規則過於寬鬆而使用直連解析 |
| 系統 DNS | 供作業系統及未由代理接管的程式使用 | 系統代理通常不會接管所有系統 DNS 查詢 |
| 瀏覽器安全 DNS | 瀏覽器自行透過 DoH 等方式解析 | 瀏覽器政策及其連線路徑可能繞過用戶端的 DNS 設定 |
遠端解析可使用設定介面支援的 DoH 位址,例如 https://dns.google/dns-query;直連解析則可依網路狀況選擇可連線的解析器,例如 223.5.5.5。以上僅為服務位址範例,並非適用所有網路的固定答案。填入位址後,還要確認目前核心支援該格式,以及查詢會透過哪個出口傳送。
- 備份原有設定。記下目前的遠端 DNS、直連 DNS、路由範本與核心類型;自訂設定請先另存副本,方便逐項還原。
- 設定遠端解析。在「設定」→「DNS 設定」中,調整目前核心對應的遠端 DNS 項目。若介面提供解析流量的出口選擇,請確認已選取代理出口;若沒有此選項,則應檢查實際產生的設定檔與相關路由規則。
- 保留必要的直連解析。直連網域使用直連 DNS。若代理伺服器以網域名稱設定,也需要一條不依賴該代理本身的引導解析路徑,否則可能形成「必須先連上代理才能解析代理位址」的循環依賴。
- 套用設定並重新測試。儲存後確認核心已成功重新載入;若未自動重新載入,請停止連線後重新啟動。回到同一個檢測頁面重測,並確認原本應直連的網站仍可正常使用。
TUN 與 FakeDNS:分清流量接管範圍與位址映射
系統代理模式適用於瀏覽器等遵循代理設定的程式,但不會自動涵蓋所有應用程式。TUN 透過虛擬網卡接收符合路由規則的 IP 流量,適合進一步處理未使用系統代理的程式。能否接管 DNS,還取決於 DNS 劫持規則、系統路由、IPv6 及其他網路軟體,不能只看 TUN 開關是否已啟用。
FakeDNS 則是另一種機制:核心會為網域回傳位址池中的合成 IP,並在後續連線時將該位址映射回網域,方便依網域分流。Xray 常見的 IPv4 FakeDNS 位址池為 198.18.0.0/15。合成 IP 本身不具加密功能,也不代表解析已自動經由遠端代理。
- 先確認支援條件:在 v2rayN 中檢查所選核心與目前設定模式是否支援 FakeDNS。不同核心的欄位與實作方式各異,請勿將 Xray 的
fakedns設定原封不動套用到其他核心。 - 確保 DNS 與連線都由同一機制接管:取得合成位址的應用程式,其後續連線也必須回到同一套映射機制。若只變更 DNS,卻未接管後續連線,可能會出現網域解析成功、網頁卻無法開啟的情況。
- 檢查 IPv6:只設定 IPv4 DNS 或 IPv4 路由,不代表 IPv6 路徑也已涵蓋。應分別檢查 AAAA 查詢與 IPv6 連線,不要將停用 IPv6 當成通用解決方法。
- 停用後清除快取:關閉 FakeDNS 或 TUN 後,可在 Windows 終端機執行
ipconfig /flushdns,並關閉後重新開啟瀏覽器。瀏覽器或應用程式本身的快取,不一定會隨系統快取一併清除。
結論:先確認一般 DNS 正常,再測試 FakeDNS
先使用一般 DNS 確認「節點可用、DNS 可連線、路由正確」整個流程正常,再單獨啟用 FakeDNS。若只有特定程式異常,優先確認該程式是否同時由 DNS 與連線接管,不要立刻更換整套節點。
DNS 逾時與連線失敗:依錯誤訊息定位問題
判讀錯誤時,應一併查看前後記錄。不同核心版本的前綴、網域和位址可能有所差異,以下列出的是常見錯誤片段,並非完整記錄。短時間內同時變更節點、DNS、路由和瀏覽器設定,會讓問題原因難以判斷。
錯誤:lookup example.com: i/o timeout
原因與處理方式:網域查詢逾時,可能是解析器無法連線、DNS 出口選擇錯誤或網路封包遺失。先確認解析器位址與路由,只變更一項解析設定,重新啟動連線後再測試。
錯誤:no such host
原因與處理方式:查詢未取得可用的主機記錄,可能與網域拼寫、負向快取或解析器回應有關。先確認記錄中的實際網域,判斷它是節點位址還是目標網站,再清除快取,並透過另一條可信的解析路徑交叉比對。
錯誤:connect: connection refused
原因與處理方式:目標連接埠拒絕連線,並不代表發生 DNS 洩漏。若此錯誤出現在本機 SOCKS 測試,請先確認 v2rayN 正在執行,且實際監聽連接埠與命令中的設定一致。
以下命令用於區分系統解析與 SOCKS 代理路徑。範例假設本機 SOCKS 監聽位址為 127.0.0.1:10808;請先從本機設定或啟動記錄確認實際連接埠。監聽位址應限制在本機;排查 DNS 不需要將代理連接埠開放給整個區域網路。
# 查看系統 DNS 設定
ipconfig /all
# 查詢系統預設解析器;此命令不會自動使用系統 HTTP 代理
nslookup example.com
# 透過 SOCKS 傳送目標主機名稱,避免 curl 先在本機解析目標網域
curl.exe --socks5-hostname 127.0.0.1:10808 --connect-timeout 10 -I https://example.com/
# 修改解析設定後清除 Windows DNS 快取
ipconfig /flushdns
--socks5-hostname 會將目標主機名稱交由 SOCKS 代理端處理,但代理端最後如何解析,仍取決於核心設定。命令成功只能表示這條請求路徑可運作,不能證明瀏覽器或其他程式沒有繞過代理自行解析。也不要將 nslookup 顯示的本機 DNS 位址,直接視為瀏覽器 DNS 洩漏的證據。
修復驗收:一併記錄測試結果與使用情境
DNS 洩漏修復的目標,不是讓「檢測頁面只剩一筆結果」,而是確保預期透過代理處理的查詢與連線都走正確路徑,同時保留必要的直連服務。延伸測試可能會顯示同一解析服務的多個出口位址;數量變化本身不代表故障。
- 重新測試瀏覽器:在已記錄的安全 DNS 設定下執行兩輪檢測,確認沒有意外使用基準測試中的電信業者解析器。
- 重新測試應用程式:另外選擇一個日常使用、但不一定遵循系統代理設定的程式進行驗證。瀏覽器測試通過,不代表該程式也已成功由代理接管。
- 重新測試分流:分別連線至預期直連與預期走代理的網站,觀察記錄中的出口選擇;若需暫時提高記錄層級,排查後請恢復原設定,避免長期記錄過多瀏覽細節。
- 更換網路後重新測試:從家用網路切換至手機熱點後再測一次。新網路的 DNS、IPv6 與路由可能有所不同,讓原本未暴露的設定邊界再次浮現。
- 保存方便還原的記錄:記錄 v2rayN 版本、核心版本、代理模式、DNS 服務位址與檢測時間。分享記錄前,請移除訂閱連結、認證資訊及不必要的瀏覽網域。
如果網頁一直正常,只是檢測頁面顯示的地區與節點不同,請先查明解析器身分與轉送關係;如果更換 DNS 後所有節點都無法連線,先還原原有設定,再檢查節點網域的引導解析。依照「瀏覽器、DNS 出口、系統接管」的順序逐層排查,通常比同時啟用所有功能更容易找出原因。