本文速覽

先確認 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;若介面顯示不同數字,所有指令都要一併替換。

127.0.0.1
本機代理監聽位址
10808
範例 mixed 或 SOCKS 連接埠
10809
範例獨立 HTTP 連接埠
3 層
核心、連接埠、應用程式
  1. 確認節點

    在 v2rayN 主介面選取一個訂閱節點並設為活動伺服器,重新連線後確認狀態不再持續停留在啟動或重新連線階段。

  2. 讀取連接埠

    進入「設定」→「參數設定」→「基本設定」,記下本機監聽位址、mixed 連接埠或 HTTP 與 SOCKS 連接埠,不要根據舊教學猜測連接埠。

  3. 查看記錄

    開啟執行記錄,確認沒有連接埠遭占用、節點位址解析失敗、TLS 交握失敗或設定載入失敗等訊息。

  4. 明確測試

    先用明確指定代理的指令存取測試位址。明確代理成功後,再繼續檢查系統代理與應用程式的繼承關係。

判斷原則:明確指定 127.0.0.1 與正確連接埠仍然失敗,優先檢查本機監聽與客戶端記錄;明確指定後成功、只有瀏覽器或終端機失敗,問題範圍便已縮小至應用程式設定。

瀏覽器無效:檢查代理設定由誰控制

瀏覽器端最常見的問題不是節點失效,而是代理來源衝突。瀏覽器可能跟隨作業系統設定,也可能使用自己的網路設定,還可能由某個代理擴充功能接管。三個來源同時存在時,最後生效的位址不一定是 v2rayN 寫入系統的 127.0.0.1。

基於 Chromium 的瀏覽器通常會呼叫系統網路設定,但不同啟動參數、企業原則與擴充功能仍可能改變結果。Firefox 類瀏覽器則可獨立選擇「不使用代理」、「使用系統代理設定」或「手動代理設定」。因此,同一台電腦上一個瀏覽器正常、另一個瀏覽器直連,並不矛盾。

  1. 暫停擴充功能

    暫時停用所有會修改代理伺服器、PAC 或網路要求路徑的瀏覽器擴充功能,完全退出瀏覽器後重新開啟。

  2. 核對系統

    在 v2rayN 系統匣選單選擇設定系統代理的模式,再開啟作業系統代理頁面,確認伺服器是 127.0.0.1,連接埠與客戶端目前的 HTTP 或 mixed 入站一致。

  3. 檢查瀏覽器

    如果瀏覽器提供獨立的網路設定,先選擇「使用系統代理設定」。需要手動填寫時,HTTP 代理填入 127.0.0.1 與對應的 HTTP 連接埠。

  4. 清理舊程序

    關閉所有瀏覽器視窗,並在工作管理員確認背景程序已退出。重新啟動後再存取頁面,避免舊程序繼續沿用啟動時讀取的代理設定。

  5. 對照測試

    分別使用一般視窗與停用擴充功能後的視窗測試。如果只有原本的設定失敗,逐一重新啟用擴充功能即可找出衝突來源。

錯誤: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、協定或入站標籤選擇直連、代理或阻擋。測試位址命中直連規則時,頁面可以開啟,但從結果看起來卻像是「沒有經過代理」。這是規則行為,不是系統代理失效。

常見細節與最終檢查順序

系統代理狀態頻繁切換時,作業系統頁面可能顯示舊值,瀏覽器也可能保留啟動時讀取的設定。穩定的處理順序是:退出目標應用程式,確認核心與節點,重新設定系統代理,再啟動應用程式。不要同時切換節點、修改連接埠、調整 DNS 與重寫路由,否則新問題會掩蓋原始線索。

v2rayN 顯示已連線,為什麼瀏覽器仍然直連?

先進入作業系統代理頁面確認位址與連接埠,再關閉瀏覽器代理擴充功能。完全退出瀏覽器背景程序後重新開啟,並在客戶端記錄中檢查存取的網域名稱是否出現。

終端機設定了 HTTP_PROXY,為什麼新指令仍然無效?

列印目前程序的環境變數,確認變數值包含通訊協定、位址與連接埠。部分工具只讀取小寫變數,可同時設定 http_proxy 與 https_proxy,並在新的終端機視窗中重新測試。

HTTP_PROXY 和 ALL_PROXY 應該同時設定嗎?

排查階段可以同時設定。HTTP 與 HTTPS 要求優先使用對應變數,需要 SOCKS5 或由代理端解析網域名稱的工具則可能讀取 ALL_PROXY。確認特定工具的行為後,再保留必要的變數。

切換節點後必須重新啟動瀏覽器嗎?

切換節點通常不需要重新啟動瀏覽器,但連接埠、系統代理模式或 PAC 設定發生變更時應重新啟動。若舊連線長時間重複使用,也可以先關閉所有視窗再測試。

訂閱更新成功後仍然無法連線,該怎麼辦?

訂閱更新只代表設定清單已成功擷取,不代表其中每個節點都可用。選擇另一個節點,核對系統時間,並從核心記錄判斷是解析、交握還是連線逾時。

還原設定前的檢查清單

  1. 確認 v2rayN 目前的活動節點來自最新訂閱,核心記錄沒有持續重新啟動。
  2. 確認瀏覽器、終端機指令與客戶端介面使用同一個本機連接埠。
  3. 確認瀏覽器只保留一個代理設定來源,避免系統設定與擴充功能互相覆寫。
  4. 確認終端機環境變數已進入目前程序,並使用完整的通訊協定前綴。
  5. 確認測試網域名稱沒有被 NO_PROXY、瀏覽器略過清單或直連路由提前排除。
  6. 確認修改設定後重新連線核心,並重新啟動需要讀取代理設定的應用程式。

最終判斷:先分應用程式,再分協定

瀏覽器正常而終端機失敗,直接檢查環境變數;終端機明確代理正常而瀏覽器失敗,直接檢查代理來源;兩邊同時失敗,回到核心、監聽連接埠與節點記錄。依照這個順序處理,通常不需要重建訂閱或大幅修改設定。