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 請求,是終端機最容易使用的入口。有些配置會分開設定 port 與 socks-port,也有些客戶端會使用其他預設值。不要因為網路文章常寫 7890,就直接把它填進環境變數;如果該連接埠沒有被核心監聽,Claude Code 只會得到 connection refused 或無法連線。
接著到代理頁選擇一個策略組。若策略組名稱是「自動選擇」「Proxy」「漏網之魚」或服務商自訂名稱,請點進去確認目前確實選中一個節點。使用 url-test 的策略組會按照測速結果自動挑選節點,但測速延遲只代表測速位址的往返時間,不等於 Claude Code 實際 API 請求的完整速度。使用 select 的策略組則需要手動選擇,排查時反而更容易確認究竟是哪個節點正在工作。
- 先看延遲,再看穩定性:低延遲節點不一定適合串流回應,能連續維持長連線通常更重要。
- 優先選擇台灣、香港或鄰近地區的穩定節點:距離較近通常有助於降低初始連線延遲,但仍要以實際測試結果為準。
- 不要頻繁在多個節點間切換:每次切換後應重新測試,否則很難判斷問題是節點、規則還是終端機設定。
- 確認節點協定與核心相容:mihomo 支援的協定範圍與舊版 Clash 核心不完全相同,配置中的新協定可能在不同客戶端表現不同。
先用瀏覽器與終端機確認代理真的可用
不要一開始就把問題歸咎於 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_PROXY、HTTPS_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,後者不一定會繼承前一個視窗的設定。
Claude Code 登入與 API 請求的設定邊界
代理只能處理網路路徑,不能代替 Claude Code 完成登入、帳號驗證或權限設定。若終端機可以透過代理連到一般 HTTPS 網站,但 Claude Code 仍提示未授權、Token 無效或帳號不可用,應回到 Claude Code 的登入流程與帳號狀態檢查,不要繼續更換節點。
有些使用情境會使用 ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN 等環境變數。這些變數用途不同於 HTTP_PROXY 與 HTTPS_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_PROXY、HTTPS_PROXY 或 ALL_PROXY,再用 curl 以相同代理設定測試。若 curl 透過代理正常,而 Claude Code 仍失敗,應查看工具版本、登入狀態、自訂端點與認證變數,而不是繼續測速節點。
可以登入但回應中途停止
回應中途停止可能與節點的長連線穩定性、代理服務的閒置逾時、網路短暫丟包或本機睡眠狀態有關。先換另一個節點做對照,觀察 Clash Verge 日誌中是否出現 EOF、connection reset、context deadline exceeded 或 i/o timeout。如果只有單一節點發生,優先停用該節點;如果所有節點都發生,再檢查本機防火牆、VPN、TUN 與代理環境變數。
開啟 TUN 後反而無法連線
TUN 模式會透過虛擬網路卡和路由表接管更多流量,對權限、DNS、系統路由和其他 VPN 工具的相容性要求也較高。若只是要讓 Claude Code 讀取代理環境變數,通常先使用系統代理加環境變數即可,不必一開始就開啟 TUN。只有在終端機工具完全不支援代理設定、或需要接管不讀取環境變數的流量時,再把 TUN 作為第二階段方案。
一套適合初學者的完整測試流程
如果你不確定問題在哪裡,可以按照由近到遠的順序測試,不需要一次修改多個設定。第一步,開啟 Clash Verge,確認配置檔啟用、策略組選中節點,並在代理頁測試延遲。第二步,確認本機連接埠正在監聽,使用 curl 指定 http://127.0.0.1:連接埠 測試一般 HTTPS 網站。第三步,在同一個終端機設定代理環境變數,再檢查變數確實存在。第四步,重新啟動 Claude Code,觀察 Connections 與 Logs 是否出現對應請求。第五步,若請求已經進入 Clash 但仍失敗,才檢查節點、規則、DNS、登入與自訂端點。
- 確認 Clash Verge 核心正在執行,且目前配置不是空配置。
- 確認策略組中有實際選中的節點,並測試至少兩個候選節點。
- 確認
mixed-port或 SOCKS5 連接埠,避免照抄預設數字。 - 用 curl 指定代理測試一般 HTTPS 連線。
- 在啟動 Claude Code 的同一個終端機設定
HTTP_PROXY、HTTPS_PROXY或ALL_PROXY。 - 查看 Clash Verge Connections,確認請求是否進入核心、命中何種規則以及使用哪個節點。
- 若本機請求成功但工具報認證錯誤,回到登入、Token、API 端點與帳號權限檢查。
完成這套流程後,通常可以把問題明確分成三類:本機代理沒有啟動、終端機沒有把流量交給代理,或遠端節點與服務請求本身不穩定。每次只改一個變數並重新測試,保留成功與失敗時的節點、連接埠和錯誤訊息,後續需要更新配置或尋求服務商協助時會更有效率。
取得全平台 Clash 客戶端
Windows、macOS、Android、iOS、Linux 安裝包與配置說明。