系統代理未生效怎麼辦:分別排查瀏覽器與命令列終端機

系統代理已開啟但流量未經過用戶端?瀏覽器與終端機採用的代理機制不同,本文分別整理檢查順序與解決方法。

本文速覽

本文適合這類情況:v2rayN 顯示節點連線正常、系統代理也已開啟,但瀏覽器或命令列仍直接連線、逾時或無法存取。排查分為三層:先確認本機代理埠確實正在監聽,再判斷應用程式是否讀取系統代理,最後檢查 DNS、路由規則與終端機環境變數。完成後即可判斷問題出在用戶端、本機代理設定,還是特定應用程式內部。

先釐清系統代理會影響哪些流量

「啟動 v2rayN」和「應用程式流量已進入代理」是兩回事。v2rayN 執行 Xray 核心後,會在本機迴路位址建立 SOCKS、HTTP 或混合入站埠;系統代理則會將其中一個埠寫入作業系統設定。只有主動讀取該設定的應用程式,才會把請求交給本機埠。節點顯示已連線,只能代表用戶端具備對外連線條件,無法證明瀏覽器、終端機或其他程式已使用代理。

以 v2rayN 7.x 的常見設定為例,本機 SOCKS 埠可能是 127.0.0.1:10808,HTTP 埠可能是 127.0.0.1:10809。實際埠號應以「設定」→「參數設定」中的本機監聽設定為準;若曾修改起始埠,測試指令也要同步調整。將 HTTP 請求送到 SOCKS 埠,或把 SOCKS 位址填成 HTTP 位址,都會表現為連線失敗。

應用程式發起請求讀取代理設定連線至本機埠規則比對與分流節點代理出站
應用程式類型 通常讀取的設定 首先檢查的位置
Chromium 系瀏覽器 通常會跟隨 Windows 系統代理,但可能受到企業原則或瀏覽器擴充功能影響 系統「網路和 Internet」→「代理」
Firefox 可選擇使用系統代理,也可儲存獨立代理設定 瀏覽器「設定」→「網路設定」
PowerShell、curl、套件管理工具 取決於工具本身是讀取環境變數還是命令列參數,不應假設會自動跟隨系統設定 HTTP_PROXYHTTPS_PROXY 與工具設定
v2rayNG、v2flyNG 在 Android 上透過系統 VPN 服務接管所選應用程式的流量 應用程式代理開關、個別應用程式設定與路由規則

結論:先判斷應用程式是否已進入本機埠

只要瀏覽器與終端機的結果不同,就應優先檢查兩者各自的代理入口,不要反覆更換同一個節點。節點、訂閱與協定參數完全相同時,應用程式是否讀取代理設定,才是最常見的分界點。

先確認 v2rayN 本機埠是否可用

開始檢查瀏覽器前,應先排除用戶端埠未監聽、埠號被占用或核心未成功啟動的可能性。將 v2rayN 切換到準備使用的節點,查看主介面或執行記錄是否出現啟動成功訊息,再核對目前的 Core 類型。VMess、VLESS 等節點參數由核心處理,系統代理本身不會修正伺服器位址、埠號、傳輸層或使用者識別資訊的錯誤。

  1. 確認核心已啟動

    在 v2rayN 主介面選取節點並設為作用中伺服器,開啟執行記錄。正常情況下會看到核心啟動與本機入站監聽資訊;若視窗持續顯示重新啟動或結束,應先處理記錄中的設定錯誤。

  2. 核對監聽埠

    進入「設定」→「參數設定」,記下本機 SOCKS 與 HTTP 埠。本文範例使用 SOCKS 10808、HTTP 10809,不要直接套用與介面不一致的數字。

  3. 設定系統代理

    開啟 v2rayN 的「系統代理」選單,選擇自動設定系統代理。接著進入 Windows「設定」→「網路和 Internet」→「代理」,確認位址指向 127.0.0.1,且埠號與用戶端目前的 HTTP 監聽埠一致。

  4. 測試迴路連線

    在 PowerShell 中執行 Test-NetConnection 127.0.0.1 -Port 10809。結果中的 TcpTestSucceeded 應為 True;若為 False,問題仍在本機監聽或埠號占用。

  5. 進行明確代理測試

    執行 curl.exe --proxy http://127.0.0.1:10809 -I https://example.com。在正常的本機測試中,迴路建立連線的時間通常低於 0.01 秒;遠端回應時間則取決於節點線路。

錯誤:curl: (7) Failed to connect to 127.0.0.1 port 10809

原因與解法:指定埠沒有程式監聽,常見原因包括核心未啟動、HTTP 埠填寫錯誤,或埠號已被其他程式占用。返回「設定」→「參數設定」核對埠號,重新啟動核心後再測試。

錯誤:failed to start app/proxyman/inbound: failed to listen TCP

原因與解法:本機監聽埠發生衝突。關閉占用該埠的程式,或在參數設定中改用未占用的埠,例如將 HTTP 埠從 10809 改為 10909,再讓系統代理同步到新埠。

瀏覽器未使用代理時的檢查順序

如果明確的 curl 代理請求成功,但瀏覽器存取時仍直接連線,表示節點與本機埠大致可用,下一步應聚焦於瀏覽器讀取代理設定的方式。先完全結束瀏覽器再重新開啟,避免舊程序保留連線池或啟動時讀取的代理狀態。只關閉單一分頁通常不足以重建所有網路程序。

Chromium 系瀏覽器通常會呼叫 Windows 系統代理,但獨立代理擴充功能、受管理原則與啟動參數可能覆寫系統設定。Firefox 則可在自己的網路設定中選擇「不使用代理」、「使用系統代理設定」或「手動代理設定」。若只有 Firefox 失敗,應進入「設定」→「一般」→「網路設定」,選擇使用系統代理,或依 v2rayN 目前埠號填寫 HTTP 與 SOCKS 位址。

錯誤:ERR_PROXY_CONNECTION_FAILED

原因與解法:瀏覽器已嘗試使用代理,但無法連線至設定中的本機位址。核對 Windows 系統代理埠與 v2rayN HTTP 監聽埠,並確認核心程序仍在執行。

錯誤:ERR_TUNNEL_CONNECTION_FAILED

原因與解法:瀏覽器已連線到 HTTP 代理,但 HTTPS 通道未能建立。先使用同一埠號執行明確的 curl 請求,再查看執行記錄中是否存在節點逾時、TLS 參數錯誤或路由阻擋。

錯誤:PR_CONNECT_RESET_ERROR

原因與解法:連線在建立過程中被重設,不能只根據這則提示判斷系統代理失效。將 Firefox 改為使用系統代理後重試,並對照 v2rayN 記錄確認請求是否已進入核心。

為什麼一個瀏覽器能開啟,另一個卻不行?

先比較兩者的代理來源。一個可能跟隨 Windows 系統代理,另一個則儲存了手動埠號。將獨立設定改為 127.0.0.1 與目前的 HTTP 埠,完全結束兩個瀏覽器後再測試。

關閉擴充功能後仍顯示直接連線怎麼辦?

檢查瀏覽器捷徑是否附帶代理啟動參數,並查看系統代理例外清單。接著執行明確的 curl 代理測試;明確測試成功而瀏覽器失敗時,應繼續排查瀏覽器原則與設定檔。

開啟系統代理後區域網路頁面打不開?

在系統代理的略過清單中保留本機位址,或在 v2rayN 路由規則中讓私有位址直接連線。常見私有網段包括 10.0.0.0/8172.16.0.0/12192.168.0.0/16

瀏覽器重新啟動後代理又消失了?

檢查 v2rayN 的系統代理模式是否設為「不變更系統代理」,並確認結束用戶端時是否清除了系統設定。若需要長期使用,請在用戶端啟動後重新選擇自動設定系統代理。

命令列終端機需要個別設定代理

命令列工具不能一概視為「自動讀取系統代理」。同一個終端機中,curl、PowerShell 模組、執行環境套件管理器與獨立下載程式可能採用不同策略。最可靠的驗證方式,是先為單一指令明確傳入代理位址,再決定是否設定目前工作階段的環境變數。如此可避免把工具設定問題誤判為 v2rayN 節點故障。

HTTP 代理位址應使用 v2rayN 的 HTTP 監聽埠,例如 http://127.0.0.1:10809。需要使用 SOCKS 時,可寫成 socks5h://127.0.0.1:10808;其中 socks5h 代表由代理端解析目標網域,可減少本機 DNS 解析結果與代理出站結果不一致的問題。具體工具是否支援此寫法,應以該指令本身的代理參數為準。

# PowerShell:僅影響目前視窗中之後啟動的程式
$env:HTTP_PROXY="http://127.0.0.1:10809"
$env:HTTPS_PROXY="http://127.0.0.1:10809"
$env:NO_PROXY="localhost,127.0.0.1"

# 明確測試 HTTP 代理
curl.exe --proxy http://127.0.0.1:10809 -I https://example.com

# 明確測試 SOCKS,並由代理端解析網域
curl.exe --proxy socks5h://127.0.0.1:10808 -I https://example.com
:: Windows 命令提示字元:僅設定目前視窗
set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
set NO_PROXY=localhost,127.0.0.1

# macOS 或 Linux 的 shell:僅設定目前工作階段
export HTTP_PROXY=http://127.0.0.1:10809
export HTTPS_PROXY=http://127.0.0.1:10809
export NO_PROXY=localhost,127.0.0.1
現象 判斷 處理方式
瀏覽器成功,curl 直接連線 curl 未採用系統代理 使用 --proxy 或設定目前工作階段的環境變數
明確 HTTP 代理成功,環境變數失敗 變數名稱、作用域或工具讀取規則有誤 同時設定大寫變數與工具要求的變數,重新啟動對應的終端機程序
HTTP 埠失敗,SOCKS 埠成功 HTTP 入站埠錯誤或未監聽 核對參數設定,不要混用 1080810809
本機位址也被代理 缺少略過設定 設定 NO_PROXY=localhost,127.0.0.1

錯誤:curl: (5) Could not resolve proxy: 127.0.0.1:10809

原因與解法:代理變數格式可能填寫錯誤,例如將位址與協定拆成無法辨識的值。將變數完整寫成 http://127.0.0.1:10809,清除多餘引號與空格後重新開啟終端機。

錯誤:curl: (97) connection to proxy closed

原因與解法:常見原因是代理協定與埠號類型不匹配。HTTP 位址應連接 HTTP 埠,SOCKS 位址應連接 SOCKS 埠;核對後再分別執行兩個明確測試指令。

結論:終端機排查以明確參數為基準

單一帶有 --proxy 的指令成功,表示本機埠與節點連線已可用。接下來應修正環境變數或特定工具設定,而不是繼續切換訂閱、協定或路由規則。

埠號正常仍無法存取時,檢查 DNS 與路由

本機埠可連線,只能證明應用程式成功抵達代理入口。請求進入 Xray 後,還會經過網域解析、路由比對與代理出站。若規則將目標網域送往直接連線出口,外部觀察結果仍可能顯示為本地網路;若節點伺服器的網域解析失敗,所有經該節點轉送的請求都可能逾時。此時應在重現問題的同時觀察執行記錄,而不是只查看瀏覽器錯誤頁面。

先將測試範圍縮小為一個節點、一個瀏覽器與一個明確的 curl 指令。暫時停用複雜的自訂路由,保留私有位址直接連線,其餘測試請求交由代理出站。若這樣恢復,問題通常位於規則順序、網域集合或出站標籤;若仍然失敗,則檢查訂閱中的伺服器位址、埠號、VMess 或 VLESS 使用者參數,以及 TLS 與傳輸方式是否與伺服器端一致。

  1. 在 v2rayN 執行記錄中找到測試時間點,確認能看到目標網域或目標位址。
  2. 看到請求但顯示直接連線時,檢查路由規則命中的出站標籤與規則優先順序。
  3. 看到 timeout 時,區分連線至節點伺服器逾時,還是連線至最終目標逾時。
  4. 看到網域解析失敗時,核對節點伺服器位址拼寫,並切換至可用的 DNS 後重新啟動核心。
  5. 完全看不到請求時,返回應用程式代理設定繼續排查,不要先修改節點協定參數。

錯誤:failed to find an available destination

原因與解法:核心沒有取得可用的目標位址,可能是網域解析失敗或路由結果無法使用。檢查節點伺服器位址拼寫、DNS 設定與路由出站標籤,修改後重新啟動核心。

錯誤:dial tcp: i/o timeout

原因與解法:連線至節點伺服器或最終目標的 TCP 連線超過等待時間。先改用同一訂閱中的另一個節點進行對照,再核對伺服器埠號、本機時間與網路是否允許該連線。

錯誤:invalid user

原因與解法:節點身分參數未獲伺服器接受,常見於訂閱內容過期或手動編輯時填錯使用者識別資訊。這與系統代理開關無關,應更新對應的訂閱群組並重新選擇節點。

根據結果選擇對應的解決方法

排查結束後,不必同時修改所有設定。最有效的方法是保留一個已知可用的節點,根據測試結果決定下一步:迴路埠失敗就處理核心與埠號;明確代理成功但瀏覽器失敗就處理瀏覽器代理來源;瀏覽器成功但終端機失敗就處理命令參數與環境變數;所有應用程式都能在記錄中留下請求但出站失敗,再檢查 DNS、路由與節點設定。

修改埠號後,系統代理仍是舊數字?

先在 v2rayN 的「系統代理」選單中清除系統代理,再重新選擇自動設定。接著前往 Windows「設定」→「網路和 Internet」→「代理」,確認新埠號已寫入。

結束 v2rayN 後,瀏覽器全部打不開?

系統可能仍保留指向本機埠的代理設定,但用戶端已停止監聽。重新啟動用戶端,或在系統代理選單中執行清除,再確認 Windows 手動代理已關閉。

只有終端機中的某個工具無法運作?

先確認該工具是否支援 HTTP_PROXYHTTPS_PROXY 或獨立代理參數。使用 curl 明確代理成功後,問題已縮小至該工具本身的設定,不需要重新安裝 v2rayN。

更新訂閱後突然全部逾時?

手動更新對應的訂閱群組,重新選擇節點並檢查執行記錄。若本機埠仍可連線但多個節點同時逾時,應比對訂閱參數、系統時間與目前網路環境。

Android 上也需要設定 127.0.0.1 埠號嗎?

通常不需要照搬桌面系統的代理步驟。v2rayNG 與 v2flyNG 會透過 Android 的 VPN 服務接管流量,應檢查應用程式連線狀態、個別應用程式代理、路由模式與執行記錄。

最終判斷:用三次測試鎖定故障層級

依序執行本機埠測試、明確代理請求與應用程式內存取。前一步失敗就停在該層修復;前兩步成功而第三步失敗時,只檢查特定應用程式。這個順序能避免埠號錯誤時反覆修改路由,也能避免終端機尚未設定代理時誤刪可用節點。

下載用戶端 查看四平台版本