先看結論:v2rayN 負責通道,終端機負責讀取代理
在台灣或香港使用 Claude Code,通常要分成兩個部分處理:先在 v2rayN 匯入可用節點並確認桌面連線正常,再把 v2rayN 的本機代理連接埠寫入終端機環境變數。只在 v2rayN 介面中選好節點,並不代表 PowerShell、命令提示字元或 macOS 終端機內的 Claude Code 會自動使用代理。
本文以 v2rayN 7.x 常見介面為例,說明訂閱匯入、Xray 核心與系統代理模式的選擇,並提供 Windows PowerShell、Windows 命令提示字元及 macOS/Linux Shell 的設定方法。不同版本的選單名稱可能略有差異,請以目前畫面顯示的「設定」「參數設定」與「系統代理」為準。
先讓 v2rayN 以瀏覽器測試確認節點可用,再記下本機 HTTP 或 SOCKS5 連接埠,最後只在執行 Claude Code 的終端工作階段設定 HTTPS_PROXY、HTTP_PROXY 與必要的 NO_PROXY。這種方式不會強迫所有桌面程式都經過代理,也方便隨時清除設定。
台港使用前的連線條件與限制
台灣與香港的網路環境、DNS、公司防火牆及帳戶所在地可能不同。v2rayN 能做的是建立本機到遠端節點的代理通道,不能替代 Claude 帳戶註冊、付款、API 權限或服務地區政策。即使終端機成功連線,若帳戶沒有相應使用權限,Claude Code 仍可能回傳授權或服務不可用訊息。
- 確認 Claude Code 已正常安裝,且終端機執行
claude --version能顯示版本。 - 確認 v2rayN 的節點由服務提供者合法提供,並且訂閱內容包含完整的位址、連接埠、UUID、傳輸與安全參數。
- 確認電腦的日期、時間與時區自動同步;VMess、TLS 或 REALITY 節點對時間偏差可能較敏感。
- 若使用公司、校園或受管理網路,先確認本機連接埠沒有被安全軟體封鎖。
- 不要把 API 金鑰、訂閱網址或終端機輸出中的敏感內容貼到公開討論區。
上方的 10809 與 10808 只是常見範例,不是所有 v2rayN 版本的固定值。請在 v2rayN 的本機代理設定中查看實際 HTTP、SOCKS 或 mixed port。若把 SOCKS5 連接埠誤填到 HTTPS_PROXY,或把 HTTP 連接埠誤當成 SOCKS5 使用,Claude Code 可能會顯示連線失敗、逾時或無法解析主機。
匯入訂閱並選擇相容核心
開啟 v2rayN 後,先在「訂閱分組」或相近名稱的管理區域新增訂閱網址,再執行「更新訂閱」。匯入完成後,不要立即修改節點內的 UUID、SNI、Reality 公鑰、短識別碼、WebSocket 路徑或 gRPC 服務名稱。這些欄位必須與伺服器端一致,手動改動其中一項就可能使節點失效。
對 VLESS、REALITY、Vision 等現代節點的支援通常較完整,適合以訂閱匯入後直接使用。
適合:新節點、日常主力
對傳統 VMess、WebSocket、TLS 等設定具備較成熟的相容性,但未必支援 Xray 專屬欄位。
適合:舊節點、相容性備用
部分節點的連線方式與核心能力緊密相關,應先查看匯入後的核心提示及錯誤紀錄。
適合:服務商指定環境
在 v2rayN 中可從主介面的「核心類型」或「設定」→「參數設定」→「Core 類型」查看目前使用的核心。若節點包含 reality-opts、xtls-rprx-vision 或其他 Xray 參數,優先選擇能辨識這些欄位的 Xray 核心。若節點是較舊的 VMess + WebSocket + TLS,則應以訂閱實際產生的設定為準,不要為了追求新核心而批次重寫所有節點。
VLESS + REALITY
- 傳輸
- TCP
- 安全
- REALITY
- Flow
- 依訂閱提供
需要相容的 Xray 核心,公鑰與短識別碼不可自行改寫。
VMess + WS + TLS
- 傳輸
- WebSocket
- 安全
- TLS
- 路徑
- 依訂閱提供
網域、SNI、路徑與連接埠必須配套,時間也要保持準確。
先確認 v2rayN 的本機代理已生效
節點匯入後,在主介面選取一個節點,執行延遲測試或連線測試,再開啟瀏覽器確認實際網頁可存取。接著查看 v2rayN 的「系統代理」選項。這個選項主要修改作業系統的 HTTP 代理設定,瀏覽器等遵循系統代理的程式通常會受影響,但終端機程式是否讀取它,仍取決於程式實作與目前的環境變數。
更新訂閱
進入「訂閱分組」→選取分組→執行「更新訂閱」,確認節點清單已出現。
選擇節點
在主介面選取延遲較低且測試成功的節點,先不要同時修改多項參數。
選擇核心
進入「設定」→「參數設定」→「Core 類型」,依節點欄位選擇相容的 Xray 或 v2ray 核心。
查看本機埠
在「設定」→「參數設定」→「本機代理」查看 HTTP、SOCKS5 或 mixed port,例如
127.0.0.1:10809。測試終端
設定環境變數後執行
claude --version或實際啟動 Claude Code,觀察連線與錯誤輸出。
若只想讓 Claude Code 使用代理,可以暫時不要開啟全域系統代理,直接在啟動它的終端工作階段設定環境變數。若瀏覽器與其他桌面程式也需要代理,才考慮開啟 v2rayN 的系統代理。全域模式、規則模式與自動配置的實際效果,會受到 v2rayN 版本、作業系統及應用程式代理支援方式影響。
結論:先驗證本機埠,再判斷節點問題
瀏覽器能開啟網頁但 Claude Code 失敗,優先檢查環境變數與代理格式;瀏覽器和終端機都失敗,才回頭檢查節點、核心、DNS 及遠端伺服器。
Windows 終端機設定方式
在 Windows PowerShell 中,最穩妥的做法是先以目前視窗暫時設定代理。假設 v2rayN 的 HTTP 代理實際監聽在 127.0.0.1:10809,可執行以下命令。HTTPS_PROXY 的值仍可使用本機 HTTP 代理網址,因為 HTTP 代理能以 CONNECT 方法轉發 HTTPS 連線;這與「遠端服務本身使用 HTTPS」不是同一件事。
$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"
claude
如果 v2rayN 只提供 SOCKS5 連接埠,例如 127.0.0.1:10808,可依 Claude Code 與相關網路函式庫的支援情況使用 socks5:// 或 socks5h://。其中 socks5h 會要求透過 SOCKS5 代理解析主機名稱,能避免部分 DNS 請求留在本地;但不是每個命令列工具都接受這個格式。當 SOCKS5 格式無效時,改用 v2rayN 的 HTTP 代理通常更容易排查。
$env:HTTP_PROXY = "socks5://127.0.0.1:10808"
$env:HTTPS_PROXY = "socks5://127.0.0.1:10808"
$env:NO_PROXY = "localhost,127.0.0.1"
claude
若使用命令提示字元,可在目前視窗執行 set 命令;關閉視窗後設定就會消失。這適合共用電腦或只想在特定工作階段使用代理的情況。若要長期保存,則可透過 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
claude
macOS 與 Linux Shell 設定方式
在 macOS 或 Linux 的 Bash、Zsh 等終端機中,環境變數名稱通常區分大小寫。建議同時設定大寫與小寫名稱,因為不同命令列工具讀取的慣例不完全相同。以下以 HTTP 代理 127.0.0.1:10809 為例:
export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export NO_PROXY="localhost,127.0.0.1"
export no_proxy="$NO_PROXY"
claude
如果需要讓特定內部網域或本機服務繞過代理,可在 NO_PROXY 中以逗號加入主機名稱,例如 localhost,127.0.0.1,.local,internal.example。不要把所有網域都填入 NO_PROXY,否則 Claude Code 的遠端請求可能直接連線,造成「終端代理已設定但沒有生效」的假象。
若確認只能使用 SOCKS5,則可將兩個主要變數改成 v2rayN 顯示的 SOCKS5 位址。設定完成後,可以先查看目前變數是否正確,再啟動 Claude Code:
export HTTP_PROXY="socks5://127.0.0.1:10808"
export HTTPS_PROXY="socks5://127.0.0.1:10808"
printf '%s\n' "$HTTP_PROXY" "$HTTPS_PROXY"
claude
想讓每次開啟終端機都自動套用,可把設定加入 ~/.zshrc 或 ~/.bashrc,再執行 source ~/.zshrc 或重新開啟終端機。不過長期保存前,應先確認該電腦經常需要代理。若只是偶爾使用,使用獨立啟動命令或專案腳本會更容易控制,也能避免其他開發工具意外沿用同一代理。
用最小測試確認是哪一層出錯
排查時不要一開始就修改節點傳輸、DNS、路由與終端環境。先確認 v2rayN 核心正在執行,再確認本機代理連接埠正在監聽,最後才測試 Claude Code。Windows 可使用 Test-NetConnection 127.0.0.1 -Port 10809;Linux 或 macOS 可使用 nc -vz 127.0.0.1 10809。這只能證明本機連接埠可建立,不代表遠端服務一定可用。
報錯:connect ECONNREFUSED 127.0.0.1:10809
原因與解法:該連接埠沒有程序監聽,或 v2rayN 實際使用了其他埠——回到「本機代理」查看 HTTP 埠,確認核心已啟動後再更新環境變數。
報錯:Invalid proxy URL
原因與解法:代理值缺少 http:// 或使用了程式不支援的協議格式——先改成 http://127.0.0.1:10809 測試。
報錯:ETIMEDOUT
原因與解法:本機代理雖然可用,但節點、遠端 DNS 或目的服務連線逾時——先在 v2rayN 更換另一個測試成功的節點,再查看核心日誌。
報錯:401 Unauthorized
原因與解法:這通常是帳戶、API 金鑰或服務授權問題,不等同於代理失效——先確認帳戶登入狀態與金鑰權限。
若 Claude Code 啟動後仍無法連線,可先檢查環境變數是否被舊值覆蓋。PowerShell 使用 Get-ChildItem Env:HTTP_PROXY,命令提示字元使用 set HTTP_PROXY,Shell 使用 env | grep -i proxy。同時檢查是否設定了過時的 ALL_PROXY;它可能讓工具優先採用另一個無法連線的代理。
- v2rayN 主介面顯示核心正在運作,且目前節點測試不是逾時。
- 本機 HTTP 或 SOCKS5 連接埠與環境變數中的埠號完全一致。
HTTP_PROXY與HTTPS_PROXY的協議前綴、主機及埠號格式正確。NO_PROXY沒有意外包含 Claude Code 需要存取的遠端網域。- 終端機是在設定變數之後重新啟動,沒有沿用未更新的舊程序環境。
- 清除代理後的直接連線結果與經代理連線的結果已分開記錄。
安全保存設定,避免代理互相干擾
代理網址本身通常不包含敏感資訊,但訂閱網址、UUID、API 金鑰及終端機歷史紀錄可能包含帳戶或節點資料。不要把完整命令、設定檔或錯誤日誌原樣公開。若曾將金鑰直接貼在命令列中,請檢查 Shell 歷史與 CI 記錄,必要時撤銷並重新建立金鑰。
日常使用可採用「v2rayN 持續執行、終端機按需設定代理」的方式。需要代理時才開啟對應的終端機視窗;工作完成後清除變數,或直接關閉該視窗。若使用多個專案,應確認每個專案的啟動腳本是否各自寫入了 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY,避免一個專案的設定影響另一個專案。
推薦方案:桌面代理與終端代理分開管理
v2rayN 端
- 匯入訂閱並更新節點
- 選擇相容的 Xray 核心
- 確認 HTTP 埠與節點可用
終端機端
- 設定 HTTPS_PROXY
- 保留 localhost 直連
- 按工作階段啟用與清除
兩層分開後,瀏覽器、開發工具與 Claude Code 可以各自決定是否使用代理,排錯時也較容易定位。
完成設定後,先在同一個終端機執行 claude --version,再啟動 Claude Code 執行一個不涉及敏感資料的基本請求。若能啟動但特定功能失敗,應查看具體錯誤是網路逾時、帳戶授權、模型權限還是本地命令問題,不要反覆更換節點。保持節點、代理埠與環境變數不變,逐項測試,通常比一次修改多個設定更快找到原因。