判斷 VPN 是否真的生效,只看客戶端的狀態燈沒有意義。狀態燈代表的是代理程式在執行,而不是你正在瀏覽的那個網站真的走了線路。可以核對的結果只有三個:出口 IP 是否換到線路所在地、DNS 解析是否跟著走線路、以及特定應用程式有沒有真的走代理。

以下依這三個方向拆開說明,每個方法都提供可以自己動手執行的步驟,最後附上一份換線路、換裝置、換網路環境後都能重複使用的檢查清單。

方法一:先確認出口 IP 是否落在所選地區

出口 IP 是外部網站看到的來源位址。連上線路後,它應該變成線路所在地的位址;如果還是本地位址,代表流量根本沒有經過線路,此時討論速度與穩定性都沒有意義。

  1. 先斷開連線,記錄目前的出口 IP 與歸屬地,作為對照基準。
  2. 在客戶端選擇目標地區的線路並連線,等待客戶端提示連線成功。
  3. 用無痕視窗重新開啟檢測頁,避免瀏覽器快取回傳連線前的舊結果。
  4. 比對出口 IP 與歸屬地是否和所選線路一致,跨地區線路的歸屬地可能與節點城市略有出入。

本站的網路檢測頁面可以直接看到出口 IP 與歸屬地,不需要額外安裝工具。

指令列核對更適合一次性排查

瀏覽器之外,指令列的輸出沒有快取干擾,適合做一次性核對:

# 查看目前出口 IP
curl -s https://ifconfig.me

# 查看出口 IP 的歸屬資訊
curl -s https://ipinfo.io/json

Windows 可以在 PowerShell 執行同樣的指令。如果指令列回傳的仍是本地位址,而瀏覽器已經變成線路所在地,代表指令列沒有走系統代理,需要改用 TUN 模式或另外設定代理環境變數,這點在方法三還會說明。

三種常見的誤判

  • 歸屬地資料庫更新落後:新分配或重新劃分的位址段,查詢結果可能標到鄰近地區,不能只憑單一資料庫下結論。
  • 快取干擾:瀏覽器快取與系統 DNS 快取都可能回傳連線前的結果,無痕視窗能排除大部分干擾。
  • 多重出口:同一地區可能有多個出口位址,重新整理幾次結果不同屬於正常現象,不必反覆重連。

方法二:查 DNS,確認解析沒有回到本地

DNS 決定「網域被解析成哪個位址」。如果解析請求仍然送給本地電信業者,即使網頁流量走了線路,解析結果也會按本地位置回傳:跨境網站可能被調度到離本地更近的節點,地區限制照樣生效,查詢內容也仍然暴露給本地解析器。這就是常說的 DNS 洩漏。

怎麼看解析器清單

DNS 洩漏檢測工具會列出實際收到查詢的解析器位址與所屬網路。連上線路後再測一次,依下列原則判讀:

測到的解析器 說明 處理
只出現線路所在地的解析器 解析跟著線路走,符合預期 無需處理
出現本地電信業者的解析器 解析請求沒有走代理,屬於洩漏 在客戶端開啟遠端解析,讓 DNS 走代理
本地與遠端解析器同時出現 部分請求被系統層加密 DNS 接管 關閉系統 DoH,交給客戶端統一處理
出現公共解析器位址 需要確認查詢是否經線路轉發 對照出口 IP 判斷,別只看解析器名稱

指令列也能看本機目前使用的解析器:nslookup example.com 的輸出中,Server 那一行就是實際回應的位址。如果它是本地路由器或電信業者位址,代表解析沒有走線路。

系統層的加密 DNS(DoH / DoT)會繞過客戶端設定的 DNS。驗證前先確認作業系統或瀏覽器沒有另外開啟這類功能,否則測出來的結果會與客戶端裡的設定不一致。

fake-ip 與遠端解析的差異

部分客戶端預設使用 fake-ip 模式:本地看到的解析結果是虛擬位址,真實解析在遠端完成。這種情況下,用本地指令查到的位址不代表洩漏,判斷依據仍然是洩漏檢測頁列出的解析器,而不是本機回傳的那個 IP。遠端解析模式下,解析請求由線路出口發出,回傳的位址也更貼近線路所在地。

方法三:分應用程式驗證,確認實際情境真的走代理

現代客戶端普遍提供分流:依網域、依地區、依應用程式決定哪些流量走線路、哪些直連。分流開啟時,「已連線」只代表代理程式在執行,不代表你正在用的那個應用程式走了線路。

依情境逐一確認

情境 核對方式 常見漏點
瀏覽器瀏覽國際網站 無痕視窗開啟網路檢測頁看出口 IP 瀏覽器裝了獨立代理擴充功能,繞過了系統代理
桌面應用程式(雲端同步、開發工具) 在應用程式內查看網路狀態或日誌 應用程式自帶代理設定,預設走直連
指令列工具(git、curl、套件管理器) 執行一次出口 IP 查詢 不讀系統代理,需要 TUN 或環境變數
行動裝置應用程式 在應用程式內查看帳號地區或內容清單 應用程式走自有通道,沒有使用系統 VPN

不同平台的接管方式不一樣

  • Windows:系統代理只影響會讀取系統設定的程式,啟用 TUN 才能涵蓋指令列與其他應用程式。
  • macOS:透過系統網路擴充功能接管流量,首次啟用需要在系統設定中允許擴充功能載入。
  • Android:以系統 VPN 服務為基礎,開啟後預設全域接管,分流細節由客戶端內部規則決定。
  • iOS:同樣透過系統網路擴充功能運作,依提示完成設定後才會真正接管流量。
  • Linux:多數客戶端不會自動修改系統代理,需要手動設定 TUN,或為終端機另外設定代理環境變數。

指令列臨時設定代理的寫法如下,連接埠號以客戶端顯示的實際值為準:

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
curl -s https://ifconfig.me

分流規則決定了「走不走」

規則模式依網域後綴、GeoIP 地區、處理程序名稱做比對,命中直連的網域不會經過線路。驗證某個網站時,可以暫時切到全域模式複測:全域下正常、規則下不生效,問題就在規則本身,而不是線路。反過來說,如果全域也不通,再回到方法一與方法二排查。

判定原則:三個方法都通過才算真的生效——出口 IP 變了、解析器清單裡沒有本地電信業者、目標應用程式確實走了代理。只符合其中一項,都只能代表鏈路的一部分通了。

幾種「看著連上了其實沒走」的情況

下列現象在排查中出現頻率最高,可以先對照,再決定是改設定還是換線路。

現象 常見原因 處理
狀態燈是綠的,頁面一直轉圈 節點不可用,或訂閱已過期、流量用盡 換一條線路,檢查訂閱狀態與剩餘流量
網頁能開啟,帳號地區沒變 該網域命中直連規則,或瀏覽器走了擴充功能代理 切到全域模式複測,關閉瀏覽器代理擴充功能
只有部分應用程式生效 應用程式不讀系統代理 啟用 TUN,或為應用程式另外設定代理
解析結果仍是本地節點 DNS 洩漏,解析沒有走線路 開啟遠端解析,關閉系統加密 DNS
連上幾秒後就斷線 系統時間偏差過大,握手驗證失敗 校正系統時間後重新連線
部分網站直連、部分走線路 只代理了 IPv4,IPv6 流量仍走本地 關閉 IPv6,或啟用 IPv6 代理

時間偏差這一項最容易被忽略:VMess 這類協議對客戶端與伺服器的時間差敏感,偏差過大時握手會直接失敗,表現就是「連上了卻立刻斷線」,看起來像線路問題,實際上調整系統時間就能解決。

協議與線路類型會影響判讀,但不改變方法

驗證方法不變,但不同協議與線路在「連不上」和「連上後不穩」的表現不一樣,了解差異可以少走冤枉路。

  • Shadowsocks:基於 SOCKS5 的輕量代理,UDP 需要伺服器端另外開啟中繼,語音與遊戲類應用程式不走 UDP 時會表現為「網頁正常、通話不通」。
  • VMess:對時間同步敏感,握手失敗多半與系統時間或客戶端版本有關。
  • VLESS:本身不內建加密,依賴外層 TLS,設定錯誤時表現為能連上但無法傳輸。
  • Trojan:以 TLS 承載,憑證與網域設定不匹配時會直接握手失敗。
  • Hysteria2 / TUIC:基於 QUIC,全部走 UDP,網路限制 UDP 時表現為完全連不上,而不是變慢。

線路類型同樣影響判讀:IEPL 專線的跨境段走專線,不經過公共網際網路出口,尖峰時段的穩定性通常更好;中轉線路是區域入口加上跨境段,表現取決於中轉段的品質;直連線路直接連海外節點,受國際出口壅塞影響最明顯。三種都能正常連通,差別主要體現在尖峰時段與長連線情境。

一份可以反覆使用的檢查清單

把上面的方法濃縮成清單,換線路、換裝置、換網路環境後照著走一遍即可。

  • ✅ 連線前後各查一次出口 IP,記錄歸屬地的變化
  • ✅ 用無痕視窗複測,排除瀏覽器與 DNS 快取
  • ✅ 查解析器清單,確認沒有本地電信業者位址
  • ✅ 至少實測一個目標應用程式,而不是只看狀態燈
  • ✅ 用指令列單獨核對一次,必要時啟用 TUN
  • ✅ 記錄失效時的現象,方便判斷是規則、DNS 還是節點問題
  • ❌ 用「能開啟一個首頁」當作生效證據
  • ❌ 在規則模式下判斷線路好壞

如果三個方法都通過、目標應用程式仍然不理想,問題通常出在線路本身而不是設定:換一條同地區線路複測,或改用專線類線路。VPNVan 提供 100+ 國家、240+ 線路可切換,帳號不限裝置數,無需電子郵件地址即可註冊,首次付款後 7 天內可申請無條件退款,用來做這類對照測試的成本很低。

100+ 覆蓋國家與地區
240+ 可切換線路
7 天 無條件退款

最後提醒一句:訂閱位址等同於帳號憑證,匯入客戶端後不要轉發給他人。位址一旦外流,別人消耗的是這個帳號的流量,驗證結果也會變得難以解釋。

驗證順序建議固定為:出口 IP、DNS、分應用程式。前兩步確認鏈路與解析,第三步確認實際服務真的走了代理。順序顛倒的話,很容易在分流規則上反覆繞圈。