VPN 真的安全嗎?答案不能只看「已連線」三個字。VPN 主要負責建立加密通道,將裝置的部分網路流量送往遠端伺服器,但 DNS 解析、瀏覽器的 WebRTC、作業系統的分流規則,以及應用程式自己的網路設定,都可能讓資訊繞過預期通道。若 DNS 請求仍交給本地電信商,或 WebRTC 暴露了實際網路介面,使用者看到的出口 IP 與 DNS 服務位置就可能不一致。
這份指南把檢查拆成三個層次:先確認目前使用的 DNS 服務,再檢查瀏覽器是否透過 WebRTC 暴露位址,最後回到 VPN 客戶端與作業系統修正設定。測試時不要只看一個網站的結果,也不要把「網站能開啟」當成隱私設定已經正確。DNS 洩漏通常不會阻止網頁載入,反而需要比較連線前後的解析服務、出口地區與介面資訊。
VPN 真的安全嗎?DNS 洩漏檢查與修復指南
DNS 洩漏是什麼:不要把出口 IP 當成全部答案
當你輸入網站名稱時,裝置通常需要先把網域名稱轉換成 IP 位址,這個程序就是 DNS 解析。若 VPN 連線後,DNS 請求仍由原本的電信商、公司網路或公共 Wi-Fi 提供者處理,解析者可能看見你查詢過的網域。即使後續頁面流量經由 VPN 出口傳送,DNS 查詢路徑仍可能暴露使用習慣與服務類型。
常見原因包括客戶端沒有接管系統 DNS、系統保留了原本的解析介面、IPv6 流量沒有納入隧道、瀏覽器啟用了獨立的 DNS over HTTPS,或企業網路透過自己的安全閘道攔截 DNS。某些應用程式也會自行處理解析,不一定遵循作業系統的預設設定。因此,單純看到 VPN 出口 IP 已改變,不能證明 DNS 解析也走同一條通道。
3
主要檢查面向
4
常見洩漏來源
1
最終驗證原則
「洩漏」也不一定表示服務商或電信商已經讀取完整瀏覽內容。DNS 通常只涉及網域解析請求,實際頁面是否加密還取決於 HTTPS、應用程式協定與網站本身。正確的判斷方式,是把它視為一個路徑一致性問題:連線後,DNS 解析者是否符合你的預期;連線中斷後,系統是否會停止或切回可接受的安全狀態。
測試前先建立基準:避免把正常差異誤判為洩漏
檢查前先關閉 VPN,使用目前的網路連線完成一次基準測試。記下測試頁面顯示的公共 IP、DNS 服務商名稱、所在國家或地區,以及是否列出多個解析伺服器。不要只截取一個數字,最好保存完整畫面或文字結果。接著關閉瀏覽器中不必要的代理擴充功能,避免擴充功能與 VPN 客戶端同時改寫連線。
重新啟用 VPN 後,等待客戶端顯示連線成功,再以相同瀏覽器、相同測試頁面重做檢查。若使用的是規則分流模式,先確認測試頁面本身沒有被設定為直連;若使用全域模式,則應比較連線前後的 DNS 服務與公共 IP。若兩次測試的解析伺服器完全相同,並不代表一定洩漏,因為有些 VPN 會使用與外部服務相同的 DNS 供應者;此時還要查看客戶端的 DNS 設定或連線記錄。
| 檢查項目 | 連線前應記錄 | 連線後要比較 | 可能的異常 |
|---|---|---|---|
| 公共 IP | 目前網路的出口位置 | 是否切換到 VPN 出口 | 仍顯示本地網路出口 |
| DNS 解析者 | 電信商、公司或公共 Wi-Fi 的服務 | 是否改為 VPN 或指定的解析路徑 | 連線前後完全相同且不符合預期 |
| IPv6 位址 | 是否存在可用 IPv6 | 是否也經過同一通道 | IPv4 已切換,IPv6 仍是本地出口 |
| WebRTC 位址 | 瀏覽器可見的介面資訊 | 是否暴露本地或實際公共位址 | 出現未預期的本地介面或出口 |
動手檢查 DNS 與 WebRTC:按照順序排除問題
下面的流程適用於 Windows、macOS、Android、iOS 與 Linux,但不同版本的選單名稱可能略有差異。測試時應使用可信的 DNS 洩漏檢查與 WebRTC 檢查頁面,並閱讀頁面說明,不要在不明網站輸入帳號、密碼或安裝額外程式。檢查頁只需要讀取連線資訊,不需要授權通知、通訊錄或其他裝置資料。
- 關閉 VPN,記錄公共 IP、DNS 解析者與 WebRTC 顯示的介面資訊,建立目前網路的基準。
- 啟用 VPN,等待狀態穩定後重新載入檢查頁,不要只在背景連線時查看舊結果。
- 比較 DNS 解析者。若仍出現原本的電信商或公司 DNS,先查看客戶端是否有「防止 DNS 洩漏」「使用 VPN DNS」或相近選項。
- 查看是否出現 IPv6 解析結果。若 VPN 只接管 IPv4,而 IPv6 仍直接連線,就可能形成部分路徑繞出隧道的情況。
- 在瀏覽器執行 WebRTC 檢查,分辨顯示的是本地私有位址、VPN 位址,還是未預期的公共位址。
- 暫停瀏覽器的安全 DNS 或 DNS over HTTPS,再測試一次;若結果改變,代表瀏覽器自己的解析設定可能沒有遵循系統或 VPN 設定。
- 最後斷開 VPN,重新載入網站,確認是否出現短暫直連。若斷線後仍能繼續傳輸,應檢查 kill switch 或網路封鎖功能。
若測試頁顯示多個 DNS 服務,不要看到數量增加就直接判定洩漏。部分服務會把同一組解析叢集列為多個位址,也可能同時顯示 IPv4 與 IPv6 伺服器。真正需要追問的是:這些伺服器是否屬於預期的 VPN DNS、是否與本地網路提供者有關,以及 VPN 斷線時是否仍然可被系統使用。
依裝置修復 DNS 洩漏:先改客戶端,再處理系統
Windows 與 macOS
桌面系統最常見的問題,是同時安裝多個 VPN、代理或網路過濾工具,導致虛擬介面優先順序互相衝突。先只保留一個 VPN 客戶端執行,關閉其他代理工具,再檢查客戶端是否啟用 DNS 洩漏防護、kill switch、IPv6 保護與自動套用 DNS。完成修改後,重新連線,不要只切換節點而不重建隧道。
Windows 可從網路介面與 DNS 設定查看目前使用的解析伺服器;macOS 則可在網路服務的進階設定中查看 DNS 與代理項目。若手動指定公共 DNS,必須確認 VPN 客戶端會接管該介面,否則手動設定不一定能防止請求離開隧道。企業、校園或公共網路可能強制攔截 DNS,這時應先確認網路政策,不要任意停用必要的安全軟體。
Android 與 iOS
手機常見的幹擾來源是系統層級的私人 DNS、iCloud Private Relay 類功能、內容過濾器、企業設定檔與其他 VPN 設定檔。Android 使用者應檢查「私人 DNS」是否設定為自訂主機名稱,並確認它與 VPN 客戶端的 DNS 模式沒有衝突;iOS 使用者則要檢查是否有其他網路隱私功能或內容過濾 App 正在接管連線。
手機在切換 Wi-Fi 與行動網路時,VPN 可能短暫重建連線。測試不能只在 Wi-Fi 下完成,也應在行動網路下重新連線後檢查。若啟用「始終開啟 VPN」或類似功能,應同時查看是否啟用了不允許 VPN 連線時使用網路的選項。這些功能可以降低斷線直連風險,但也可能讓個別應用程式在 VPN 重建期間暫時無法連線。
Linux 與相容客戶端
Linux 上的 DNS 管理可能由 NetworkManager、systemd-resolved、發行版服務或桌面環境共同處理。若使用 sing-box、Clash Verge、Shadowrocket 或其他相容客戶端匯入訂閱,應確認設定檔中的 DNS 模式、透明代理、TUN 介面與路由規則是否互相配合。只開啟 TUN 不代表 DNS 一定被接管;只設定 DNS 伺服器,也不代表所有應用程式都會遵循該設定。
建議先用最簡單的全域模式完成測試,再逐步恢復規則分流。若全域模式沒有洩漏,而規則模式出現異常,問題通常在 DNS 規則、直連清單或特定應用程式的例外設定。若使用 VMess、Trojan、Shadowsocks、Hysteria2 或 WireGuard 等協定,應把「協定能否連線」與「DNS 是否沿同一路徑」分開驗證,不能因為隧道已建立就跳過 DNS 檢查。
- ✅ 先停用其他 VPN、代理、過濾器,再單獨測試目前使用的客戶端。
- ✅ VPN 連線後重新載入檢查頁,避免讀取連線前留下的快取結果。
- ✅ 同時檢查 IPv4、IPv6、DNS 與 WebRTC,不只看公共 IP。
- ❌ 不要同時啟用多個 DNS over HTTPS、私人 DNS 與 VPN DNS 接管功能。
- ❌ 不要把手動填入公共 DNS 當成完整的洩漏防護。
最穩妥的順序是先讓 VPN 客戶端接管 DNS,再確認 IPv6 與瀏覽器獨立解析設定,最後才調整分流規則。若一開始就同時修改多個位置,出現問題時很難知道是哪一層造成繞路。
修正瀏覽器 WebRTC 暴露:DNS 正常不代表瀏覽器沒有其他資訊
WebRTC 是瀏覽器用來支援即時音訊、視訊與資料通訊的機制。為了建立連線,它可能收集本地網路介面、候選位址與連線路徑資訊。VPN 連線後,WebRTC 檢查頁仍可能列出本地私有位址,這不一定等同於公共 IP 洩漏;但若出現未預期的實際公共位址,就應進一步檢查瀏覽器與 VPN 的處理方式。
修正方法取決於瀏覽器與使用情境。可以先在瀏覽器設定中查看 WebRTC、媒體權限與隱私防護選項,並移除不必要的網站攝影機、麥克風權限。若依賴瀏覽器進行視訊會議,不建議直接用不明擴充功能全面阻擋 WebRTC,因為可能造成通話、螢幕分享或登入驗證失效。更合理的做法是使用可信的瀏覽器設定,並以實際會議服務重新測試。
瀏覽器的 DNS over HTTPS 也需要單獨確認。有些瀏覽器會把 DNS 請求送往預設解析服務,不理會作業系統的 DNS 介面;有些則會在偵測到 VPN 或企業政策後改用系統設定。若你要求所有解析都由 VPN 客戶端處理,應選擇符合該目標的瀏覽器選項,並在修改後重新做 DNS 洩漏測試。
斷線保護與分流設定:修復後還要驗證失效狀態
DNS 洩漏修復不能只測試「連線成功」的狀態,還要測試 VPN 暫時斷線時會發生什麼。kill switch 的作用是當隧道中斷時封鎖部分或全部網路流量,避免系統立刻改用本地介面直連。不同客戶端可能提供「封鎖未連線流量」「僅封鎖 VPN 應用程式流量」或「允許區域網路」等不同模式,啟用前應閱讀說明並確認是否影響印表機、檔案伺服器與本地裝置。
分流規則則要注意 DNS 與實際連線是否使用同一套判斷。某個網域被列入直連,不代表它的 DNS 請求也必須直連;某個應用程式走 VPN,也不代表它使用的解析服務一定走 VPN。尤其是瀏覽器、遊戲啟動器、影音 App 與命令列工具,可能各自使用不同的解析或連線方式。
建議先使用全域代理與完整 DNS 接管完成基準測試,再加入必要的直連規則。每加入一組規則,就重新測試公共 IP、DNS 與 WebRTC。若只希望本地服務不經 VPN,可以使用明確的區域網路例外,但不要為了方便而把所有 DNS、系統服務或未知網域加入直連清單。
| 設定狀態 | 適合用途 | 主要風險 | 驗證方式 |
|---|---|---|---|
| 全域代理 | 建立最清楚的測試基準 | 本地服務可能無法使用 | 比較 DNS、IP 與 WebRTC |
| 規則分流 | 區分本地、國際與特定應用程式 | 例外規則造成部分流量直連 | 逐條檢查網域與 DNS 路徑 |
| kill switch | 降低隧道斷線時的直連風險 | 可能暫停本地或背景服務 | 斷線後重新測試網站與 DNS |
| IPv6 保護 | 避免 IPv6 繞過 VPN | 部分網路或服務相容性受影響 | 分別檢查 IPv4 與 IPv6 結果 |
常見問題
DNS 洩漏代表 VPN 完全沒有加密嗎?
不一定。DNS 洩漏通常表示部分網域解析請求沒有按照預期通過 VPN 通道,並不直接等同於所有頁面流量都未加密。仍應分別檢查 HTTPS、VPN 隧道、DNS 路徑、IPv6 與瀏覽器 WebRTC。
測試頁顯示很多 DNS 伺服器,是不是一定洩漏?
不一定。解析服務可能使用多個位址或叢集,也可能同時顯示 IPv4 與 IPv6。重點是判斷它們是否屬於預期的 VPN DNS,並比較 VPN 開啟前後的提供者與路徑。
WebRTC 顯示私有 IP,需要關閉嗎?
私有 IP 通常只代表本地網路介面資訊,不等同於公共出口洩漏。若你需要瀏覽器視訊或螢幕分享,應先確認實際暴露的是哪種位址,再按瀏覽器功能與工作需求調整,不要盲目安裝不明擴充功能。
換了 VPN 協定就能解決 DNS 洩漏嗎?
通常不能直接保證。Shadowsocks、VMess、Trojan、Hysteria2 與 WireGuard 的連線方式不同,但 DNS 是否經過隧道,還取決於客戶端、TUN 或路由設定、IPv6 處理與瀏覽器選項。應先檢查設定與路徑,再考慮更換協定。
VPN 安全性不是「有沒有連上」的單一開關,而是 DNS、IP、IPv6、WebRTC、分流與斷線保護共同形成的結果。完成修復後,請在實際使用的裝置、瀏覽器與網路環境再次測試,並在客戶端更新設定或更換網路後重新核對。