Claude Code 在終端機連線不穩,問題可能出在哪裡

Claude Code 透過終端機與 Anthropic 服務互動,程式啟動後除了送出模型請求,也可能需要完成登入、讀取帳戶資訊,以及維持串流回應。當你遇到指令停在等待畫面、回應中途斷線,或同一個工作階段有時成功、有時逾時,問題不一定是模型服務故障;終端機程序是否使用代理、Clash Verge 的規則是否將請求送往預期節點,也都值得檢查。

特別要留意,瀏覽器能開啟網站,不代表 Claude Code 一定走同一條網路路徑。瀏覽器可能使用自己的代理擴充功能,而終端機中的 Claude Code 通常依賴程序環境變數或系統網路設定。若只有瀏覽器流量經過 Clash,終端機請求仍可能直連;反過來說,若環境變數指向錯誤的本機連接埠,即使 Clash Verge 已啟動,Claude Code 也可能連不上。

本文以先確認 Clash Verge 代理狀態,再設定終端機環境變數,最後檢查分流與連線紀錄為主線。不同版本的 Clash Verge、作業系統和 Shell 介面可能略有差異,選單名稱請以你實際看到的版本為準;排錯時應先一次只改一項,避免同時切換節點、模式與代理變數,讓原因更難判斷。

先確認 Clash Verge 已載入設定並能正常代理

在終端機輸入任何代理設定前,先確認 Clash Verge 本身可以工作。開啟應用程式後,檢查設定檔或訂閱是否已載入,核心是否正在執行,並確認目前有可選用的代理節點。若設定檔更新失敗、代理群組空白,或節點測試持續失敗,先處理這些問題;否則即使環境變數填寫正確,終端機也只會把請求送到沒有正常服務的本機入口。

接著查看 Clash Verge 的混合連接埠(mixed-port)。它是本機 HTTP 與 SOCKS 代理共用的入口,但連接埠號會依設定檔和應用程式設定而異,不能只照抄其他教學中的數字。到 Clash Verge 的設定或核心設定頁面確認實際值;如果你打算使用 HTTP 代理環境變數,還要確認該入口接受 HTTP 代理請求。若你使用自訂的 HTTP 與 SOCKS 連接埠,應依各自用途填寫,不要把一個連接埠當成兩種協定都必然可用。

檢查項目 確認方式 不符合時的處理方向
設定檔與訂閱 確認已載入的設定檔不是空白,且節點與策略群組可見 檢查訂閱是否過期、更新是否成功,以及目前啟用的是不是剛編輯的設定
核心狀態 確認 Clash Verge 顯示核心正在運作 檢查核心錯誤訊息,並確認沒有其他代理程式占用相同連接埠
本機代理連接埠 在設定中查看 mixed-port 或 HTTP 代理的實際數字 以目前生效的設定為準,更新終端機變數,不要假設固定使用某個埠號
代理策略 確認測試用的策略群組已選取可用節點 先完成節點連線測試,再檢查 Claude Code 相關目的地的規則命中結果

建議先用 Clash Verge 的連線紀錄確認應用程式是否能建立一般代理連線,再開始設定 Claude Code。這一步可把問題拆成兩部分:若 Clash 自身無法連線,先排查設定檔或節點;若 Clash 一般連線正常,Claude Code 卻失敗,再集中檢查終端機環境與目的地分流。

為終端機設定代理環境變數

許多命令列工具會讀取 HTTP_PROXY、HTTPS_PROXY 或小寫形式的環境變數,將 HTTP/HTTPS 請求交給指定的本機代理。實際支援情況仍取決於工具版本與其網路函式庫,因此設定後要以 Claude Code 的實際連線結果驗證。使用環境變數的好處是範圍明確:你可以只在目前終端機工作階段測試,不必一開始就讓所有應用程式都改走代理。

在 macOS 或 Linux 的 Bash、Zsh 終端機中,將下例的 7890 改成 Clash Verge 顯示的 HTTP 或 mixed-port 實際連接埠:

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"

以 http:// 作為代理位址開頭,表示連到本機 HTTP 代理入口;這不代表 Claude Code 對外的 HTTPS 流量會變成未加密,HTTPS 連線仍會透過代理建立。若你的 Clash Verge 設定提供的是 SOCKS 入口,就不要直接把 SOCKS 連接埠當成 HTTP 代理使用;請確認 Claude Code 所用工具是否支援該代理格式,或改用可供 HTTP 用戶端使用的本機入口。

Windows PowerShell 可在目前視窗中設定環境變數。完成後,從同一個 PowerShell 視窗啟動 Claude Code,避免只在一個視窗設定、卻從另一個視窗執行:

$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

如果這種暫時設定有效,再考慮將變數加入你常用的 Shell 啟動檔,例如 Zsh 的設定檔,或整理成專案專用的啟動命令。不要不加判斷地把代理變數寫進所有專案、CI 環境或系統層級設定:換到未執行 Clash Verge 的網路環境時,舊變數仍可能指向不存在的本機入口,造成新的連線故障。

確認 Claude Code 啟動前,先檢查變數內容是否正確。macOS/Linux 可用 env | grep -i proxy 查看相關值;PowerShell 可用 Get-ChildItem Env:*proxy*。若要停止目前工作階段的代理設定,macOS/Linux 可執行 unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy;PowerShell 則可用 Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:http_proxy, Env:https_proxy。這些操作只影響目前終端機工作階段,不會替你改動 Clash Verge 的核心設定。

檢查規則分流、連線紀錄與終端機環境

代理變數的作用是讓請求抵達 Clash Verge;規則分流則決定請求進入 Clash 後要走哪個策略。兩者是不同環節。若連線紀錄完全看不到 Claude Code 發出的請求,先檢查環境變數是否在啟動 Claude Code 的同一個終端機中生效、本機連接埠是否正確,以及程式是否支援該代理方式。若紀錄中看得到目的地,但策略顯示 DIRECT(直連),則應檢查規則順序與策略群組,而不是立刻把問題歸咎於終端機。

排查時可從連線紀錄中觀察實際出現的主機名稱和策略結果,再依你使用的設定檔調整分流。Anthropic 服務可能涉及不同用途的主機與請求路徑,實際連線目標也可能隨產品版本和功能變動,因此不宜只憑一份固定網域清單推斷所有流量。以當下失敗時紀錄中的目的地為線索,確認它是否套用預期的代理策略;如果設定檔是遠端訂閱,也要留意訂閱更新是否覆蓋了本機修改。

觀察到的狀況 優先檢查 建議驗證
連線紀錄沒有相關請求 終端機是否繼承代理變數、連接埠是否正確 從設定變數的同一個終端機重新啟動 Claude Code,並確認 Clash 核心仍在執行
請求出現在紀錄中,但策略是 DIRECT 規則順序、規則模式與設定檔是否為目前生效版本 對照目的地主機名稱,確認規則是否命中預期策略群組
請求走代理,但仍然逾時 節點穩定性、長連線品質,以及是否同時啟用其他 VPN 更換一個可用節點做短時間對照,並留意錯誤是否從逾時變成其他類型
瀏覽器正常,終端機失敗 瀏覽器代理與終端機代理是否分開設定 檢查 Shell 變數、IDE 內嵌終端的繼承環境,以及啟動 Claude Code 的方式
部分請求成功、部分請求失敗 不同目的地是否命中不同分流規則,或環境中是否有例外設定 記下失敗時間與目的地,逐筆比對連線紀錄及規則命中結果

如果你是在 VS Code 等 IDE 的內嵌終端機使用 Claude Code,還要考慮 IDE 的啟動方式。若 IDE 在你設定環境變數之前已經開啟,它的子終端機可能仍沿用舊環境;可先完全關閉 IDE,再從已設定代理的終端機重新啟動,或在 IDE 的終端機中重新設定變數後再啟動工具。透過 SSH 連到遠端主機時,本機 Clash Verge 的 127.0.0.1 指的是遠端主機本身,不會自動指向你桌面電腦的代理;此時應改用遠端主機實際可連線的代理入口,並確認防火牆與網路政策允許該連線。

全域 TUN 模式可以涵蓋部分不理會系統代理或環境變數的流量,但它會改變更多系統網路路徑,也可能與公司 VPN、虛擬機或其他網路工具衝突。建議先透過終端機環境變數與連線紀錄完成定位;只有在確認程式沒有使用代理、且你了解相關路由影響時,才把 TUN 當作交叉驗證方式。切換模式後應重新測試並記錄結果,測完若不需要就恢復原本設定。

依錯誤訊號逐步排除,避免改一堆設定

不同錯誤訊息代表的問題層次可能不同。連線逾時較常需要比對節點狀態、代理路徑與長連線;若出現明確的登入或權限錯誤,則不應只靠更換代理節點處理。代理只能協助請求依預期網路路徑送出,無法修正錯誤的帳戶狀態、失效的登入資訊或服務端拒絕。排錯時請保留原始錯誤訊息,並將網路問題與帳戶問題分開處理。

比較可靠的測試順序是:先確認 Clash Verge 核心正常且節點可用;再確認終端機變數指向正確的本機代理連接埠;接著啟動 Claude Code,於連線紀錄中查找請求;最後檢查對應策略與錯誤類型。每次只改一項,例如先修正代理連接埠、重新測試,再調整規則。這種方式能保留清楚的前後對照,也方便你在團隊中重現問題,而不是一次改動多個設定後仍不知道哪一項真正有效。

  • 逾時或重試不斷:確認目前節點可用、終端機請求有進入 Clash,並檢查目的地是否被錯誤送往直連策略。
  • 連線拒絕:核對本機代理連接埠是否正確、Clash 核心是否正在監聽,以及是否有其他程式造成連接埠衝突。
  • 只有 IDE 終端失敗:比較一般終端機與 IDE 內嵌終端的環境變數;必要時重新啟動 IDE,讓它取得更新後的環境。
  • 換網路後才失敗:檢查是否將本機代理變數固定寫入啟動檔,並確認新環境中 Clash Verge 已啟動且連接埠一致。
  • 出現登入或帳戶錯誤:依 Claude Code 的登入流程確認帳戶狀態與授權,不要把帳戶問題一概當成代理故障。

也請保護好訂閱連結、帳戶憑證與終端機紀錄。設定檔或請求記錄可能包含節點資訊、私有主機名稱或其他敏感資料,分享錯誤畫面前先遮蔽這些內容。公司或學校網路若有指定的代理及安全政策,應先遵循管理規範;不要為了測試而公開本機代理連接埠,或在不可信網路中開放無驗證的代理服務。

有些只提供瀏覽器擴充功能的代理工具,對終端機程序的支援有限;而只在 Shell 裡設定環境變數,若缺少可觀察的分流紀錄,也不容易判斷請求實際走向。Clash Verge 將本機代理入口、策略選擇與連線紀錄整合在同一個工作流程中,能讓你分別檢查「請求是否進入代理」和「規則把它送去哪裡」,更適合逐步定位 Claude Code 的終端機連線問題。若你想依自己的作業系統開始設定,可先查看可用版本與安裝資訊。

前往下載 →