Claude Code 台灣香港怎麼用?Clash Verge 終端連線教學

Claude Code 能在終端機中協助寫程式、閱讀專案及執行開發工作,但連線品質會影響整體效率。本文以新手能看懂的方式,示範使用 Clash Verge 設定終端機代理與流量分流。

mihomo 核心·TUN 接管模式·procd 開機守護·OpenWrt 23.05 示範環境
適用平台 Windows / macOS / Linux·圖形客戶端 Clash Verge Rev·操作重點 終端代理與規則分流

Claude Code 為什麼需要單獨設定終端代理

Claude Code 是在終端機中執行的開發工具,可以協助閱讀專案、產生與修改程式碼、執行測試,也能依照工作流程呼叫遠端服務。它與瀏覽器代理有一個很容易被忽略的差異:瀏覽器通常會讀取系統代理設定,終端機中的 Node.js、Python、Git、curl 或其他命令列程式,則各自決定是否讀取環境變數。即使 Clash Verge 已經顯示「系統代理」開啟,Claude Code 所在的終端程序也不一定會自動經過 Clash。

在台灣、香港或其他地區使用時,實際連線結果會受到電信路由、DNS、IPv6、代理節點出口位置、帳戶所在地區與服務政策共同影響。Clash Verge 能處理的是本機流量轉送與分流,不能改變 Claude 帳戶的資格,也不能保證某個地區一定可以註冊或使用服務。使用前應確認 Anthropic 的帳戶、付款與服務條款適用於所在地區,並避免把帳戶憑證、API 金鑰或專案機密貼入不可信的終端工具。

本文採用最容易排查的架構:Clash Verge Rev 在本機開啟 HTTP 或 mixed-port,終端機透過 HTTP_PROXYHTTPS_PROXYALL_PROXY 指向該埠,再由 Clash 的規則決定 Anthropic 相關網域走代理、區域網路與一般本地服務走直連。這樣做的好處是範圍清楚,關閉環境變數後即可恢復原本的終端連線,不會把所有應用程式永久改成代理模式。

先在 Clash Verge 確認埠號與運作模式

安裝 Clash Verge Rev 後,先匯入自己的訂閱或設定檔,選取一份可以正常載入的設定。不同版本、不同訂閱提供者的埠號不一定相同,不要直接照抄網路文章中的數字。打開 Clash Verge 的設定頁,找到「代理埠」「混合埠」或相近名稱的欄位,記下目前使用的本機位址與埠號。常見形式是 127.0.0.1:7890127.0.0.1:7897,但真正值應以畫面顯示為準。

如果設定檔同時提供 HTTP 與 SOCKS5,新手優先使用 mixed-port。它通常可以同時接收 HTTP 代理請求與 SOCKS5 請求,終端工具相容性較高。若只有 SOCKS5 埠,也可以透過 ALL_PROXY=socks5://127.0.0.1:埠號 使用;若需要讓 DNS 查詢也經過 SOCKS 代理,可使用 socks5h:// 而不是 socks5://,前提是該工具支援這個寫法。

項目建議檢查內容常見問題
核心優先確認為 mihomo,並查看設定是否成功載入舊核心不支援訂閱內使用的新欄位
代理埠記下 Clash Verge 畫面顯示的 HTTP、SOCKS 或 mixed-port把控制介面 9090 誤當成代理埠
模式使用 Rule 模式,讓規則決定 Anthropic 流量的去向Global 模式造成所有套件與內網請求繞路
系統代理可開啟供瀏覽器測試,但終端仍要檢查環境變數以為系統代理等於所有命令列程式都會代理
節點先以延遲穩定、出口位置符合需求的節點測試只看一次延遲數字,忽略丟包與長連線穩定性

代理埠與 external-controller 是兩個不同概念。代理埠負責接收應用程式的 HTTP、HTTPS 或 SOCKS 流量;external-controller 則供客戶端與面板讀取狀態、切換策略與管理核心。終端機的 HTTP_PROXY 不應填入控制介面埠,否則 curl 會收到非代理協定的回應,看起來像「代理失效」。

批注

若你在台灣或香港使用公司、學校或共享網路,請先確認該網路允許代理軟體與外部連線。Clash 的設定只應服務於合法、獲授權的網路用途,不要用它繞過組織的存取控制。

動手設定終端機代理

完成 Clash Verge 的埠號確認後,在同一台電腦開啟新的終端機視窗。以下以 127.0.0.1:7890 作為示例,如果你的 mixed-port 不同,請將所有命令中的埠號換成實際值。先設定大寫環境變數,因為許多命令列程式優先讀取大寫名稱:

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"
export NO_PROXY="localhost,127.0.0.1,::1,.local"

這組命令適用於 macOS、Linux 以及使用 Bash 或 Zsh 的終端。若 Clash Verge 的埠只提供 SOCKS5,可將前三個變數改為對應的 socks5:// 位址;對需要代理 DNS 的工具,再視支援情況改用 socks5h://。不要在同一個變數中混入多個協定或路徑,代理 URL 應保持單純。

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 = "localhost,127.0.0.1,::1,.local"

環境變數只對目前終端視窗及其子程序有效。也就是說,在該視窗啟動的 Claude Code、curl、Git 或 npm 會繼承設定;關閉視窗後設定通常就消失。若希望每次開啟終端都套用,macOS/Linux 可把 export 行加入 ~/.zshrc~/.bashrc,PowerShell 可透過個人設定檔加入相應內容。建議先採用臨時設定測試,確認無誤後再決定是否永久保存。

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
set NO_PROXY=localhost,127.0.0.1

設定完成後,先不要急著啟動 Claude Code,用 curl 檢查本機代理是否有回應:

curl -I https://api.anthropic.com
curl -I https://claude.ai

這裡的目的不是要求兩個網址一定回傳特定 HTTP 狀態,而是觀察請求是否能完成、是否出現 connection refused、超時或 TLS 錯誤。若本機代理埠沒有監聽,通常會看到連線被拒絕;若節點或遠端服務不穩定,則可能在 TLS 握手或讀取回應時超時。測試時應同時查看 Clash Verge 的連線記錄,確認請求是否出現在連線列表中。

操作順序

先確認 Clash Verge 的節點可用,再設定終端環境變數,接著用 curl 測試,最後才啟動 Claude Code。每一步只驗證一個環節,比直接在工具內反覆重試更容易定位問題。

為 Claude Code 建立清楚的分流規則

終端代理只負責把流量送到 Clash,最終走哪個節點仍由設定檔的 rules 決定。若訂閱已有完整規則,可以先在 Clash Verge 的連線頁搜尋 anthropicclaude 等關鍵字,確認相關請求實際命中了哪個策略組。若需要加入自訂規則,應使用訂閱覆寫或客戶端提供的規則編輯功能,不要直接修改每次更新都會被覆蓋的原始訂閱檔。

rules:
  - DOMAIN-SUFFIX,anthropic.com,Claude Proxy
  - DOMAIN-SUFFIX,claude.ai,Claude Proxy
  - DOMAIN-SUFFIX,console.anthropic.com,Claude Proxy
  - DOMAIN,localhost,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - MATCH,DIRECT

上面的 Claude Proxy 只是示例策略名稱,必須替換成你的設定檔中已存在的策略組或節點名稱。若你的策略組叫「節點選擇」「Proxy」或其他名稱,規則第三欄就要逐字使用該名稱。不存在的策略名稱會使規則無法正常套用,大小寫與空格也不能任意更改。

規則順序同樣重要。精確的 DOMAIN 規則應放在較寬泛的 DOMAIN-SUFFIX 規則之前;自訂規則若要優先於訂閱規則,必須確認覆寫後的最終清單確實把它插入前方。MATCH 只能作為最後兜底,不能放在 Claude 相關規則上方。若最後採用 MATCH,DIRECT,代表其他未命中的流量直連;若希望所有未特別放行的流量也走代理,可改成 MATCH,Claude Proxy,但這會增加一般套件、映像檔與內網服務的延遲,應按實際需求選擇。

流量類型建議去向理由
Anthropic API 與登入相關網域指定代理策略組集中觀察節點穩定性,避免不同請求走不同出口
localhost、127.0.0.1、::1DIRECT本機開發服務不應繞到遠端節點
內網網域與私有 IPDIRECT避免公司、家用 NAS 或測試服務無法存取
npm、PyPI、容器映像檔依各自需求分流不一定與 Claude Code 使用同一條出口
其他未命中流量由 MATCH 明確指定讓設定行為可預期,方便日後排查

啟動後如何驗證與排錯

完成設定後,在同一個已載入環境變數的終端機中啟動 Claude Code。首次使用可能涉及瀏覽器登入、裝置授權或 API 金鑰設定,這些流程應以目前工具顯示的提示為準,不要把網路文章中的舊參數當成固定介面。Claude Code 啟動成功只代表程式本身能運作,不代表每個 API 請求都已經命中預期節點,因此仍要觀察 Clash Verge 的連線記錄。

可以按以下順序檢查:

  1. 確認環境變數已被子程序繼承

    macOS/Linux 執行 env | grep -i proxy,PowerShell 執行 Get-ChildItem Env:*proxy*。如果沒有輸出,表示設定命令尚未套用到目前視窗。

  2. 確認本機埠可連線

    用 curl 透過同一組代理請求 https://api.anthropic.com,並在 Clash Verge 的連線頁查看請求。若看不到記錄,先處理環境變數或代理埠問題。

  3. 確認規則命中策略

    在連線記錄中查看目標網域與策略組名稱。若命中 DIRECT,檢查自訂規則位置、策略名稱和 MATCH 順序。

  4. 確認節點與帳戶狀態

    若請求已經經過正確節點仍收到拒絕、授權失敗或地區相關訊息,問題可能在帳戶、金鑰、服務政策或節點出口,不一定是 Clash 設定錯誤。

  5. 逐一停用額外代理

    檢查 shell 設定檔、Git 全域 proxy、npm proxy、VPN 與 TUN 是否重複接管。同時開啟多層代理容易造成迴圈、TLS 錯誤或請求走錯出口。

常見的 ECONNREFUSED 通常表示本機埠沒有服務、埠號寫錯或 Clash Verge 尚未啟動。ETIMEDOUT 則可能與節點不可用、路由丟包、DNS 或防火牆有關。若出現憑證錯誤,不要第一時間使用停用 TLS 驗證的方式繞過;先檢查系統時間、代理鏈是否重複、是否有企業安全軟體攔截 HTTPS,以及終端所使用的 Node.js 或系統憑證庫是否正常。

如果瀏覽器能開啟 Claude 網頁,但 Claude Code 仍失敗,優先檢查三件事:瀏覽器是否使用了獨立擴充功能代理,終端是否真的繼承了代理變數,以及命令列工具是否需要另外設定自己的 proxy。反過來,若 curl 與 Claude Code 都失敗,則先回到 Clash Verge 的代理埠、節點連通性與規則命中結果,不要急著修改 Claude Code 的專案設定。

穩定使用與安全注意事項

對日常開發而言,最穩定的方式通常是「只代理必要的服務,其餘流量按規則處理」。把終端全部切成 Global 模式雖然簡單,卻可能讓 Git 內網倉庫、公司套件鏡像、Docker registry 或 SSH 連線受到影響。可以為需要代理的 API 與登入網域建立明確規則,為 localhost、私有網段與內網網域保留 DIRECT,再用連線記錄確認結果。

使用 Claude Code 時也要把終端代理與資料安全分開考慮。代理節點提供者可能看到連線的目標網域、時間與流量特徵;HTTPS 內容通常由端到端加密保護,但不應因此把 API 金鑰、私鑰、資料庫密碼、客戶資料或未公開原始碼直接放入不必要的提示內容。專案內可使用環境變數與忽略檔管理秘密,並檢查工具產生的日誌、快取與 shell history,避免憑證被長期保存。

若要暫時恢復直連,macOS/Linux 可以執行:

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY NO_PROXY

PowerShell 可以執行:

Remove-Item Env:HTTP_PROXY,Env:HTTPS_PROXY,Env:ALL_PROXY,Env:NO_PROXY

恢復後再次用 curl 測試,並在 Clash Verge 連線頁確認請求不再出現,即可判斷代理範圍已經解除。最後,將 Clash Verge、mihomo 核心與 Claude Code 維持在可信的正式來源與可支援版本,更新前備份目前設定,尤其是規則覆寫、策略組名稱與環境變數內容。這套流程不依賴某一個固定埠號或單一節點,日後更換訂閱、電腦或網路環境時,只要重新確認「代理入口、終端變數、規則命中、帳戶狀態」四個環節,就能快速完成遷移。

下載 Clash
下載Clash