Claude Code 連線不穩?Clash Verge 終端設定實戰

Claude Code 讓開發者能直接在終端機使用 AI 協作功能,但登入、API 請求和模型回應仍可能受到網路路由影響。本指南以台港使用者常見情境為主,示範 Clash Verge 訂閱匯入、系統代理、TUN 模式與分流規則設定,協助改善終端機連線品質。

使用 Claude Code 時出現登入失敗、請求逾時、回應停在載入狀態,未必代表帳號或終端工具本身故障。從終端機送出一次請求,通常會經過 Claude Code、作業系統環境變數、Clash Verge 本機監聽連接埠、代理節點,以及遠端 API 服務等多個環節。任何一層設定不一致,都可能只呈現為「連線失敗」或「request timeout」。

排查前先確認三件事:Clash Verge 是否正在執行、目前是否有可用節點,以及終端機是否真的使用了 Clash 的代理。瀏覽器可以連線,不代表 Claude Code 也會自動使用相同代理;瀏覽器通常讀取系統代理或自身設定,而命令列工具多半依賴 HTTP_PROXYHTTPS_PROXYALL_PROXY 等環境變數。

現象 優先檢查項目 常見原因
登入頁或驗證請求逾時 終端機代理環境變數 Shell 沒有繼承系統代理,或代理連接埠填錯
提示連線被拒絕 Clash Verge 核心與連接埠 核心未啟動、使用了舊連接埠,或本機代理被防火牆阻擋
偶爾成功、偶爾失敗 節點延遲與連線穩定性 節點丟包、DNS 不穩定、TCP 或 TLS 連線反覆重建
瀏覽器正常、Claude Code 異常 終端機的代理格式 命令列程式不讀取系統代理,或只支援 HTTP CONNECT

Claude Code 的互動請求通常比單純開啟網頁更容易暴露連線品質問題。節點延遲低不代表長時間傳輸一定穩定;有些節點在短時間測速時表現良好,但持續接收回應時會出現丟包、重置或頻繁切換。建議先選擇固定節點完成登入與基本測試,再考慮使用自動選擇或 url-test 策略組。

  • 規則模式:只讓符合規則的請求經過代理,適合日常使用與排查。
  • 全域模式:所有可被 Clash 接管的流量都使用選定節點,適合暫時確認是否為規則匹配問題。
  • 直連模式:只適合測試本地或不需要代理的服務,不適合作為受限網路中的 Claude Code 預設模式。
  • TUN 模式:可接管不讀取系統代理的程式,但需要額外系統權限、路由與 DNS 設定,不應與終端環境變數同時無條件疊加。

為終端機設定 HTTP 與 SOCKS 代理

最容易控制、也最適合初次排查的方法,是在啟動 Claude Code 的同一個 Shell 工作階段設定代理環境變數。Clash 的 mixed-port 通常同時接受 HTTP CONNECT 與 SOCKS5 請求,因此可以先使用 http://127.0.0.1:7890。若你的設定檔使用其他連接埠,請替換為實際數值。

macOS 與 Linux

export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
export ALL_PROXY="socks5://127.0.0.1:7890"

claude

部分命令列工具只讀取大寫變數,部分工具則只讀取小寫變數。若測試時發現 curl 有代理,但 Claude Code 仍未使用,可以同時設定兩組名稱:

export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export all_proxy="$ALL_PROXY"

NO_PROXY 用於指定不應經過代理的本機或內部網域。不要把遠端 API 網域加入其中,否則請求會繞過 Clash。一般可先保留本機位址:

export NO_PROXY="127.0.0.1,localhost,::1"

如果希望每次開啟終端機都自動套用設定,可將內容加入目前 Shell 的設定檔,例如 Zsh 常見的 ~/.zshrc,Bash 常見的 ~/.bashrc。修改後執行 source ~/.zshrc 或重新開啟終端機。共用電腦不建議把包含代理帳號或密碼的 URL 直接寫入設定檔;本機 Clash 代理通常不需要額外認證。

Windows PowerShell

$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:ALL_PROXY = "socks5://127.0.0.1:7890"
$env:NO_PROXY = "127.0.0.1,localhost"

claude

PowerShell 使用 $env: 設定的變數只會套用到目前的視窗與其啟動的子程序。若關閉視窗後重新開啟,通常需要再次設定。若你使用的是 Windows 命令提示字元,可改用以下形式:

set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
set ALL_PROXY=socks5://127.0.0.1:7890
claude

動手測試:從 curl 到 Claude Code

不要一開始就反覆重新登入。先使用無敏感資料的公開 HTTPS 網址測試終端機能否經過 Clash 建立 TLS 連線。以下命令會指定代理並顯示連線結果:

curl -I -x http://127.0.0.1:7890 \
  --connect-timeout 10 \
  --max-time 30 \
  https://example.com

如果得到 HTTP 回應標頭,代表終端機至少能透過本機代理完成一次 HTTPS 請求。若出現 Failed to connect to 127.0.0.1 port 7890,應回到 Clash Verge 檢查核心是否執行,以及 mixed-port 是否真的為 7890。若本機連接成功但出現 Could not resolve host,則要檢查 mihomo 的 DNS 設定、目前節點以及系統 DNS。

接著確認環境變數是否被目前 Shell 讀取:

echo "$HTTP_PROXY"
echo "$HTTPS_PROXY"
env | grep -i proxy

Windows PowerShell 可使用:

Get-ChildItem Env:*proxy*

確認後,在同一個終端視窗啟動 Claude Code。若 Claude Code 顯示認證錯誤,但請求很快得到明確回應,表示代理路徑大致可用,應依提示檢查登入流程、帳號狀態或服務端權限。若仍然是逾時,請同時觀察 Clash Verge 的連線記錄:完全沒有新連線,通常是環境變數未被工具讀取;有連線但反覆失敗,則較可能是節點、DNS、TLS 或遠端服務路徑問題。

測試結果 下一步
curl 直連失敗,指定 Clash 後成功 確認 Claude Code 使用相同環境變數
curl 指定 Clash 也連接失敗 檢查核心、節點、連接埠與 DNS
curl 成功,Claude Code 沒有連線記錄 確認工具是否支援該代理變數,或改用 TUN 測試
有連線記錄但長回應中斷 更換固定節點,避免自動切換並檢查丟包

處理逾時、回應卡住與登入失敗

請求逾時

先將節點固定為一個測試成功的選項,暫時不要使用自動選擇。接著確認系統時間正確,因為 TLS 憑證驗證會受到時間偏差影響。若使用公司網路、校園網路或公共 Wi-Fi,也要測試不同網路;同一節點在家用寬頻成功、在公司網路逾時,可能是網路出口、DNS 或防火牆政策造成。

回應卡住或長時間沒有輸出

回應卡住不一定是完全斷線,也可能是連線在串流傳輸階段被中斷。可先關閉不必要的自動切換,換用 TCP/TLS 類型較穩定的節點進行比較。若只在特定節點發生,應保留 Clash Verge 的日誌時間與節點名稱,避免反覆刪除設定。若所有節點都出現相同問題,再檢查終端代理格式、TUN 是否與環境變數互相干擾。

登入失敗或驗證頁無法完成

登入流程可能涉及瀏覽器、回呼網址與終端工具之間的切換。先確認瀏覽器和終端機使用的是同一條網路路徑,並避免同時開啟多個舊的登入工作階段。若瀏覽器能開啟驗證頁,但回到終端機後等待逾時,應查看 Clash Verge 是否有新的回呼連線,以及本機 localhost127.0.0.1 是否被加入 NO_PROXY。本機回呼通常不應再次經過遠端代理。

建立可重複使用的穩定配置

確認連線正常後,再把設定整理成可維護的工作流程。日常使用可讓 Clash Verge 保持規則模式,終端機透過環境變數使用混合代理;需要測試時,則在目前工作階段暫時切換節點或清除代理變數。不要把所有流量長期交給不熟悉的全域模式,也不要同時啟用多個代理軟體,否則容易形成代理環回。

如果仍無法判斷問題位置,可以採用「本機代理連接埠、固定節點、單一終端視窗、公開 HTTPS 測試、再啟動 Claude Code」的順序重新驗證。這種做法能把變數減到最低,也能從 Clash Verge 日誌中看出請求是否真的抵達核心。當代理層已確認正常後,才進一步處理 Claude Code 版本、登入狀態或服務端回應,排查效率通常會高很多。

FlClash 下載入口 查看各平台用戶端