← 返回部落格

DNS 外洩怎樣檢測?4 步排查代理 DNS 問題

核心結論:IP 檢測通過,只代表存取出口換了,不代表 DNS 查詢也走同一條路。代理和 DNS 負責兩段不同的流程:代理決定連線從哪個網絡出口發出。DNS 則把域名解析成 IP。解析查詢走了非預期的路徑,就是 DNS 外洩。檢測只需四步。讀懂結果比跑測試更重要。

配置好代理之後,開啟 IP 檢測網站,頁面顯示的是代理 IP。於是你判定網絡環境沒有問題,便放心繼續日常操作。帳戶照常登入,網頁照常瀏覽。幾個環境之間來回切換也暢順無礙,由家用寬頻換到流動網絡再換回來,檢測結果同樣正常。你漸漸把這件事拋諸腦後。直到幾日之後排查帳戶異常,逐項翻查網絡紀錄才發現,DNS 查詢一直走的是本地網絡。從頭到尾都沒有經過代理。之前的安心原來一直建立在誤判之上。

問題未必出在代理本身,DNS 查詢可能從未走上代理這條路。

開了代理,為何還要檢查 DNS

代理和 DNS 是兩段流程,代理開啟不等於 DNS 也被接管。代理決定連線經由哪個網絡出口發送,DNS 則負責解析域名。兩者涉及不同的網絡環節,代理正常運作,不代表 DNS 查詢一定符合預期。

具體到網絡請求:存取網站時,客戶端要麼先透過 DNS 查詢取得目標域名的 IP,要麼把域名交由代理端處理。採用哪種方式取決於代理協定、客戶端實作和瀏覽器的 DNS 設定。開啟代理不自動代表所有解析查詢都沿預期路徑發送。判斷要靠實際檢測,不能只憑代理顯示已連線就放心。

還要分清一件事的邊界:DNS 外洩不等於真實公網 IP 暴露。外洩的是域名查詢的路徑,可能令解析服務商或本地網絡看到你查過哪些域名。真實 IP 是否暴露,要靠獨立的 IP 檢測判斷。新加坡網絡安全局在 VPN 安全建議中,把 DNS 外洩測試和 IP 地址外洩測試列為兩項獨立檢查,理由正是它們驗證的並非同一個問題(見 CSA 的 VPN 安全指引)。

DNS 外洩通常是怎樣發生的

三種來源最常見,都和設定有關,和代理壞沒壞無關。逐個看。

代理只處理部分流量

有些代理設定只接管瀏覽器的網頁請求,解析仍由本地系統完成,是否如此取決於代理協定和客戶端的處理方式。網頁請求走了代理、解析查詢走了本地,檢測結果便會出現本地網絡的解析器。

瀏覽器啟用了獨立的安全 DNS

Chrome 和 Firefox 都支援 DNS over HTTPS(DoH),啟用後解析查詢經加密的 HTTPS 連線發送至指定解析服務。可減少本地網絡直接觀察查詢的機會。但加密不代表查詢一定經過代理,也不代表所選解析服務符合目前環境的預期。Firefox 的這項功能可以單獨開關,見 Mozilla 官方文件。

系統、瀏覽器與代理客戶端各用一套

最隱蔽的一種。系統用一個解析器。瀏覽器開了 DoH 又換一個,代理客戶端再配一個,疊在一起解析路徑就成了黑盒。只看代理軟件顯示「已連線」判斷不了。要看實際運行中的瀏覽器走了哪條路。

解析路徑落在本地 ISP 時,查詢就經過 ISP 的解析服務,ISP 代理的原理與適用場景可以對照。

DNS 外洩怎樣檢測?四個步驟

檢測本身不複雜,關鍵是測之前有預期、測之後有對照。四步做完,結論才站得住。

第 1 步:先記下預期結果。測之前寫清楚三件事:目前代理的出口在哪個地區、域名解析應由誰來接、瀏覽器有沒有開 DoH。沒有預期。看到結果也無法判斷。

第 2 步:在代理開啟狀態下跑測試。用支援 DNS 外洩檢測的網站,例如 dnsleaktest.com,點擴展測試(Extended test),讓頁面多顯示幾個解析器;也可以用 BrowserLeaks 的 DNS 檢測頁查看解析器所屬的組織。記下解析器名稱、所屬組織和地區。

第 3 步:對照預期判斷。檢查結果裏的解析器是否符合目前系統、瀏覽器和代理的設定。解析器屬於預期使用的 DNS 服務。也沒有非預期的本地解析路徑,可以初步認為本次測試符合預期。出現本地 ISP 或陌生解析服務,先確認它是否真屬於非預期設定。再逐項檢查代理客戶端的 DNS 處理、瀏覽器安全 DNS 和系統網絡設定。不要立刻斷定代理失效。單次檢測只反映當時的測試條件,不能保證所有請求都沒有問題。

第 4 步:改一項設定,重測一次。要調整就一次只動一處:代理客戶端的 DNS 處理、瀏覽器 DoH 開關、系統網絡設定。改完重測對比。一次改多項,結果分不清是誰起的作用。

檢測結果怎樣看

同一份結果,解讀對了是線索,解讀錯了是誤判。五種常見結果對應的處理:

檢測結果怎樣理解下一步
出現本地 ISP 的解析器可能與預期路徑不符,不能單憑 ISP 名稱定性核對系統 DNS、代理設定及解析器所屬
出現第三方公共解析服務可能是正常設定,也可能不是預期服務檢查瀏覽器安全 DNS 和系統解析設定
出現多個解析器可能涉及多個 DNS 服務、路徑或檢測機制逐個核對名稱、組織及設定來源
開代理前後結果相同不能單憑結果相同就判定代理無效更換檢測工具複核,並檢查 DNS 設定
沒有返回解析器可能是超時、查詢受阻或工具無法完成確認網絡可用後重測,必要時換工具

公共解析服務多用 Anycast,顯示位置未必等於實際位置。

五類 DNS 檢測結果與對應處理動作示意圖

DNS 外洩、WebRTC 外洩與瀏覽器指紋有何分別

四項檢查針對四種不同的資訊,通過一項不代表其他項也通過。放在一起看邊界最清楚:

檢查項目檢查甚麼和代理的關係
DNS 外洩域名查詢實際經過哪些解析器代理不一定會接管全部解析查詢
WebRTC 外洩瀏覽器 WebRTC 可能暴露的本地或公網地址是否超出預期取決於瀏覽器行為和網絡路由,要用專門頁面測
瀏覽器指紋Canvas、字體、時區等瀏覽器特徵換代理 IP 不會自動改變這些特徵
公網 IP 檢測網站看到的連線出口 IP只反映這一次請求的出口情況

DNS 和 WebRTC 是最容易混淆的兩個,因為都帶「外洩」兩個字。它們的檢測原理和處理方式完全不同,WebRTC 外洩的檢測與設定方法單獨講過,這裏不展開。另外,IPv6 外洩是同一家族裏的另一項,查的是 IPv6 地址有沒有繞過代理,方法見 IPv6 外洩檢測的方法。

這四項分別反映不同的資訊,不能互相替代。排查代理環境時,建議先確認公網 IP。再查 DNS 和 WebRTC,最後核對指紋和環境設定,具體項目按實際場景決定。

IP、DNS、WebRTC 與指紋四項檢查各管一段示意圖

用 MostMate 時,這幾項檢查怎樣排進流程

檢查順序建議是:先出口,再解析,再 WebRTC,最後看環境設定。用 MostMate 管理多個瀏覽器環境時,可以把代理連線檢查和 DNS 外洩檢測分開進行。

代理配置是第一項。為環境綁定代理後,用產品內的代理測試確認連線狀態。協定類型(HTTP、HTTPS、SOCKS5、SSH)和認證資料一併核對。注意代理測試通過不能代替 DNS 外洩檢測,DNS 查詢的實際路徑仍取決於代理客戶端、瀏覽器和系統的設定。

MostMate 代理綁定與測試介面示意

之後在綁定該代理的環境裏開啟 DNS 檢測頁。方法同前面四步。看解析器所屬是否符合預期。

第二項是環境本身的隔離。多帳戶場景下,每個環境的代理、Cookie 和指紋參數應各自獨立,互不借用,隔離的具體範圍見瀏覽器環境隔離的範圍與配置。環境配錯代理或共用設定,檢測結果就沒有對照意義。隔離有助管理不同工作階段和設定,但不代表 DNS 路徑自動正確,也不能替代外部檢測。

第三項記住邊界:指紋瀏覽器負責把環境組織清楚,代理生效與否、DNS 走沒走預期路徑,仍要靠外部檢測驗證。檢測通過也不代表一勞永逸,設定變更或系統更新後建議重測。

常見問題

開了代理,DNS 檢測顯示本地解析器,代表代理失效了嗎?

不一定。代理可能只接管了網頁請求,解析查詢由系統或瀏覽器單獨處理。逐項檢查代理客戶端的 DNS 處理和瀏覽器的 DoH 設定。改一項測一次。

DNS 外洩會暴露我的真實 IP 嗎?

不能直接等同。DNS 外洩反映的是域名解析請求的路徑,實際暴露哪些資訊取決於網絡設定和檢測場景。真實公網 IP 是否隱藏,要用獨立的 IP 檢測確認。DNS 解析路徑另外單獨檢查。

用了指紋瀏覽器還會發生 DNS 外洩嗎?

可能會。指紋瀏覽器管理的是環境隔離和指紋參數,DNS 行為取決於代理協定和系統、瀏覽器設定。檢測不能省。

DNS 檢測通過之後,還需要檢查甚麼?

還有 WebRTC 外洩和瀏覽器指紋兩項,各自用對應工具驗證。全部通過。這個環境的網絡層檢查才算完整。

結語

DNS 外洩檢測的價值,在於確認目前環境的網絡請求是否符合預期。公網 IP、DNS、WebRTC 和瀏覽器指紋各有對應的檢查方法,不能用其中一項的結果代替其他項的驗證。無論使用哪款指紋瀏覽器,都建議在代理或網絡設定變更後重新檢測。

如果你需要管理多個瀏覽器環境,可以先了解 MostMate 的環境設定和代理管理方式,再按本文步驟逐項驗證;代理這一層想配得更穩,可以下載 MostMate。免費版有兩個環境。先把第一個環境的檢測流程走通。

MOSTMATE

安全管理多帳戶,輕鬆簡單

從首個帳戶開始,利用 MostMate 建立更安全、更智能、更高效的多帳戶營運方式。

  • 設定檔各自獨立,身分保持一致。
  • AI 自動化 · 帳戶健康 · 團隊營運
下載 MostMate