Claude Code連線不穩?用Clash Verge設定終端機代理

在終端機使用 Claude Code,碰上登入失敗、請求逾時或連線忽快忽慢嗎?本文整理 Clash Verge 的匯入方式、代理模式與規則設定,並說明如何檢查 DNS、節點及終端機代理環境變數。跟著步驟逐項排查,有助改善 Claude Code 的連線體驗;實際使用仍視服務地區政策、帳號資格與網路環境而定。

先分清楚終端機沒走代理,還是服務本身無法使用

Claude Code 在終端機登入失敗或請求逾時時,先確認命令列流量實際走哪條網路路徑,再檢查 Clash Verge 的規則與 DNS。Clash Verge 顯示代理已啟動,不代表所有應用程式都會自動使用代理;開啟系統代理通常只會影響遵循作業系統代理設定的應用程式,終端機中的程式則可能需要明確設定環境變數。

此外,連線成功與否還可能受到 Anthropic 服務可用性、所在地區政策、帳號資格、帳戶狀態及當下網路狀況影響。代理設定正確,不代表帳號一定能登入或服務一定可用;若錯誤訊息指向帳號驗證、存取權限或服務不可用,應依官方提供的資訊處理,不要把變更出口地區視為可保證解決問題的方法。

排查時請記下作業系統、Clash Verge 版本、目前設定檔、代理模式、實際監聽連接埠,以及 Claude Code 顯示的錯誤文字。不要公開完整終端機記錄、登入權杖、API 金鑰或訂閱網址;這些內容可能包含可直接使用的帳戶憑證。

現象 優先檢查 不能直接據此判斷
瀏覽器可用,Claude Code 逾時 終端機代理環境變數、監聽連接埠 不代表節點一定故障
ECONNREFUSED 或連線遭拒 Clash Verge 是否執行、連接埠是否正確 不一定是遠端服務拒絕
ENOTFOUND 或名稱解析失敗 DNS、網域拼寫、目前網路解析狀況 不一定是節點速度太慢
收到 401、403 或帳戶相關提示 登入狀態、帳號資格、服務回應 不等於代理連線必然失敗
curl 成功,但 Claude Code 仍失敗 程式啟動環境、登入流程、實際連線記錄 不代表兩者使用相同的代理設定

檢查 Clash Verge 模式、規則與監聽連接埠

先在 Clash Verge 確認設定檔已載入,核心正在執行,並查看「設定」或「一般設定」中的 HTTP、SOCKS 或混合代理連接埠。不同版本的頁面名稱可能略有不同,請以目前畫面顯示的實際數值為準。本文以 127.0.0.1:7890 作為範例;它不是所有安裝版本的固定預設值,也不是服務端連接埠。

「系統代理」與「TUN」是兩種不同的流量接管方式。系統代理會將作業系統的代理設定指向本機代理服務,但不保證終端機程式會讀取該設定;TUN 則可在較低的網路層級接管更多流量,但會涉及路由、DNS、系統權限及其他 VPN 或網路過濾程式的相容性。排查單一命令列應用程式時,先確認本機代理連接埠可用,通常比一開始啟用 TUN 更容易定位問題。

  • 規則模式:請在 Clash Verge 的「連線」或「Connections」頁面查看 Claude Code 請求命中的網域、規則與策略群組。即使終端機已連到本機代理,規則仍可能將請求送往 DIRECT,或送入尚未選取可用節點的群組。
  • 全域模式:可用來短暫比較規則分流是否造成差異。測試後請恢復原本模式;全域模式會改變更多應用程式的出口,不應在未評估的情況下長期取代規則配置。
  • 直連模式:表示核心可能讓請求不經遠端代理節點。若網路環境無法直連目標服務,改用直連模式通常不會修復問題。

不要只根據節點延遲測試判斷 Claude Code 是否可用。延遲測試使用的網址與實際服務網域可能不同;請以連線記錄中實際出現的網域、規則命中結果及請求是否建立為依據。若記錄中完全沒有相關連線,問題可能發生在請求尚未送到 Clash Verge 之前,例如終端機沒有讀取代理變數。

設定終端機代理環境變數並執行對照測試

以下步驟安排在排查中段:先確認 Clash Verge 的本機代理連接埠,再讓目前終端機工作階段明確使用該代理。Claude Code 是在啟動它的終端機程序環境中執行;只在 Clash Verge 開啟「系統代理」,不一定會替該程序設定 HTTP_PROXY 和 HTTPS_PROXY。

macOS 與 Linux:先只套用至目前終端機

以下指令使用 Bash、Zsh 等常見 shell 語法,連接埠請依 Clash Verge 實際設定修改。HTTP 代理網址可用於 HTTP CONNECT 型 HTTPS 連線;不要因目標網址是 HTTPS,就把代理網址也改成 https://。本機連接埠支援何種協定,仍應以用戶端設定為準。

# 將 7890 替換成 Clash Verge 正在監聽的 HTTP 或混合連接埠
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"

# 查看變數是否已設定;不要在會共用的記錄中輸出憑證或權杖
env | grep -iE '^(http|https|all|no)_proxy='

# 用明確指定的代理測試 HTTPS 連線
curl -Iv --connect-timeout 10 --max-time 20 \
  --proxy "$HTTPS_PROXY" https://api.anthropic.com/

curl 收到 HTTP 回應,代表至少已完成相應的 DNS、連線與 TLS 步驟;回應狀態本身不等於 Claude Code 登入成功,也不代表帳號具備服務使用資格。即使收到 401、404 或其他非成功狀態,也要搭配 TLS 是否完成、Clash Verge 連線記錄及官方服務狀態解讀。若出現連線遭拒,先確認本機監聽位址和連接埠;若出現逾時,再檢查命中規則、節點狀態及網路可達性。

確認測試結果後,在同一個終端機工作階段啟動 Claude Code:

claude

如果不希望讓之後啟動的其他程式也繼承代理設定,可在使用完畢後清除:

unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy

Windows PowerShell:明確指定代理並啟動程式

PowerShell 可在目前視窗中暫時設定程序環境變數。請使用 curl.exe 進行測試,避免部分 PowerShell 環境將 curl 解析為其他命令。執行前先確認 Clash Verge 實際連接埠,並將範例中的 7890 替換成該數值。

$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:http_proxy = $env:HTTP_PROXY
$env:https_proxy = $env:HTTPS_PROXY

curl.exe -Iv --connect-timeout 10 --max-time 20 `
  --proxy $env:HTTPS_PROXY https://api.anthropic.com/

claude

測試完成後,可在同一視窗刪除變數:

Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:http_proxy, Env:https_proxy `
  -ErrorAction SilentlyContinue

如果使用 SOCKS 連接埠,部分命令列工具可以接受 socks5h://127.0.0.1:連接埠 形式的代理網址;socks5h 通常表示由代理端處理目標主機名稱解析。工具與執行環境對 SOCKS 環境變數的支援並不完全一致,因此初次測試宜使用 Clash Verge 明確提供的 HTTP 或混合代理連接埠,避免混淆協定支援與服務連線問題。

根據連線記錄檢查分流規則與 DNS

設定環境變數後,再執行一次 Claude Code 的登入或一個不涉及敏感資料的基本請求,同時開啟 Clash Verge 的「連線」頁面觀察結果。重點不是只看有沒有流量,而是確認相關網域是否出現、命中哪條規則、進入哪個策略群組,以及最終選擇的節點或直連路徑。實際網域可能因登入流程、程式版本及服務功能不同而異,應以目前連線記錄為準,不要只新增一條猜測的網域規則。

  • 沒有相關連線記錄:確認 Claude Code 是從剛才設定變數的同一個終端機啟動。若使用 IDE、桌面啟動器、不同的 shell 工作階段或遠端 SSH,該程序可能沒有繼承目前終端機的環境變數。
  • 連線命中 DIRECT:檢查目前設定檔中的網域規則及其順序。規則通常依序比對,較前面的規則可能先於後面的廣泛規則生效;修改自訂規則後,重新載入設定檔並再次觀察連線結果。
  • 進入策略群組但未成功:確認群組目前選取的節點仍可連線,並查看核心記錄中的失敗階段。單純切換多個節點而不保留測試結果,會讓問題難以重現。
  • 出現網域解析錯誤:檢查系統 DNS、Clash Verge 的 DNS 設定,以及目前核心是否正常載入設定。使用 HTTP 代理時,目標主機名稱可能由代理端或用戶端解析,具體行為會受代理協定與工具實作影響;不要將一次本機查詢結果直接當成所有連線路徑的結論。

如果連線記錄顯示已由預期策略群組送出,curl 測試也完成 TLS,但 Claude Code 仍無法登入,接下來應檢查登入流程與帳戶狀態,而不是持續改 DNS。若錯誤只發生在特定網路,請在允許且可信任的替代網路上作對照,並保持同一版本、同一設定檔與同一登入方式。不要把包含帳戶資訊的完整錯誤記錄貼到公開討論區。

持久化設定前先檢查範圍與憑證安全

在目前終端機測試成功後,才考慮是否需要長期設定。將代理變數寫入 ~/.zshrc、~/.bashrc、shell 設定檔或 Windows 使用者環境變數,會影響後續從該環境啟動的其他程式。這可能讓不需要代理的工具也改走代理,或在 Clash Verge 尚未啟動時出現連線失敗。若只有 Claude Code 需要代理,優先採用可控的啟動腳本或專用終端機工作階段,並在 Clash Verge 啟動後再使用。

也要留意環境變數繼承與憑證保護。避免把 API 金鑰直接放入可分享的命令、程式碼儲存庫、截圖或除錯記錄;在公用或多人共用的電腦上,不應將代理憑證寫成其他使用者可讀取的明文。若使用受管理的裝置、公司網路或組織提供的帳戶,請遵循組織的代理與資安規定。

最後可依下列順序收斂問題:先確認 Clash Verge 核心與本機連接埠正常,再以環境變數明確指定代理,接著用 curl 驗證網路與 TLS,之後觀察實際連線命中的規則、策略群組及 DNS 狀況;若網路層正常但仍出現帳戶、權限或服務可用性提示,便轉向官方帳戶與服務資訊確認。這樣能分辨終端機代理設定、Clash Verge 分流和服務端限制,而不必反覆重裝客戶端或一次改動多項網路設定。

下載Clash