先分清:連上了不等於走對線路

在用戶端裡按下連線、狀態列變綠,只代表本機到節點的隧道建立成功。它不保證出口 IP 落在你選的地區,不保證網域在遠端解析,也不保證所有應用程式都被接管。

隧道建立成功、節點實際不可用、訂閱到期、分流規則命中直連,都可能讓流量繞回本地出口,而用戶端介面不會有任何提示。所以「已連線」是一個動作的結果,不是線路生效的證明。

要確認線路真的生效,需要回答三個具體問題:流量從哪個 IP 出去、網域在哪裡解析、哪些應用程式進了隧道。

3 個驗證環節:出口 IP、DNS 解析、應用程式分流
120+ 國家與地區,查詢到的歸屬地要與所選線路相符
180+ 條線路,換一條重測能快速區分節點問題與設定問題
7 天 無理由退款,驗證與試用的成本都可控

把這三件事展開成可核對的標準,就是下面這份清單。三項都滿足,才算流量確實走了國際線路。

第一步:核對出口 IP 與落地地區

出口 IP 是最直接的一項驗證:先斷開線路,記下目前的對外 IP 與歸屬地;連上線路後再查一次,對比兩次結果。查詢入口可以是在搜尋引擎裡搜「我的 IP」,也可以在終端機裡用一行指令。

# 連上線路後執行,查看目前出口 IP
curl -s https://ipinfo.io/ip

# 備用查詢入口
curl -s https://ifconfig.me/ip

通過的標準很明確:連上後查到的 IP 歸屬地,應該與所選線路的地區一致。如果查到的還是本地電信業者的 IP,代表流量根本沒有進入隧道,後面兩步先別急,照最後一節排查。

有一個容易誤判的地方是 IPv6:不少用戶端預設只接管 IPv4,IPv6 請求會直連出去,而查詢網站可能優先回傳 IPv6 位址,看起來就像「連上了但沒生效」。處理方式是在用戶端裡開啟 IPv6 接管,或暫時停用 IPv6 再測一次。

另一個容易忽略的點是 WebRTC。在只代理 TCP 的模式下,它的 UDP 流量可能繞過隧道,把本機對外位址暴露出去。這不影響出口 IP 的判定,但如果在意曝露風險,可以在瀏覽器裡限制 WebRTC,或者讓用戶端以 TUN 模式接管全部流量。

第二步:做一次 DNS 洩漏檢查

隧道裡的流量有軍工級加密,但 DNS 請求是獨立於網頁流量的一條路徑。如果網域解析仍然送給本地電信業者的 DNS,就出現了 DNS 洩漏:IP 走了線路,網域卻在本地解析。結果是解析結果被就近調度回本地 CDN 節點,存取變慢甚至打不開;解析路徑本身也會暴露存取意圖。

檢查方式:搜尋「DNS 洩漏測試」,開啟任一測試頁,看回傳的解析伺服器清單。清單裡出現本地電信業者或本地城市的 DNS,就是洩漏;正常應該看到線路出口地區的解析伺服器。

終端機裡也能看:nslookup 的輸出會帶一行 Server,連接線路前後各執行一次,對比這行位址有沒有變化。

# 連接線路前後各執行一次,對比 Server 一欄
nslookup example.com

出現洩漏時,在用戶端裡開啟「遠端 DNS」或「使用線路 DNS」,讓解析請求也走隧道;如果用戶端提供 DNS 處理模式的選項,就選由隧道接管。另外,瀏覽器內建的加密 DNS(DoH)會繞過系統設定,驗證時先把它統一,或暫時關閉。

DNS 洩漏不會改變用戶端的連線狀態,介面依然是綠色。它只能靠主動測試發現,所以這一步不能省。

第三步:應用程式與分流驗證

依應用程式分流在 Android 用戶端最常見:只有勾選的應用程式會進隧道,其餘維持直連。桌面端則更依賴分流規則:用戶端按規則庫把網域和 IP 分成代理、直連兩組,規則命中錯了,目標網站就會走本地出口。

驗證按四步走:

  1. 打開用戶端的連線日誌或規則命中記錄;
  2. 造訪一個需要走線路的目標網站,在日誌裡找到對應條目,確認命中的是代理規則,而不是直連;
  3. 對關鍵應用程式逐一重複:瀏覽器裡查一次出口 IP,終端機裡查一次出口 IP,對比兩者是否一致;
  4. 結果不一致的應用程式,回到應用程式清單或自訂規則裡單獨調整,再複測一次。

瀏覽器和終端機查到不同出口是常見現象:終端機預設不會走瀏覽器的代理設定;如果用戶端是 SOCKS 或 HTTP 代理模式,終端機需要另外設定代理環境變數,否則查到的還是本地 IP。這不是線路問題,而是接管範圍的問題。

分流規則也會誤判。目標網站掛在海外 CDN 上、主網域卻是中國大陸常見的網域時,規則庫可能按網域判定為直連;規則庫版本過舊、新網域沒有收錄,同樣會走錯。遇到這種情況,把網域加進自訂代理規則,再複測一次。
到這裡,三項驗證的標準都很具體:出口 IP 歸屬地與線路地區一致、解析伺服器在線路一側、關鍵應用程式全部命中代理規則。三項裡只要有一項不滿足,先別急著判定線路有問題,對照下一節的常見狀況逐條排除,通常幾分鐘內就能定位。

「看起來連上了其實沒走」的常見狀況

下面這些現象的共同點是:用戶端的連線狀態都正常,但流量沒有照預期走線路。按現象對照原因排查,比反覆重新連線有效得多。

現象 實際原因 處理方向
用戶端顯示已連線,查到的仍是本地 IP 節點交握失敗後退回直連,或訂閱已到期、流量用盡 換一條線路重測,並檢查訂閱狀態
網頁打得開,但影片一直緩衝 網域在本地解析,被調度回本地 CDN 節點 開啟遠端 DNS,重跑一次洩漏檢查
部分應用程式走了線路,部分沒有 應用程式分流沒勾選,或分流規則命中直連 對照應用程式清單與規則命中日誌
瀏覽器與終端機查到的出口不一致 瀏覽器裝了代理外掛,或有獨立代理設定 統一代理設定後重新查詢
只查到 IPv6 位址是本地 用戶端沒有接管 IPv6 開啟 IPv6 接管,或暫時停用 IPv6
連上後中國大陸網站反而打不開 全域模式把所有流量送出,或規則庫把中國大陸網域判成代理 切回規則分流模式,更新規則庫

不同平台的驗證重點

同一套驗證流程,在不同系統上的注意點並不一樣,按平台補一遍能少走冤枉路。

Windows 與 macOS

桌面用戶端常見兩種接管方式:系統代理與 TUN 模式。系統代理只涵蓋會讀取系統代理設定的應用程式,終端機和部分軟體會繞過;TUN 模式接管更徹底,但要注意別和系統代理同時開啟,兩者疊加容易出現規則衝突。驗證前先確認用戶端用的是哪一種模式。

Android 與 iOS

行動裝置走系統 VPN 設定,連線狀態在系統設定裡也看得到。Android 支援依應用程式分流,驗證時重點核對勾選清單;iOS 一般沒有分應用開關,更依賴規則分流,驗證重點放在 DNS 與規則命中上。另外,行動網路下的 DNS 由電信業者提供,洩漏檢查在行動數據下更值得做一次。

Linux 與路由器

Linux 上多用命令列用戶端,注意 systemd-resolved 會接管 DNS,resolvectl status 能看到目前使用的解析伺服器,確認它已經被隧道接管。線路部署在路由器上時,全網裝置共用同一個出口,在任一台裝置上驗證即可,但路由器本身的 DNS 轉發設定決定了解析路徑,洩漏檢查要從路由器這一層來看。

VPNYN 的用戶端涵蓋 Windows、macOS、iOS、Android、Linux,訂閱匯入後就能照上面的流程逐項驗證;同一個帳號不限裝置數量同時上線,多台裝置可以並行複測。

驗證通過後,把三項結果記錄一次:出口 IP 歸屬地、解析伺服器、關鍵應用程式清單。之後換線路、換裝置或系統升級,照同一套流程複測,幾分鐘就能完成。

驗證不通過時的排查順序

照下面的順序走,每一步都能縮小一次範圍,避免同時改一堆設定。

  1. 換線路重測。同一份設定換一條線路,恢復正常就說明問題在節點側,不必動本機設定。
  2. 檢查訂閱狀態。訂閱到期或流量用盡,表現就是「連得上但沒有流量」,先確認這兩項。
  3. 停用瀏覽器代理外掛與內建加密 DNS,排除瀏覽器層的獨立設定。
  4. 檢查 DNS 接管。在用戶端裡開啟遠端 DNS,重新跑一次洩漏檢查。
  5. 檢查 IPv6。開啟接管或暫時停用,再測一次出口 IP。
  6. 重新啟動用戶端與網路。隧道與 DNS 設定會隨連線重建,路由器裝置也可以重啟一次。
  7. 記錄日誌。把用戶端日誌和三項驗證結果一起提交給客服,定位速度會快很多。

這套流程不需要額外工具:一個 IP 查詢入口、一個 DNS 洩漏測試頁、用戶端的連線日誌,就足以涵蓋全部三項。換線路之前,也可以先看一眼線路清單,挑一條地區對得上的線路再測。

三步驗證的順序建議固定下來:先看出口 IP,再做 DNS 洩漏檢查,最後逐一確認應用程式分流。三步都通過,才算流量真的走了國際線路;只通過第一步,只說明隧道建起來了,距離「生效」還有兩步。