Claude Code 在終端機中連不上服務或回應速度不穩定?本篇以台港使用情境整理 Clash Verge 的代理設定、節點挑選與常見故障排除方法,協助沒有代理工具經驗的讀者快速開始。

Claude Code 搭配 Clash Verge:台港用戶連線設定攻略

先理解 Claude Code 與 Clash Verge 各自負責什麼

Claude Code 是在終端機中執行的開發工具,會透過網路連線到 Anthropic 相關服務,提交指令、讀取專案內容並接收模型回應。Clash Verge 則是執行在本機的代理客戶端,負責監聽一個本機連接埠,再按照目前配置檔的規則,把終端機流量轉送到選定的代理節點。兩者不是同一層的軟體:Claude Code 負責發出請求,Clash Verge 負責處理請求如何離開電腦。

因此,Clash Verge 介面顯示「已啟動」或「系統代理已開啟」,並不等於 Claude Code 一定會使用代理。瀏覽器可能會讀取 Windows、macOS 或 Linux 的系統代理設定,但終端機程式通常還需要透過環境變數、命令列參數或 TUN 模式才能接管。排查時最好把問題拆成三段:Clash Verge 是否有可用節點、終端機是否把請求交給本機代理、代理節點是否能正常連到目標服務。

台灣與香港使用者常見的情況是:瀏覽器可以開啟一般網站,但 Claude Code 在執行登入、更新或 API 請求時逾時;或者第一次回應成功,後續串流輸出突然中斷。這些現象不一定代表帳號或工具損壞,也可能是終端機沒有吃到代理、節點對長連線支援不佳、DNS 解析結果不穩定,甚至是本機代理連接埠填錯。

提示:先確認自己使用的是合法且可信任的網路服務,並遵守所在地法律、服務條款與帳號使用規範。代理只能改變網路請求的轉送路徑,不能繞過帳號權限或服務端限制。

安裝與檢查 Clash Verge 的基礎設定

第一次使用時,先在 Clash Verge Rev 或相容的 Clash Verge 客戶端中匯入一份有效配置。配置通常包含節點、策略組、規則與本機監聽連接埠。匯入後不要急著測試 Claude Code,先在客戶端裡確認配置檔已成功啟用,代理頁也能看到可選擇的節點。如果所有節點都顯示逾時、空白或灰色,應先處理訂閱更新問題,而不是繼續修改終端機參數。

在設定頁或目前配置的原始內容中,找出本機代理連接埠。常見設定可能如下,但實際數字必須以 Clash Verge 介面顯示的值為準:

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

mixed-port 通常同時接受 HTTP 代理與 SOCKS5 請求,是終端機最容易使用的入口。有些配置會分開設定 portsocks-port,也有些客戶端會使用其他預設值。不要因為網路文章常寫 7890,就直接把它填進環境變數;如果該連接埠沒有被核心監聽,Claude Code 只會得到 connection refused 或無法連線。

接著到代理頁選擇一個策略組。若策略組名稱是「自動選擇」「Proxy」「漏網之魚」或服務商自訂名稱,請點進去確認目前確實選中一個節點。使用 url-test 的策略組會按照測速結果自動挑選節點,但測速延遲只代表測速位址的往返時間,不等於 Claude Code 實際 API 請求的完整速度。使用 select 的策略組則需要手動選擇,排查時反而更容易確認究竟是哪個節點正在工作。

  • 先看延遲,再看穩定性:低延遲節點不一定適合串流回應,能連續維持長連線通常更重要。
  • 優先選擇台灣、香港或鄰近地區的穩定節點:距離較近通常有助於降低初始連線延遲,但仍要以實際測試結果為準。
  • 不要頻繁在多個節點間切換:每次切換後應重新測試,否則很難判斷問題是節點、規則還是終端機設定。
  • 確認節點協定與核心相容:mihomo 支援的協定範圍與舊版 Clash 核心不完全相同,配置中的新協定可能在不同客戶端表現不同。
注意:同一台電腦若同時執行 Clash Verge、Clash for Windows、其他代理工具或 VPN,可能出現多個程序搶用連接埠、路由互相覆蓋或 DNS 被重複接管的情況。測試 Claude Code 時先保留一套代理工具。

先用瀏覽器與終端機確認代理真的可用

不要一開始就把問題歸咎於 Claude Code。先確認 Clash Verge 的節點本身能否正常建立連線,再確認終端機是否能經過本機代理存取一般 HTTPS 網站。這樣可以把「節點故障」和「Claude Code 沒有使用代理」分開。

在 macOS 或 Linux 中,可以先用目前的混合連接埠執行以下指令。把 7890 換成 Clash Verge 實際顯示的連接埠:

curl -I -x http://127.0.0.1:7890 https://example.com

如果回傳 HTTP 標頭,代表 curl 至少能透過本機 HTTP 代理建立請求。這不能證明 Claude Code 的所有連線都一定正常,但可以確認本機連接埠、目前節點與基本 HTTPS 轉送沒有完全失效。若出現 Failed to connect to 127.0.0.1,優先檢查 Clash 核心是否正在執行及連接埠是否填對;若出現 Connection refused,通常是該連接埠沒有程序監聽;若是 Operation timed out,則要查看節點、規則或遠端連線。

也可以直接檢查本機連接埠是否在監聽。macOS 或 Linux 可執行:

lsof -nP -iTCP:7890 -sTCP:LISTEN

Windows PowerShell 可使用:

Get-NetTCPConnection -LocalPort 7890 -State Listen

如果指令沒有輸出,不代表一定是故障,也可能是你查詢了錯誤的連接埠。請回到 Clash Verge 的設定頁確認 mixed-port、HTTP port 或 SOCKS port。若使用的是 SOCKS5 入口,測試時要明確指定協定:

curl -I --proxy socks5h://127.0.0.1:7890 https://example.com

socks5h 會把網域解析也交給 SOCKS 代理端處理;單純使用 socks5 時,部分工具可能先在本機解析網域。兩者測試結果不同時,表示 DNS 路徑可能是問題來源。對需要存取特定服務的測試,不要把一次失敗直接當成帳號問題,應同時觀察 Clash Verge 的 Connections 與 Logs 頁面,查看請求是否出現、命中了哪條規則,以及最後使用了哪個節點。

在終端機設定 Claude Code 使用 Clash Verge

最容易控制、也最適合初次排查的方法,是在啟動 Claude Code 前設定代理環境變數。常見的變數包括大寫的 HTTP_PROXYHTTPS_PROXY,以及部分程式會讀取的小寫版本。HTTPS 請求通常應指定本機 HTTP 代理入口,因為「HTTPS_PROXY」描述的是要代理的目標協定,不代表本機代理一定要使用 HTTPS。

macOS 或 Linux 的當前終端機工作階段可以這樣設定:

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

claude

如果你的配置只提供 SOCKS5 連接埠,可以改成:

export ALL_PROXY="socks5h://127.0.0.1:7890"
claude

不同版本的 Claude Code、Node.js 網路函式庫與底層依賴,對代理環境變數的支援可能不完全一致。因此,建議先使用 HTTP 混合連接埠測試;若 HTTP 方式不通,再使用 SOCKS5 方式對照。也可以同時設定大寫和小寫,避免某個依賴只讀取其中一種:

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

這些指令只對目前的終端機工作階段有效。若確認設定沒有問題,想要每次開啟終端機都自動套用,可將它們加入 ~/.zshrc~/.bashrc 或你實際使用的 shell 設定檔。加入前要注意:所有命令列程式都可能繼承這些變數,包含套件管理器、部署工具與內部網路腳本;如果不希望所有程式都走代理,可以只在需要時手動執行,或寫一個專用啟動腳本。

Windows PowerShell 的當前工作階段設定方式如下:

$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:ALL_PROXY="http://127.0.0.1:7890"

claude

Windows 命令提示字元則可以使用:

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

claude

確認變數是否真的存在,不要只看自己輸入過指令。macOS 或 Linux 可執行 env | grep -i proxy,PowerShell 可執行 Get-ChildItem Env:*proxy*。若你在一個終端機視窗設定變數,卻在另一個已開啟的視窗啟動 Claude Code,後者不一定會繼承前一個視窗的設定。

提示:請勿把 API 金鑰、認證 Token 或包含敏感查詢參數的完整訂閱連結貼到公開日誌、截圖、Issue 或聊天群組。代理設定可以分享範例連接埠,但認證資料應該保留在本機安全環境。

Claude Code 登入與 API 請求的設定邊界

代理只能處理網路路徑,不能代替 Claude Code 完成登入、帳號驗證或權限設定。若終端機可以透過代理連到一般 HTTPS 網站,但 Claude Code 仍提示未授權、Token 無效或帳號不可用,應回到 Claude Code 的登入流程與帳號狀態檢查,不要繼續更換節點。

有些使用情境會使用 ANTHROPIC_BASE_URLANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 等環境變數。這些變數用途不同於 HTTP_PROXYHTTPS_PROXY:前者可能改變 API 端點或認證方式,後者只指定網路轉送路徑。除非你清楚知道所使用的服務端點、帳號方案與工具版本要求,否則不要隨意複製網路上的環境變數範例。

如果之前設定過自訂 API 位址,建議先列出目前環境變數,確認是否殘留舊值:

env | grep -E '^(ANTHROPIC|HTTP_PROXY|HTTPS_PROXY|ALL_PROXY|NO_PROXY)='

Windows PowerShell 可使用:

Get-ChildItem Env: | Where-Object {
  $_.Name -match '^(ANTHROPIC|HTTP_PROXY|HTTPS_PROXY|ALL_PROXY|NO_PROXY)'
}

如果你只是想測試原生登入流程,暫時移除不確定的自訂端點與認證變數,再保留代理變數重試,能更快判斷是「網路無法連線」還是「端點或認證設定錯誤」。請根據你使用的 Claude Code 版本與官方文件確認可用變數名稱,因為環境變數的支援範圍可能隨版本更新。

台港使用情境的節點與規則挑選方法

台灣與香港使用者在選節點時,不能只看名稱裡的地區標記。節點名稱通常是服務商自行命名,並不一定代表實際出口、機房位置或當下的網路品質。較可靠的做法是固定兩到三個候選節點,分別測試一般 HTTPS 請求、Claude Code 登入或請求流程,以及一段較長的串流回應,再根據結果保留穩定者。

  • 台灣節點:通常適合台灣本地網路,初始延遲可能較低,但不同電信業者到同一節點的路由差異很大。
  • 香港節點:對部分台灣或海外服務可能有較短路徑,但尖峰時段的機房負載和跨境路由仍可能造成抖動。
  • 日本、新加坡或其他鄰近節點:當台港節點擁塞時可以作為對照組,不要只因地理距離較遠就直接排除。
  • 長連線穩定性:Claude Code 的回應可能持續一段時間,節點要能維持 TCP/TLS 連線,單次測速很快並不代表長時間輸出不會中斷。

在規則模式下,Claude Code 相關網域可能被分到不同策略組。你可以在 Clash Verge 的 Connections 頁面啟動 Claude Code,再搜尋與服務請求相關的網域,查看命中的規則和代理策略。若請求落到 DIRECT,而你的網路環境需要透過代理才能連線,就需要調整規則或切換到合適的全域測試模式。全域模式只適合短時間排錯,不建議在不了解影響範圍的情況下長期使用。

切換節點或模式後,應先停止正在執行的 Claude Code,再重新啟動。已建立的連線不一定會自動改走新節點;只看 Clash Verge 目前選單上的節點名稱,不能代表舊連線已經重新建立。

常見故障排除與判斷順序

連接被拒絕或無法連到 127.0.0.1

這類錯誤通常指向本機代理入口,而不是遠端服務。先確認 Clash Verge 核心已啟動,再確認環境變數中的連接埠和配置檔的 mixed-port 一致。若曾經修改連接埠,請關閉並重新開啟系統代理,並檢查 shell 設定檔是否仍然保留舊值。

瀏覽器正常但 Claude Code 仍然逾時

這通常表示瀏覽器使用了系統代理,而終端機沒有使用任何代理。先在啟動 Claude Code 的同一個終端機裡檢查 HTTP_PROXYHTTPS_PROXYALL_PROXY,再用 curl 以相同代理設定測試。若 curl 透過代理正常,而 Claude Code 仍失敗,應查看工具版本、登入狀態、自訂端點與認證變數,而不是繼續測速節點。

可以登入但回應中途停止

回應中途停止可能與節點的長連線穩定性、代理服務的閒置逾時、網路短暫丟包或本機睡眠狀態有關。先換另一個節點做對照,觀察 Clash Verge 日誌中是否出現 EOFconnection resetcontext deadline exceededi/o timeout。如果只有單一節點發生,優先停用該節點;如果所有節點都發生,再檢查本機防火牆、VPN、TUN 與代理環境變數。

開啟 TUN 後反而無法連線

TUN 模式會透過虛擬網路卡和路由表接管更多流量,對權限、DNS、系統路由和其他 VPN 工具的相容性要求也較高。若只是要讓 Claude Code 讀取代理環境變數,通常先使用系統代理加環境變數即可,不必一開始就開啟 TUN。只有在終端機工具完全不支援代理設定、或需要接管不讀取環境變數的流量時,再把 TUN 作為第二階段方案。

注意:TUN 與系統代理同時啟用時,實際行為會受客戶端、核心版本與系統路由影響。排查時先只保留一種接管方式,避免兩條路徑疊加造成循環或重複代理。

一套適合初學者的完整測試流程

如果你不確定問題在哪裡,可以按照由近到遠的順序測試,不需要一次修改多個設定。第一步,開啟 Clash Verge,確認配置檔啟用、策略組選中節點,並在代理頁測試延遲。第二步,確認本機連接埠正在監聽,使用 curl 指定 http://127.0.0.1:連接埠 測試一般 HTTPS 網站。第三步,在同一個終端機設定代理環境變數,再檢查變數確實存在。第四步,重新啟動 Claude Code,觀察 Connections 與 Logs 是否出現對應請求。第五步,若請求已經進入 Clash 但仍失敗,才檢查節點、規則、DNS、登入與自訂端點。

  1. 確認 Clash Verge 核心正在執行,且目前配置不是空配置。
  2. 確認策略組中有實際選中的節點,並測試至少兩個候選節點。
  3. 確認 mixed-port 或 SOCKS5 連接埠,避免照抄預設數字。
  4. 用 curl 指定代理測試一般 HTTPS 連線。
  5. 在啟動 Claude Code 的同一個終端機設定 HTTP_PROXYHTTPS_PROXYALL_PROXY
  6. 查看 Clash Verge Connections,確認請求是否進入核心、命中何種規則以及使用哪個節點。
  7. 若本機請求成功但工具報認證錯誤,回到登入、Token、API 端點與帳號權限檢查。

完成這套流程後,通常可以把問題明確分成三類:本機代理沒有啟動、終端機沒有把流量交給代理,或遠端節點與服務請求本身不穩定。每次只改一個變數並重新測試,保留成功與失敗時的節點、連接埠和錯誤訊息,後續需要更新配置或尋求服務商協助時會更有效率。

取得全平台 Clash 客戶端

Windows、macOS、Android、iOS、Linux 安裝包與配置說明。

取得全平台 Clash 用戶端

Windows、macOS、Android、iOS、Linux 安裝包與設定說明。

下載用戶端