判斷 VPN 是否有效,不能只看用戶端是否顯示「已連線」。更可靠的方法,是同時檢查出口 IP、DNS 解析路徑,以及實際應用程式的流量去向。連線狀態只代表用戶端完成了某個網路工作階段;系統代理伺服器、虛擬網卡、分流規則或應用程式本身的設定,仍可能讓部分請求沿原有網路送出。
完整檢查應回答幾個不同問題:公開網路存取使用了哪個出口、網域查詢交由哪個解析器處理、瀏覽器與命令列是否走相同路徑,以及目標應用程式是否繞過系統代理伺服器。把這些結果放在一起,才能區分「線路未建立」、「只有部分流量被接管」和「線路正常但網站判定異常」。
用戶端顯示已連線,不代表所有流量都已被接管
Shadowsocks、VMess、Trojan、VLESS、Hysteria2 與 TUIC 等協定負責建立傳輸通道,但用戶端還需要決定哪些系統流量要進入該通道。常見的接管方式包括系統代理伺服器、虛擬網卡模式和應用程式內代理伺服器。協定握手成功,只能代表本機用戶端與遠端節點具備通訊條件,無法單獨證明每個程式都採用這條路徑。
系統代理伺服器通常只會影響遵循作業系統代理設定的應用程式。瀏覽器大多會讀取這項設定,但某些命令列工具、遊戲、下載程式或自帶網路堆疊的應用程式可能直接連線。虛擬網卡模式會在較低的網路層接管流量,涵蓋範圍通常更廣,但仍會受到路由表、排除清單和區域網路規則影響。應用程式內代理伺服器則只對完成設定的程式生效。
因此,測試時不要把「瀏覽器可以存取」直接等同於「整台裝置都已使用線路」。反過來,某個應用程式連線失敗,也不一定代表節點失效;它可能沒有讀取系統代理伺服器,或使用的協定依目前規則設定為直連。
| 觀察結果 | 可能原因 | 下一步檢查 |
|---|---|---|
| 瀏覽器出口變化,終端機不變 | 僅啟用系統代理伺服器 | 檢查終端機代理變數或虛擬網卡模式 |
| 出口變化,DNS 仍經由本地網路 | 解析請求未被線路接管 | 檢查用戶端 DNS 與加密 DNS 設定 |
| 部分網站使用線路,部分網站直連 | 分流規則正在生效 | 查看網域、IP 與規則集的比對記錄 |
| 所有測試都沒有變化 | 代理伺服器未套用或路由未建立 | 檢查系統代理伺服器、虛擬網卡和預設路由 |
先用出口 IP 確認公開網路流量路徑
出口 IP 是目標網站看到的公開網路來源位址。未連線至線路時,通常會對應目前網路的公開出口;連線後,如果測試請求確實經過遠端節點,頁面或介面顯示的位址應隨出口位置改變。這裡只需比較前後結果,不應只憑位址所屬國家或電信業者名稱判斷品質。
測試前應暫時排除瀏覽器快取的影響,並確定檢測頁面重新發出網路請求。建議分別在一般視窗和不受擴充功能干擾的視窗中確認,因為代理伺服器擴充功能可能覆寫系統設定。如果裝置同時具備 IPv4 與 IPv6 連線能力,還要分別觀察兩類位址;只檢查其中一種,可能漏掉另一類流量仍沿原有網路送出的情況。
命令列可以作為瀏覽器之外的獨立參照。以下命令會請求公開的出口查詢介面:
curl https://api.ipify.org
如果瀏覽器結果已經改變,而命令列仍回傳連線前的出口,通常代表目前方案只設定了瀏覽器或系統代理伺服器,而命令列工具沒有讀取代理設定。啟用虛擬網卡模式後重新執行,可以進一步判斷作業系統路由是否已被接管。使用應用程式內代理伺服器時,也可以在命令中明確設定代理後再進行比較。
出口 IP 的所在地資料庫可能有更新延遲,不同查詢服務提供的城市或網路名稱也可能不一致。判斷是否有效時,應著重於「位址是否改變」以及「不同應用程式是否一致」,而不是要求所有資料庫都顯示完全相同的位置。
DNS 檢查要看解析請求送往何處
存取網域之前,裝置通常需要透過 DNS 查詢取得目標位址。如果網頁流量進入線路,但 DNS 請求仍直接交由本地網路提供的解析器處理,就可能造成解析路徑與存取路徑不一致。業界通常將意外繞過預期線路的解析請求稱為 DNS 洩漏。
不過,檢測頁面顯示本地解析器,並不一定能直接證明用戶端故障。現代瀏覽器可能啟用加密 DNS,作業系統可能使用快取,用戶端也可能採用遠端解析、映射位址或內建 DNS 模組。企業網路、家用閘道器和安全軟體還可能重寫解析路徑。因此,應結合用戶端設定與系統狀態一併判斷。
在 Windows 上,可以使用以下命令查看網域查詢結果:
nslookup example.com
Resolve-DnsName example.com
在 macOS 上,可以查看系統維護的解析器設定:
scutil --dns
採用 systemd-resolved 的 Linux 環境,可以檢查目前介面與解析器狀態:
resolvectl status
resolvectl query example.com
這些命令顯示的是系統層級資訊,而瀏覽器的加密 DNS 可能繞過系統解析器。如果命令列與瀏覽器的檢測結果不同,應檢查瀏覽器的安全 DNS 設定。若希望由用戶端統一處理解析,應確認用戶端的 DNS 模組已啟用,並核對分流規則是否錯誤地將解析伺服器本身設定為直連。
透過分應用程式測試找出繞過線路的程式
同一台裝置上的應用程式可能採用不同的網路堆疊。瀏覽器通常遵循系統代理伺服器,但命令列工具是否遵循,取決於環境變數和自身參數;部分遊戲與即時通訊程式使用 UDP,可能忽略只支援 TCP 轉送的代理方式。還有一些應用程式內建代理伺服器、加密 DNS 或連線重用邏輯,使其行為與系統設定不同。
排查時可以分別在瀏覽器、終端機和實際目標應用程式中執行網路操作,並觀察用戶端連線記錄。如果用戶端支援按程序或目標網域顯示記錄,應重點查看請求最後符合的是代理伺服器、直連還是拒絕規則。不要只看記錄中是否出現網域,還要確認該筆記錄的對外連線策略。
- 在瀏覽器中重新整理出口查詢頁面,記錄位址是否改變。
- 在終端機執行出口查詢命令,與瀏覽器結果進行比較。
- 關閉瀏覽器內建的加密 DNS 後重新測試,再依需要恢復設定。
- 開啟目標應用程式執行實際請求,同時觀察用戶端連線記錄。
- 檢查未符合規則時的預設策略是代理伺服器還是直連。
- 若應用程式使用 UDP,確認目前的接管模式與線路設定支援相應流量。
如果只有目標應用程式沒有經過線路,應優先檢查應用程式代理設定、程序分流與 UDP 接管,而不是頻繁更換節點。如果所有應用程式都沒有變化,則應回頭檢查系統代理伺服器、虛擬網卡權限和路由表。分應用程式測試的價值,在於縮小問題範圍,避免把規則問題誤判為線路問題。
分流規則會讓「部分有效」成為正常結果
分流的目的不是讓所有請求使用同一個出口,而是依照網域、IP、應用程式或網路類型選擇代理伺服器與直連。例如,本地服務可以直連,跨境存取請求經由國際線路,區域網路位址則留在本地網路。此時不同網站看到不同出口,可能正是規則設計的結果。
規則比對通常有優先順序。網域規則可能優先於 IP 規則生效,最終規則則負責處理未命中的請求。啟用訂閱規則集後,舊規則、自訂規則與用戶端預設規則也可能同時存在。排查時應從實際連線記錄反查命中項目,而不是只根據規則檔案中的文字推測。
DNS 策略也會影響分流準確性。如果用戶端依靠網域判斷路徑,但應用程式先將網域解析成 IP 再直接發起連線,用戶端可能只能看到位址,無法依原有網域規則處理。虛擬網卡模式中的 DNS 劫持或映射機制可以改善可見性,但設定不一致時,也可能造成解析成功、連線失敗。
不同平台的檢查重點
Windows
在 Windows 上,應同時檢查系統代理伺服器、虛擬網卡狀態和 DNS 介面優先順序。部分桌面程式不會讀取系統代理伺服器,因此瀏覽器正常而其他程式直連的情況並不少見。切換接管模式後,可以重新開啟目標程式,避免既有連線繼續重用舊路徑。
macOS 與 iOS
macOS 用戶端可能使用系統代理伺服器,也可能建立網路延伸功能,兩種方式的涵蓋範圍不同。iOS 上的用戶端通常透過系統提供的 VPN 網路延伸功能接管流量,但應用程式本身的加密 DNS、區域網路存取策略和隨選連線仍會影響檢測結果。切換設定後,應讓檢測頁面重新建立連線。
Android
Android 用戶端通常透過系統 VPN 介面處理流量,並可能提供分應用程式代理伺服器或繞過清單。若只有特定應用程式的出口不變,應先查看該應用程式是否被排除。系統中的私人 DNS 也可能獨立於用戶端 DNS 策略,需要參考用戶端文件決定保留或交由線路處理。
Linux
Linux 環境的差異主要來自桌面代理伺服器、環境變數、路由表與 DNS 管理元件。圖形介面設定不一定會影響終端機程序,終端機中的代理變數也不一定會影響系統服務。排查時應分別檢查目前 shell、服務程序和虛擬網卡路由,不要假設它們共用相同設定。
介面顯示已連線但檢測失敗的排查順序
遇到連線狀態正常、出口卻沒有變化時,按照網路層次逐步檢查,通常比反覆重新安裝用戶端更有效。先確認請求是否進入用戶端,再確認用戶端將其送往哪個對外連線,最後檢查遠端線路與解析結果。
- 中斷線路並記錄目前的出口 IP 與 DNS 狀態,建立可比較的基準。
- 重新連線後,確認用戶端沒有握手、權限或設定解析錯誤。
- 檢查系統代理伺服器是否已寫入,或虛擬網卡是否成功建立並取得路由。
- 查看測試請求的連線記錄,確認它符合代理規則而非直連規則。
- 分別測試瀏覽器、終端機與目標應用程式,判斷問題是否局限於某個程式。
- 檢查瀏覽器加密 DNS、系統 DNS 與用戶端 DNS 是否彼此覆寫。
- 確認 IPv4 與 IPv6 流量都符合預期,避免只有部分協定堆疊被接管。
- 更換線路重新測試,用於區分本地設定問題與特定節點的連線問題。
若連線記錄中完全看不到測試請求,問題通常發生在應用程式與用戶端之間,應檢查代理設定、虛擬網卡權限或應用程式排除清單。若記錄顯示直連,則應重點檢查分流規則。若記錄顯示代理伺服器,但出口仍未改變,應確認檢測頁面沒有使用快取,並檢查用戶端實際選擇的遠端節點與對外連線路徑。
IEPL 專線、中轉線路與直連線路描述的是不同傳輸路徑。直連是由裝置直接連線至遠端節點;中轉會先連線至入口,再由中轉網路送往出口;IEPL 專線通常用於入口與出口之間的專線傳輸。無論採用哪種線路,網站最終觀察到的都應是設定對應的出口,而不是入口節點。出口檢查可以驗證最終來源位址,但不能只憑檢測頁面判斷整段傳輸路徑。
如何得出可信的最終結論
可靠結論來自多項結果相互印證:瀏覽器與命令列出口符合預期、DNS 查詢遵循設定策略、目標應用程式的連線記錄顯示正確的對外連線,而分流情境下的直連與代理結果也與規則一致。如果只有某個檢測網站回報異常,應更換觀察方式,並考慮資料庫位置、快取和瀏覽器網路功能造成的差異。
測試完成後,可以恢復日常使用所需的加密 DNS、分流規則和應用程式排除設定。檢查過程不要求所有流量長期使用同一個出口,而是確認每類流量都依設定執行。用戶端顯示連線成功只是起點;出口 IP、DNS 路徑和分應用程式記錄共同構成更完整的驗證流程。