Claude Code 在瀏覽器可以正常使用,但從終端機啟動後卻一直逾時,不一定是 v2rayN 節點故障。終端機程式通常不會自動沿用瀏覽器的代理設定;即使 v2rayN 已開啟系統代理,命令列工具仍可能直接連線。以下會先確認 v2rayN 的本機監聽,再用環境變數指定代理,最後檢查路由、終端機環境與錯誤類型。範例以 Windows PowerShell 為主,其他終端機需使用各自的環境變數語法。
適合 Claude Code 在終端機中連線逾時、但瀏覽器代理正常的使用者。本文會示範如何核對 v2rayN 的 HTTP 或 SOCKS 監聽、在目前終端機工作階段設定代理環境變數,並用 curl.exe 驗證連線。範例連接埠僅供說明,請以 v2rayN 實際顯示的設定為準。
一、系統代理不等於終端機已使用代理
v2rayN 管理本機代理入口與遠端節點;Claude Code 則是由終端機啟動的命令列工具。瀏覽器可能讀取作業系統的代理設定,但終端機程式通常要透過自己的代理選項或環境變數取得代理位址。因此,瀏覽器能開啟網頁,只能說明瀏覽器的連線路徑可用,不能據此確認 Claude Code 也會走相同路徑。
排查時要分開確認兩件事:第一,Claude Code 是否把請求送到本機代理;第二,v2rayN 核心收到請求後,是否依目前路由交給預期的出站。若環境變數指向錯誤連接埠,請求連本機核心都到不了;若本機入口正常但規則選擇直連,則問題在路由或出站,而不是環境變數。
- 瀏覽器可用、Claude Code 逾時:優先檢查終端機的代理環境變數及其啟動方式。
- 所有明確指定代理的測試都失敗:確認 v2rayN 核心是否啟動、監聽位址是否一致,以及節點是否可連線。
- 連線進入核心但仍無法完成:檢查路由出站、DNS、節點參數與目標服務回應。
二、先核對 v2rayN 的本機代理入口
在 v2rayN 主視窗或相關設定中,確認目前使用的本機代理位址、連接埠與協定。常見安裝設定可能會使用 127.0.0.1:10808 作為 SOCKS 入口、127.0.0.1:10809 作為 HTTP 入口,但這不是每台電腦都相同的固定值。請查看自己的設定,不要只因範例中出現某個連接埠,就直接照抄。
HTTP 代理入口
- 範例位址
127.0.0.1- 範例連接埠
10809- 環境變數
HTTP_PROXY、HTTPS_PROXY- 測試格式
http://127.0.0.1:10809
適用於 v2rayN 確實提供 HTTP 代理監聽的情況;請以實際設定替換連接埠。
SOCKS 代理入口
- 範例位址
127.0.0.1- 範例連接埠
10808- 測試格式
socks5h://127.0.0.1:10808- 遠端解析
socks5h
只有在該入口支援 SOCKS5 時使用;socks5h 會將網域解析交由代理端處理。
環境變數的代理網址格式要與入口相符。若 v2rayN 提供的是 HTTP 代理,可先用 http:// 格式測試;若只有 SOCKS 入口,則應依 Claude Code 所使用的執行環境是否支援 SOCKS 環境變數來判斷。不同版本、執行方式及底層網路元件對代理變數的支援可能不同,因此建議先用 curl 驗證入口,再測試 Claude Code。
三、在終端機設定代理環境變數
先在 v2rayN 啟動核心並選取可用節點,再於同一個終端機視窗設定環境變數並啟動 Claude Code。以下 PowerShell 範例使用 HTTP 入口 127.0.0.1:10809;若你的設定不同,請替換連接埠,並確認該入口確實支援 HTTP 代理。
-
確認監聽設定
在 v2rayN 的「設定」→「參數設定」或目前版本提供的本機監聽設定中,查看 HTTP 代理位址與連接埠。若介面將系統代理與本機監聽分開列出,請確認自己查看的是核心實際監聽的入口。
-
設定工作階段
在 PowerShell 輸入下列命令。這些變數只套用於目前視窗及由它啟動的子程序,不會永久改動整個 Windows 的系統代理設定。
-
測試代理連線
先用 curl.exe 對 HTTPS 網址發出請求,確認能連上本機入口並取得目標回應,再測試 Claude Code。使用
curl.exe可避免 PowerShell 將curl解讀為其他命令別名。 -
啟動命令列工具
在同一個 PowerShell 視窗執行
claude。若是從另一個終端機、IDE 工作階段或遠端環境啟動,需在那個實際執行 Claude Code 的環境中重新設定變數。
$env:HTTP_PROXY = "http://127.0.0.1:10809"
$env:HTTPS_PROXY = "http://127.0.0.1:10809"
curl.exe -v --proxy $env:HTTPS_PROXY --connect-timeout 5 --max-time 20 https://example.com/ -o NUL
claude
這裡的 HTTPS 代理網址仍以 http:// 開頭,因為它表示用戶端先透過 HTTP 代理入口建立通道,再連線至 HTTPS 目標,並不是將目標網站降級為 HTTP。若 curl 顯示無法連線至 127.0.0.1,先檢查 v2rayN 是否啟動及連接埠是否填對;若已連上本機但目標請求逾時,則應查看核心連線紀錄與路由結果。
macOS 或 Linux 的 Bash、Zsh 可在啟動 Claude Code 的同一個終端機視窗使用 export 設定,例如 export HTTPS_PROXY=http://127.0.0.1:10809。若使用 SOCKS 入口,工具可能接受 socks5h://127.0.0.1:10808,但實際支援取決於 Claude Code 執行環境;請先用對應的 curl 代理參數測試。不要將含有帳號或密碼的代理網址寫入共用設定或公開日誌。
四、用 curl 分辨入口、代理與目標服務
curl 測試的目的不是證明 Claude Code 的每項功能都正常,而是縮小問題範圍。使用與 Claude Code 相同的本機代理入口、相同終端機工作階段及一個 HTTPS 測試目標,觀察它是否能連上本機位址、是否收到代理回應,以及是否取得目標服務的 HTTP 回應。HTTP 狀態碼不是 200,也不必然表示代理失效;例如服務可能回傳重新導向、拒絕存取或其他有效狀態。
# 使用 HTTP 代理入口測試
curl.exe -v --noproxy "" --proxy http://127.0.0.1:10809 --connect-timeout 5 --max-time 20 https://example.com/ -o NUL
# 只有在該連接埠支援 SOCKS5 時才使用
curl.exe -v --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 5 --max-time 20 https://example.com/ -o NUL
--noproxy "" 用來避免這次 curl 測試受到略過代理清單影響。若輸出顯示連線遭拒,通常要先確認本機入口是否存在;若已連上入口但出現逾時,記下錯誤前後的時間與目標,檢查 v2rayN 核心日誌中是否有相符連線。完成測試後,若要避免後續命令繼續使用代理,可在 PowerShell 執行以下命令清除目前工作階段的變數:
Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue
判斷重點:curl 成功後,再查 Claude Code 的執行環境
如果同一視窗中的 curl 能透過指定代理取得回應,但 Claude Code 仍逾時,先確認 Claude Code 是否由該視窗啟動、目前版本是否讀取相應的代理環境變數,以及是否有其他設定覆蓋代理。此時不必先更換 v2rayN 節點或重建訂閱。
五、檢查路由、略過規則與不同終端機環境
請求抵達 v2rayN 後,還要由核心依路由規則選擇出站。若目前模式或自訂規則將相關網域交給直連出站,即使 Claude Code 已連上本機代理,外部連線仍可能逾時。可在重現問題時查看核心的 access 與 error 記錄,確認請求目標、時間及出站標籤;不要只根據「代理已開啟」推斷流量一定經過代理節點。
- 先記下 Claude Code 連線發生的時間與目標服務,再比對同一時間的核心記錄。
- 檢查路由模式、自訂規則順序,以及目標網域是否命中直連規則;每次只調整一項設定並重新測試。
- 如果 curl 明確指定代理可用,但一般命令不行,檢查
NO_PROXY或no_proxy是否包含目標網域或過大的網域範圍。 - 不要把工作階段變數誤認為永久設定;在另一個 PowerShell、IDE 終端機或排程程序中啟動的命令,可能沒有繼承目前視窗的變數。
若 Claude Code 是在 WSL、容器、SSH 工作階段或 IDE 內執行,127.0.0.1 通常指向該執行環境自己的迴圈位址,不一定是 Windows 上 v2rayN 所監聽的位置。此時先在相同環境內執行 curl,確認本機位址是否可達;若無法連線,需依該環境的網路模式確認主機端位址與監聽範圍。不要為了測試而將代理監聽無限制暴露到區域網路。
瀏覽器正常,為什麼 Claude Code 還是逾時?
瀏覽器可能讀取系統代理,終端機程式卻沒有。先在啟動 Claude Code 的同一個視窗設定 HTTP_PROXY 與 HTTPS_PROXY,再用 curl 測試相同入口。
連接埠應該填 10808 還是 10809?
不要只看範例數字。先在 v2rayN 查看實際監聽設定,確認該連接埠提供 HTTP 還是 SOCKS,再使用相符的代理網址格式。
curl 成功,但 Claude Code 仍無法連線?
確認兩者是在同一個終端機環境啟動,並檢查該版本對代理環境變數的支援、NO_PROXY 略過清單及其他代理設定。
可以把代理變數永久寫入系統嗎?
排查時建議先使用工作階段變數。確認設定可用後,再依個人需求選擇持續設定方式,並記錄如何還原,避免其他程式意外沿用本機代理。
六、依序排查,避免同時改動多個設定
終端機代理問題常被誤判為節點故障,但問題可能發生在環境變數、本機入口、路由、DNS 或目標服務等不同階段。一次只改一項,並保留測試結果,較容易找出真正差異。若 Claude Code 回報的是認證失敗或帳戶相關錯誤,應與網路逾時分開處理;代理只負責連線路徑,不會修正服務端的帳戶、權限或憑證問題。
- 確認 v2rayN 核心正在執行,並記下 HTTP 或 SOCKS 入口的位址與連接埠。
- 在啟動 Claude Code 的同一終端機設定代理變數,先以 curl 測試本機入口與 HTTPS 目標。
- 若入口可用但目標逾時,查看核心日誌、路由出站、DNS 與遠端節點連線。
- 若 curl 正常但 Claude Code 失敗,檢查執行環境、略過清單及程式版本對代理設定的支援。
- 完成測試後清除不再需要的工作階段變數,並遮蔽訂閱連結、UUID、權杖及私人伺服器資訊,再分享錯誤紀錄。
這套流程能把「終端機沒有使用代理」與「代理已接收請求但無法完成連線」分開處理。若需要重新確認用戶端安裝或平台選擇,可前往下載頁查看相關資訊;請先保留目前可用設定,再逐項進行調整。