用戶端顯示「已連線」,瀏覽器裡的目標網站卻依舊打不開;或者頁面能開啟,但查詢出口位址時顯示的仍是本機電信業者的歸屬地。這類情況在排查紀錄裡出現頻率很高,而且多數不是線路故障,而是流量根本沒有走進隧道。判斷 VPN 是否真的生效,不能看介面上的連線狀態,要看兩個可驗證的指標:出口 IP 有沒有換、DNS 解析有沒有跟著換。

本文提供三步驗證法:查出口 IP、查 DNS 洩漏、分應用程式比對測試,並拆解六種「看起來連上了其實沒走」的典型情況與對應修法。整套流程涵蓋 Windows、macOS、iOS、Android 與 Linux,不需要安裝額外的檢測工具,用到的都是瀏覽器頁面與系統內建指令。

2 必查項目:出口 IP 與 DNS 解析器歸屬地
3 驗證步驟:查 IP → 查 DNS → 分應用程式比對
1 判斷標準:出口位址改變才算生效

為什麼「已連線」不等於已生效

用戶端裡的連線狀態,只說明用戶端程序與線路入口之間的握手成功了,它不保證系統裡其他程式的流量會走這條隧道。真正決定「生效」的是接管層級:用戶端用哪種方式把流量導向隧道,以及 DNS 與 IPv6 有沒有被一併接管。

接管層級:擴充功能、系統代理與 TUN

接管方式涵蓋範圍典型失效表現
瀏覽器擴充功能 / 單一應用程式代理 安裝了擴充功能的瀏覽器,或個別設定過代理的應用程式 其他軟體查詢出口 IP 時仍是本機位址
系統代理(PAC / 手動設定) 讀取系統代理設定的 HTTP(S) 應用程式 命令列工具、UDP 類應用程式、部分桌面軟體直接繞過
TUN / 虛擬網卡接管 系統層級路由,通常同時涵蓋 IPv4 與 IPv6 分流規則命中「直連」;IPv6 未接管時仍走本機

三種方式沒有絕對優劣。系統代理部署輕、對系統改動小,但涵蓋範圍窄,只對讀取系統代理設定的應用程式有效;TUN 接管涵蓋範圍廣,代價是需要更高權限:Windows 上要安裝虛擬網卡驅動程式,macOS 與 Linux 上要授權網路擴充功能或以相應權限執行。如果你的目標是讓所有程式都走線路,應先確認用戶端處於 TUN / 全域接管模式,而不是系統代理模式。

另一個常被忽略的層面是 DNS。即使流量已經走進隧道,解析請求仍可能發給本機網路下發的解析器,拿到被就近調度或被替換的結果,表現就是「連上了,但網域打不開,或者開啟的是另一個區域的版本」。所以驗證必須同時看 IP 和 DNS,缺一不可。

第一步:查出口 IP,看流量有沒有換出口

這一步的目標很簡單:拿到連線前後的兩個出口位址做比對。按下面的順序做一遍,基本上就能定性。

  1. 中斷用戶端連線,先測一次,記錄出口 IP、歸屬地與電信業者(ASN)。
  2. 連上用戶端,確認目前使用的是哪條線路、哪個地區。
  3. 用同一個查詢服務再測一次,比對 IP 與歸屬地是否發生變化。
  4. 單獨查一次 IPv6 出口。IPv6 常被忽略,它是「連上卻沒走」的高發區。
  5. 換一個查詢服務複測一次,排除頁面快取造成的誤判。

查詢服務本身也可能受 CDN 影響:部分查詢站點走 CDN,傳回的歸屬地是 CDN 節點所在位置,而不是你的真實出口。遇到「IP 變了但歸屬地看著不對」的情況,換一個查詢服務,或直接看 ASN 欄位再判斷。

# 目前出口 IPv4
curl -4 -s https://api.ipify.org

# 目前出口 IPv6(沒有輸出通常表示本機沒有 IPv6 出口)
curl -6 -s https://api.ipify.org

# 附歸屬地與 ASN 的查詢
curl -s https://ipinfo.io/json

判斷標準只有一條:出口 IP 變了,才算流量真的走了線路。用戶端裡的連線狀態、即時速率、延遲讀數都不能取代這一步。

第二步:檢查 DNS 洩漏,確認解析也走了線路

DNS 查詢發生在建立連線之前。如果解析請求發給了本機網路下發的解析器,那麼即使後續流量走了隧道,你也可能拿到被就近調度或被替換的解析結果,表現為「連上了但打不開」「開啟的是錯誤區域版本」「時快時慢」。這類情況通常被統稱為 DNS 洩漏,它和線路品質無關,屬於接管範圍的問題。

DNS 檢測結果怎麼看

檢測頁會列出本次解析使用的解析器 IP、歸屬地與電信業者。判斷方法:解析器歸屬地應與線路出口一致,或至少屬於同一服務商網路。如果顯示的是你本機寬頻或行動網路的電信業者名稱,那就是洩漏;如果解析器位址與出口 IP 同網段或同 ASN,屬於正常。

瀏覽器內建的加密 DNS(DNS over HTTPS)會繞過系統 DNS 設定,檢測頁可能顯示瀏覽器自己的解析器。這不算洩漏,但它同樣繞過了線路側的解析策略;排查時先在瀏覽器裡關掉「安全 DNS」,再重新檢測。

處理方式按優先順序排列:

# Windows:查看系統目前使用的 DNS 伺服器
ipconfig /all

# macOS:查看系統解析器設定
scutil --dns

# Linux:查看目前解析設定
cat /etc/resolv.conf

# 傳回的位址就是解析器出口,可與出口 IP 比對
nslookup whoami.akamai.net

第三步:分應用程式、分場景比對測試

出口 IP 和 DNS 都對,仍然可能有個別應用程式不走線路。這一步的目標是把「哪個應用程式沒走」定位出來,而不是籠統地歸因於線路。

  1. 瀏覽器:用無痕視窗或先清一次快取後造訪目標網站,記錄結果。
  2. 命令列:用 curl 查出口 IP,與瀏覽器結果比對。命令列工具預設不讀系統代理,需要明確設定 http_proxy / https_proxy 環境變數,或者依賴 TUN 接管。
  3. 桌面應用程式:在用戶端的分應用程式代理清單裡確認該應用程式被標記為走線路;以 UDP 為主的軟體在系統代理模式下通常不會被代理。
  4. 行動裝置:Android 上確認 VPN 權限已授予、用戶端在省電白名單裡;iOS 上確認 VPN 設定處於已連線狀態,沒有被隨需連線規則提前中斷。
  5. 交叉驗證:在同一帳號的另一台裝置上複測。VPNDX 不限裝置數同時在線,換裝置複測不需要額外操作。

依平台差異逐項確認

排查時不要同時改動多個設定項目。一次只改一項:先換接管模式,再動 DNS,最後看分應用程式清單。否則即使問題消失了,也無法判斷是哪一步起了作用,下次重現仍然要從頭再來。

六種典型「連上卻沒走」的情況與修法

把上面三步的結果對照下表,基本上可以直接定位到原因。

現象可能原因處理方式
出口 IP 與中斷時完全一樣 用戶端處於系統代理模式,目前軟體不讀系統代理 切換到 TUN / 全域接管模式,或在應用程式內單獨填寫代理位址
瀏覽器出口變了,命令列沒變 只有瀏覽器讀取了系統代理 同上;確認是否需要全域接管,而不是逐一設定應用程式
IPv4 走了線路,IPv6 還是本機 用戶端未接管 IPv6 路由 在用戶端開啟 IPv6 接管,或在用戶端 / 路由器端關閉 IPv6
出口 IP 正常,網域打不開或解析異常 DNS 仍由本機解析器處理 開啟用戶端 DNS 接管,檢查瀏覽器加密 DNS 設定
只有某個應用程式不走線路 分應用程式代理清單沒把該應用程式列為走線路 把應用程式加入走線路清單,或改用全域接管模式
換到另一個網路後失效 網路切換後路由與代理設定未重建 中斷後重新連線用戶端;必要時重新啟動用戶端程序再測

六種情況裡,前四種可以用同一套動作解決:把接管層級從系統代理換成 TUN,並確認 DNS 與 IPv6 一併被接管;剩下兩種屬於設定遺漏,逐項核對即可。

什麼時候必須重新驗證

三步驗證不是一次性動作。下面這些時點之後,接管狀態可能已經改變,建議重新走一遍。

三步驗證通過後,把當時的出口 IP 與解析器位址記下來作為基準。下次出現存取異常時,只要比對這兩個值,就能立刻分清是本機接管失效,還是線路側發生了變化。

把出口 IP 查詢頁加入書籤,三步走完通常不超過兩分鐘。多數「線路故障」在這一步就能定性:是本機接管沒生效,還是線路側確實異常。VPNDX 提供 120+ 國家 / 220+ 線路,涵蓋 IEPL 專線與中轉、直連線路,不限裝置數同時在線,用戶端涵蓋 Windows、macOS、iOS、Android、Linux,採用軍工級加密,註冊無需電子郵件地址,支援支付寶、微信與 USDT 付款,並提供 30 天無理由退款。站內線路頁可以查看線路狀態,與本機驗證結果對照,能更快判斷問題出在哪一端。

先驗證本機,再懷疑線路。出口 IP、DNS 解析器、分應用程式三條全部通過,才說明流量確實走了線路;任何一條不通過,問題都在本機接管環節,換線路不會解決。