先確認 v2rayN 核心、節點與本機入站連接埠運作正常,再分開檢查瀏覽器與終端機。瀏覽器重點是確認代理設定由誰控制,終端機則確認目前程序是否讀取正確的 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY。完成文中的連接埠測試、環境變數檢查與對照指令後,即可判斷問題出在客戶端、系統設定或特定應用程式。
先確認代理鏈路的三個基本狀態
「系統代理已開啟」只代表作業系統儲存了一組代理位址,不代表目標應用程式一定會使用這組位址。完整鏈路至少包含三個環節:V2Ray 或 Xray 核心正在執行、本機監聽連接埠能接受連線,以及目標應用程式願意讀取系統代理或明確指定的代理設定。任何一環中斷,都可能表現為網頁直連、要求逾時或終端機完全未經代理。
排查時不要先修改 VMess、VLESS 或路由規則。先查看 v2rayN 主介面的執行狀態與記錄。節點連線成功後,本機通常會監聽 SOCKS、HTTP 或 mixed 入站連接埠。v2rayN 7.x 常見設定使用 127.0.0.1 作為監聽位址,連接埠則以「設定」→「參數設定」中的實際值為準。本文範例將 mixed 連接埠寫為 10808,獨立 HTTP 連接埠寫為 10809;若介面顯示不同數字,所有指令都要一併替換。
確認節點
在 v2rayN 主介面選取一個訂閱節點並設為活動伺服器,重新連線後確認狀態不再持續停留在啟動或重新連線階段。
讀取連接埠
進入「設定」→「參數設定」→「基本設定」,記下本機監聽位址、mixed 連接埠或 HTTP 與 SOCKS 連接埠,不要根據舊教學猜測連接埠。
查看記錄
開啟執行記錄,確認沒有連接埠遭占用、節點位址解析失敗、TLS 交握失敗或設定載入失敗等訊息。
明確測試
先用明確指定代理的指令存取測試位址。明確代理成功後,再繼續檢查系統代理與應用程式的繼承關係。
判斷原則:明確指定 127.0.0.1 與正確連接埠仍然失敗,優先檢查本機監聽與客戶端記錄;明確指定後成功、只有瀏覽器或終端機失敗,問題範圍便已縮小至應用程式設定。
瀏覽器無效:檢查代理設定由誰控制
瀏覽器端最常見的問題不是節點失效,而是代理來源衝突。瀏覽器可能跟隨作業系統設定,也可能使用自己的網路設定,還可能由某個代理擴充功能接管。三個來源同時存在時,最後生效的位址不一定是 v2rayN 寫入系統的 127.0.0.1。
基於 Chromium 的瀏覽器通常會呼叫系統網路設定,但不同啟動參數、企業原則與擴充功能仍可能改變結果。Firefox 類瀏覽器則可獨立選擇「不使用代理」、「使用系統代理設定」或「手動代理設定」。因此,同一台電腦上一個瀏覽器正常、另一個瀏覽器直連,並不矛盾。
暫停擴充功能
暫時停用所有會修改代理伺服器、PAC 或網路要求路徑的瀏覽器擴充功能,完全退出瀏覽器後重新開啟。
核對系統
在 v2rayN 系統匣選單選擇設定系統代理的模式,再開啟作業系統代理頁面,確認伺服器是 127.0.0.1,連接埠與客戶端目前的 HTTP 或 mixed 入站一致。
檢查瀏覽器
如果瀏覽器提供獨立的網路設定,先選擇「使用系統代理設定」。需要手動填寫時,HTTP 代理填入 127.0.0.1 與對應的 HTTP 連接埠。
清理舊程序
關閉所有瀏覽器視窗,並在工作管理員確認背景程序已退出。重新啟動後再存取頁面,避免舊程序繼續沿用啟動時讀取的代理設定。
對照測試
分別使用一般視窗與停用擴充功能後的視窗測試。如果只有原本的設定失敗,逐一重新啟用擴充功能即可找出衝突來源。
錯誤:ERR_PROXY_CONNECTION_FAILED
原因與解法:瀏覽器已嘗試連線代理,但 127.0.0.1 對應的連接埠沒有服務監聽。回到 v2rayN 查看核心狀態,並將瀏覽器連接埠改成「參數設定」中顯示的目前值。
錯誤:ERR_TUNNEL_CONNECTION_FAILED
原因與解法:瀏覽器已連上 HTTP 代理,但代理無法為 HTTPS 要求建立通道。檢查節點記錄、協定參數與路由阻擋規則,再換用已知可用的節點重新測試。
錯誤:The proxy server is refusing connections
原因與解法:瀏覽器手動代理位址的可達性測試失敗,常見原因是誤將 SOCKS 連接埠填入 HTTP 連接埠。改用 mixed 連接埠,或在 SOCKS 設定欄填入正確連接埠並選擇 SOCKS5。
也要檢查「略過代理」的位址清單。localhost、127.0.0.1 與區域網路位址通常應直接連線,但若清單中存在過於寬泛的萬用字元規則,一般網站也可能繞過代理。先備份自訂略過項目,再保留必要的本機位址進行測試。確認恢復正常後,再逐條加回工作所需的規則。
終端機無效:環境變數必須進入目前程序
多數終端機程式不會主動讀取桌面系統代理。curl、套件管理器、執行環境工具與腳本可能各自實作代理邏輯,最通用的做法是為目前的終端機工作階段設定 HTTP_PROXY、HTTPS_PROXY 與 ALL_PROXY。變數名稱大小寫的相容性取決於程式,因此排查期間可以同時設定大寫與小寫版本。
環境變數只會影響設定完成後啟動的程序。已開啟的終端機、編輯器內建終端機或背景工作不會自動取得新變數。修改系統層級環境變數後,應關閉原視窗並開啟新的終端機;只在目前工作階段執行指定,關閉視窗後設定便會自然失效。
PowerShell 目前工作階段
$env:HTTP_PROXY = "http://127.0.0.1:10808"
$env:HTTPS_PROXY = "http://127.0.0.1:10808"
$env:ALL_PROXY = "socks5h://127.0.0.1:10808"
$env:NO_PROXY = "localhost,127.0.0.1"
Get-ChildItem Env:HTTP_PROXY
Get-ChildItem Env:HTTPS_PROXY
Get-ChildItem Env:ALL_PROXY
curl.exe -I --proxy http://127.0.0.1:10808 https://v2ray-os.com/zh-CN/
PowerShell 中的 curl 可能被對映為其他指令,因此範例明確呼叫 curl.exe。`-I` 只要求回應標頭,適合快速判斷連線是否建立。如果 mixed 連接埠不是 10808,應改成 v2rayN 目前顯示的連接埠。使用獨立 HTTP 入站時,則將位址替換為類似 `http://127.0.0.1:10809` 的實際設定。
命令列與常見 Shell
export HTTP_PROXY="http://127.0.0.1:10808"
export HTTPS_PROXY="http://127.0.0.1:10808"
export ALL_PROXY="socks5h://127.0.0.1:10808"
export NO_PROXY="localhost,127.0.0.1"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export all_proxy="$ALL_PROXY"
export no_proxy="$NO_PROXY"
env | grep -i proxy
curl -I --proxy socks5h://127.0.0.1:10808 https://v2ray-os.com/zh-CN/
錯誤:curl: (7) Failed to connect to 127.0.0.1 port 10808
原因與解法:本機連接埠沒有監聽,或指令使用了錯誤的連接埠。確認 v2rayN 核心已啟動,再從「設定」→「參數設定」讀取目前的入站連接埠。
錯誤:curl: (5) Could not resolve proxy
原因與解法:代理變數格式錯誤,常見原因是遺漏通訊協定標頭、引號未完整閉合或位址中混入空格。請依照 `http://127.0.0.1:10808` 的完整格式重新設定。
錯誤:curl: (35) OpenSSL SSL_connect
原因與解法:本機代理通常已連線成功,但遠端 TLS 建立連線失敗。查看核心記錄中的伺服器名稱、時間差異與交握資訊,並使用另一個可用的訂閱節點進行對照。
錯誤:connection reset by peer
原因與解法:連線建立後遭遠端或中間線路重設。先排除節點異常,再檢查 VMess 或 VLESS 的傳輸層、TLS 與伺服器名稱是否和訂閱提供的內容一致。
注意:`socks5://` 通常由本機解析目標網域名稱,`socks5h://` 則會將網域名稱交由代理端處理。遇到終端機中網域名稱連線失敗、直接使用 IP 卻能連線時,優先使用 `socks5h://` 重新測試,並繼續檢查 DNS 設定。
用對照測試定位系統代理、連接埠與路由問題
一次只變更一個變數,才能看出故障層級。建議依序執行直連要求、明確指定 HTTP 代理的要求,以及明確指定 SOCKS5 的要求,並記錄狀態碼、連線時間與記錄變化。如果直連成功而兩種明確代理都失敗,問題在客戶端或節點;如果明確代理成功而預設要求直連,問題在系統代理繼承或環境變數。
| 測試結果 | 優先判斷 | 下一步 |
|---|---|---|
| 瀏覽器和明確指令都失敗 | 核心未執行、連接埠錯誤或節點不可用 | 查看 v2rayN 記錄,核對 127.0.0.1 與監聽連接埠,切換可用節點 |
| 明確指令成功,瀏覽器失敗 | 瀏覽器未跟隨系統代理或發生擴充功能衝突 | 關閉代理擴充功能,重新啟動瀏覽器,檢查獨立網路設定 |
| 瀏覽器成功,終端機失敗 | 終端機程式未讀取系統代理 | 設定 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY,再啟動新的程序 |
| HTTP 成功,SOCKS 失敗 | SOCKS 連接埠或代理類型填寫錯誤 | 讀取實際 SOCKS 或 mixed 連接埠,使用 socks5h 重新測試 |
| 連線成功但部分網域名稱失敗 | DNS 或路由分流規則不相符 | 檢查網域名稱解析策略、規則命中結果與最終出站標籤 |
結論:明確代理測試是分界線
先讓 curl 透過明確指定的 127.0.0.1 與連接埠成功連線,再處理瀏覽器與終端機的繼承問題。如此可避免在節點、系統設定與應用程式設定之間反覆試錯。
檢查路由規則是否讓測試要求直接連線
代理連接埠可用,不代表所有要求都會經由同一個出站。v2rayN 的路由設定可以依網域名稱、IP、協定或入站標籤選擇直連、代理或阻擋。測試位址命中直連規則時,頁面可以開啟,但從結果看起來卻像是「沒有經過代理」。這是規則行為,不是系統代理失效。
- 在客戶端記錄中搜尋測試網域名稱,確認要求是否進入本機入站。
- 查看該要求命中的規則與出站標籤,區分 direct、proxy 與 block。
- 暫時切換至簡單的全域代理規則進行對照,測試完成後恢復原有路由分流。
- 訂閱更新後重新選取活動節點,避免繼續使用已失效的舊伺服器記錄。
- 修改 DNS 或路由後重新啟動核心,再關閉並重新啟動目標應用程式。
常見細節與最終檢查順序
系統代理狀態頻繁切換時,作業系統頁面可能顯示舊值,瀏覽器也可能保留啟動時讀取的設定。穩定的處理順序是:退出目標應用程式,確認核心與節點,重新設定系統代理,再啟動應用程式。不要同時切換節點、修改連接埠、調整 DNS 與重寫路由,否則新問題會掩蓋原始線索。
v2rayN 顯示已連線,為什麼瀏覽器仍然直連?
先進入作業系統代理頁面確認位址與連接埠,再關閉瀏覽器代理擴充功能。完全退出瀏覽器背景程序後重新開啟,並在客戶端記錄中檢查存取的網域名稱是否出現。
終端機設定了 HTTP_PROXY,為什麼新指令仍然無效?
列印目前程序的環境變數,確認變數值包含通訊協定、位址與連接埠。部分工具只讀取小寫變數,可同時設定 http_proxy 與 https_proxy,並在新的終端機視窗中重新測試。
HTTP_PROXY 和 ALL_PROXY 應該同時設定嗎?
排查階段可以同時設定。HTTP 與 HTTPS 要求優先使用對應變數,需要 SOCKS5 或由代理端解析網域名稱的工具則可能讀取 ALL_PROXY。確認特定工具的行為後,再保留必要的變數。
切換節點後必須重新啟動瀏覽器嗎?
切換節點通常不需要重新啟動瀏覽器,但連接埠、系統代理模式或 PAC 設定發生變更時應重新啟動。若舊連線長時間重複使用,也可以先關閉所有視窗再測試。
訂閱更新成功後仍然無法連線,該怎麼辦?
訂閱更新只代表設定清單已成功擷取,不代表其中每個節點都可用。選擇另一個節點,核對系統時間,並從核心記錄判斷是解析、交握還是連線逾時。
還原設定前的檢查清單
- 確認 v2rayN 目前的活動節點來自最新訂閱,核心記錄沒有持續重新啟動。
- 確認瀏覽器、終端機指令與客戶端介面使用同一個本機連接埠。
- 確認瀏覽器只保留一個代理設定來源,避免系統設定與擴充功能互相覆寫。
- 確認終端機環境變數已進入目前程序,並使用完整的通訊協定前綴。
- 確認測試網域名稱沒有被 NO_PROXY、瀏覽器略過清單或直連路由提前排除。
- 確認修改設定後重新連線核心,並重新啟動需要讀取代理設定的應用程式。
最終判斷:先分應用程式,再分協定
瀏覽器正常而終端機失敗,直接檢查環境變數;終端機明確代理正常而瀏覽器失敗,直接檢查代理來源;兩邊同時失敗,回到核心、監聽連接埠與節點記錄。依照這個順序處理,通常不需要重建訂閱或大幅修改設定。