開啟系統代理,只代表系統已設定代理,並不表示每個應用程式都會使用它。本文以桌面版 v2rayN 為例,先確認本機監聽狀態並測試明確指定代理的請求,再分別檢查瀏覽器設定與終端機環境變數,最後依據連線、解析與憑證錯誤判斷問題。適用於「網頁無法開啟」、「瀏覽器可以連線但命令列逾時」或「關閉用戶端後仍無法上網」等情況。
系統代理與 TUN:先釐清流量接管範圍
系統代理是供應用程式讀取的連線設定,不是強制所有流量都經過代理的開關。遵循系統設定的瀏覽器會連線至本機代理連接埠;不理會這項設定的命令列工具,可能仍會直接連上網際網路。v2rayN 的 TUN 模式則透過虛擬網路介面與路由接管流量,會牽涉權限、路由和 DNS,不能與系統代理混為一談。
這段連線流程中,任何一個環節中斷,都可能導致網頁無法載入。系統設定正確但核心未啟動,是本機入口問題;本機入口正常但節點連線失敗,則是輸出連線問題;只有特定瀏覽器無法連線時,應優先檢查該瀏覽器的代理設定。排查時先只使用一種流量接管方式,暫時關閉 TUN 和其他代理工具,避免多條連線路徑交疊,難以判斷請求實際經過哪裡。
- 瀏覽器和終端機都無法連線:先測試本機連接埠,再查看節點與路由記錄。
- 瀏覽器無法連線,但明確指定代理的命令可用:優先檢查擴充功能、PAC 和瀏覽器獨立代理設定。
- 瀏覽器可用,但終端機無法連線:優先檢查環境變數、工具設定和執行環境。
- 只有部分網域無法連線:檢查略過清單、網域路由、DNS 和目標服務狀態。
本機監聽:先測試明確指定代理的連線
開啟 v2rayN,確認已選取節點,並查看執行記錄是否有啟動失敗或連接埠遭占用的訊息。接著從目前的用戶端設定或實際執行設定中確認監聽位址、連接埠及入口類型。以下以 127.0.0.1:10808 作為示範入口,假設它接受 HTTP 代理連線;這並非所有版本的預設連接埠,執行前請務必換成自己的實際設定。
在 Windows 的 PowerShell 中,可以用以下命令測試連接埠,再明確指定代理,請求連線至公開測試網域。使用 curl.exe 是為了避免某些 PowerShell 環境將 curl 解讀為其他命令。範例使用 GET 並捨棄回應本文,避免部分網站不接受 HEAD 請求而造成誤判。
Test-NetConnection -ComputerName 127.0.0.1 -Port 10808
curl.exe --noproxy "" --proxy http://127.0.0.1:10808 --connect-timeout 5 --max-time 20 --output NUL --write-out "HTTP=%{http_code}\n" https://example.com/
TcpTestSucceeded : True 只表示 TCP 連接埠可連線,不能證明該連接埠接受 HTTP 代理連線,更不能證明遠端節點可用。明確指定代理的請求取得 HTTP 狀態碼,才表示至少收到 HTTP 回應;若收到 403 或其他拒絕狀態,還需確認回應來自目標網站還是中間設備。這項測試也只涵蓋一個網域,不能取代完整的實際使用測試。
結論:明確指定代理測試成功後,再調整瀏覽器
如果明確指定本機代理的請求已成功,先保持節點和核心設定不變,只調整無法連線的應用程式代理入口;若測試失敗,先處理監聽或輸出連線問題,不要反覆修改瀏覽器選項。
瀏覽器排查:擴充功能、PAC 與略過清單
瀏覽器可能同時使用系統設定、代理擴充功能和獨立設定。先記下目前設定,再逐項檢查;每次只修改一個選項,並瀏覽同一個網址進行測試。換了瀏覽器就能開啟網頁,不代表節點已修復;更可能是兩個瀏覽器使用了不同的連線路徑。
-
檢查系統代理入口
在 Windows 11 開啟「設定」→「網路和網際網路」→「Proxy」,查看「手動 Proxy 設定」中的位址和連接埠,確認與用戶端目前的監聽設定一致。如果使用 PAC,請檢查「使用設定指令碼」中的指令碼網址;不要把指令碼 URL 當成代理伺服器位址。
-
暫停代理擴充功能
在 Chrome 開啟「擴充功能」→「管理擴充功能」,暫時停用控制代理的擴充功能。接著前往「設定」→「系統」→「開啟電腦的 Proxy 設定」核對系統設定。如果畫面顯示設定由組織管理,請檢查裝置原則;一般開關可能無法覆寫原則。
-
確認瀏覽器獨立設定
在 Firefox 開啟「設定」→「一般」→「網路設定」→「設定」,確認選取的是「使用系統 Proxy 設定」還是「手動 Proxy 設定」。如果選擇手動設定,連接埠和代理類型都必須與本機入口一致;不要把 HTTP 入口誤填到 SOCKS 欄位。
-
檢查略過條件
檢查系統代理例外、瀏覽器的「不使用 Proxy」清單和 PAC 執行結果。如果測試網域符合略過條件,請求就會直接連線;PAC 中的
DIRECT代表直接連線,PROXY 127.0.0.1:10808才代表使用對應的 HTTP 代理入口。 -
重新建立連線
關閉瀏覽器所有視窗後重新啟動,排除沿用舊連線的影響。無痕視窗不保證所有擴充功能都會停用,也不會自動略過系統代理;若要進行更單純的對照測試,可使用未安裝擴充功能的暫存瀏覽器設定檔。
PAC 是依據 URL 或主機名稱決定連線方式的指令碼,不是「啟用後所有流量都會走代理」。如果指令碼無法存取、回傳舊連接埠,或規則指定目標網域直接連線,網頁仍可能無法開啟。可暫時改用已確認可用的手動代理入口進行比對;如果問題消失,再恢復 PAC 並檢查規則。測試完成後,請還原原本的企業網路或區域網路例外,避免影響內部服務。
終端機排查:http_proxy 與工具本身的設定
命令列工具不一定會讀取系統代理。先使用上方的 --proxy 明確指定入口,確認可用後再設定環境變數。不要直接修改全域設定:先在目前的終端機工作階段測試,確認有效後再決定是否要永久保存。新開的終端機、編輯器內建終端機和背景服務可能會繼承不同的環境設定,不能根據單一視窗的結果推斷其他處理程序。
PowerShell:只修改目前工作階段
Get-ChildItem Env: | Where-Object Name -Match 'proxy'
$env:http_proxy = "http://127.0.0.1:10808"
$env:https_proxy = "http://127.0.0.1:10808"
$env:no_proxy = "localhost,127.0.0.1,::1"
curl.exe --connect-timeout 5 --max-time 20 --output NUL --write-out "HTTP=%{http_code}\n" https://example.com/
https_proxy 通常用來指定連線至 HTTPS 目標時使用的代理,其值不必以 https:// 開頭。不同工具對變數名稱大小寫的支援方式各異;curl 對 http_proxy 的大小寫處理較特殊,使用小寫名稱較方便在不同環境間重複使用。檢查變數時,也要留意 ALL_PROXY 和 NO_PROXY;後者可能會讓目標網域略過代理。
macOS 與 Linux:檢查目前的 shell
env | grep -i proxy
export http_proxy='http://127.0.0.1:10808'
export https_proxy='http://127.0.0.1:10808'
export no_proxy='localhost,127.0.0.1,::1'
curl --connect-timeout 5 --max-time 20 --output /dev/null --write-out 'HTTP=%{http_code}\n' https://example.com/
| 狀況 | 優先檢查項目 | 處理方式 |
|---|---|---|
| 明確指定代理成功,一般請求失敗 | 未讀取環境變數或符合略過條件 | 核對環境變數與工具文件,縮小 no_proxy 範圍後重新測試 |
| curl 成功,其他工具失敗 | 工具本身的代理設定 | 檢查啟動參數、設定檔與執行時代理選項 |
| 新終端機成功,舊終端機失敗 | 舊處理程序繼承了舊的環境設定 | 重新啟動終端機或其上層處理程序 |
| 容器或虛擬環境連線遭拒 | 127.0.0.1 指向該環境本身 | 使用該環境可連線的主機位址,並檢查監聽設定與防火牆 |
瀏覽器代理擴充功能的設定不會自動套用到終端機,終端機環境變數也不會自動改變已執行中的瀏覽器。容器內的 127.0.0.1 通常不是主機;但不要為了解決這個問題,隨意開啟所有網路介面都能連線的監聽設定。如需跨環境存取,應限制來源位址並設定適當的存取控制。
判讀錯誤:分別檢查連線、DNS 與 TLS
保留失敗命令的完整錯誤訊息,並查看同一時段的用戶端記錄。瀏覽器錯誤頁只能指出部分失敗階段;命令列的詳細輸出通常更容易分辨是「無法連線至本機入口」還是「遠端交握失敗」。分享記錄前,請移除訂閱網址、節點憑證和私人瀏覽記錄。
錯誤:ERR_PROXY_CONNECTION_FAILED
原因:瀏覽器無法連線至設定的代理入口,常見原因包括用戶端已關閉、連接埠變更,或代理擴充功能仍指向舊位址。
解決方式:測試目前位址的本機連接埠,再確認瀏覽器實際使用的代理設定;不要先更換遠端節點。
錯誤:curl: (7) Failed to connect
原因:TCP 連線未建立;需要查看後續訊息,判斷無法連線的是本機代理位址還是目標伺服器。
解決方式:如果無法連線的位址是 127.0.0.1,請檢查監聽連接埠、核心啟動記錄和連接埠占用情況;如果是遠端位址,再檢查相應的網路連線。
錯誤:curl: (5) Could not resolve proxy
原因:無法解析代理主機名稱,或變數格式錯誤,導致工具將不正確的內容當成主機名稱。
解決方式:檢查代理 URL 的協定、主機和連接埠;本機入口請使用實際的回環位址,不要將 PAC 指令碼網址填入代理變數。
錯誤:curl: (6) Could not resolve host
原因:無法解析目標主機名稱;常見原因是請求直接連線,或 SOCKS 設定要求在本機解析目標網域。
解決方式:先確認請求是否略過代理,再比較本機解析與代理端解析的結果;不要只憑這項錯誤就更改所有 DNS 設定。
錯誤:curl: (60) SSL certificate problem
原因:憑證信任鏈驗證失敗,可能與系統時間、缺少信任憑證或網路中的 TLS 檢查設備有關。
解決方式:檢查系統時間與憑證鏈,並依組織要求設定信任憑證;不要把長期停用憑證驗證當成解決方案。
如果實際入口接受 SOCKS5,可用以下兩個命令比較網域名稱的解析位置。socks5:// 會由 curl 在本機解析目標網域;socks5h:// 則會將目標網域交由代理處理。如果只有後者成功,請優先調查本機解析路徑。這裡仍使用示範連接埠,僅供 HTTP 使用的入口不能直接套用 SOCKS 命令。
curl.exe --noproxy "" --proxy socks5://127.0.0.1:10808 --connect-timeout 5 --max-time 20 --output NUL https://example.com/
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 5 --max-time 20 --output NUL https://example.com/
V2Ray 協定選擇是另一層設定:瀏覽器連線至本機 HTTP 或 SOCKS 入口後,核心再依節點設定使用 VMess、VLESS 等協定建立輸出連線。更換輸出協定,不會讓忽略系統代理的應用程式突然開始讀取這項設定。V2Ray 節點測速也只能作為特定測試條件下的參考,無法證明瀏覽器略過清單、終端機環境變數或目標網站憑證都設定正確。
還原與重新測試:避免殘留設定影響直接連線
排查完成後,請還原所有暫時修改。尤其是用戶端已關閉,但系統手動代理仍指向本機連接埠時,遵循系統設定的瀏覽器會繼續連線至沒有程式監聽的入口。請先在 v2rayN 的系統代理選單中選擇「清除系統代理」,再關閉用戶端;若用戶端無法啟動,請在作業系統的代理設定中手動關閉對應入口。
- 瀏覽器:還原必要的擴充功能與原有 PAC 設定,並確認不再指向舊連接埠。
- 終端機:關閉測試工作階段,或移除暫時設定的環境變數;如果曾將設定寫入啟動檔,也請檢查該檔案。
- 用戶端:還原原有路由與流量接管方式,避免留下用於比對測試的全域代理設定。
- 重新測試:分別記錄直接連線、明確指定代理、瀏覽器和一般終端機請求的結果,確認能重複得到相同結論。
移除目前工作階段的代理變數
# PowerShell
Remove-Item Env:http_proxy, Env:https_proxy, Env:all_proxy, Env:no_proxy -ErrorAction SilentlyContinue
# macOS / Linux shell
unset http_proxy https_proxy all_proxy no_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY NO_PROXY
以上命令會清除目前工作階段中的相關變數,不會刪除 Windows 使用者層級的永久變數,也不會修改 shell 啟動檔。執行前請先記下原值;如果這些變數是組織提供的網路設定,請還原原值,不要直接清除。使用編輯器內建終端機時,可能還需要重新啟動編輯器,才能清除從上層處理程序繼承的舊變數。
結論:依照故障範圍保留有效設定
本機入口正常就保留連接埠設定;明確指定代理成功就保留節點設定;只有特定應用程式失敗,就只處理該應用程式。每次測試只變更一個因素,通常比重新安裝用戶端或反覆更新訂閱,更容易得出可靠結論。
匯入訂閱只會取得節點設定,不會替瀏覽器設定代理,也不會自動為終端機新增環境變數。桌面版請依本文檢查 v2rayN 的入口與應用程式設定;Android 版 v2rayNG 匯入訂閱後,還需依照應用程式流程啟動 VPN 服務,這與桌面系統代理並非同一條連線路徑。如需下載 v2rayNG 或尋找其他 V2Ray 用戶端,可前往下載頁依平台選擇 v2rayN、v2rayNG 或 v2flyNG,再參考入門指南完成基本設定。