先理解 Claude Code 與 Clash Verge 的分工
Claude Code 是在終端機中執行的開發工具,會透過網路連線到 Anthropic 相關服務,完成登入、讀取專案資訊、提交提示與接收模型回應。Clash Verge 則是本機代理客戶端,負責匯入訂閱、選擇節點,並在本機建立 HTTP、HTTPS、SOCKS5 或 TUN 流量入口。兩者不是同一個工具,也不存在「把 Claude Code 設定檔匯入 Clash Verge」這種操作;正確做法是先讓 Clash Verge 的核心正常運作,再讓終端機透過它提供的代理連接埠出站。
常見的失敗狀況包括:瀏覽器可以開啟網頁,但終端機登入失敗;Clash Verge 已經開啟系統代理,curl 或 Claude Code 仍然逕行連線;訂閱匯入成功,卻因規則把 Anthropic 網域送到 DIRECT 而無法完成驗證。這些問題通常不是帳號本身失效,而是「代理入口、環境變數、分流規則」其中一層沒有接上。
先記住一條最重要的判斷:系統代理只對會主動讀取系統代理設定的程式有效,終端機工具通常需要環境變數;TUN 模式則在 IP 層接管流量,但仍然需要正確的 DNS 與代理規則。若只是要讓 Claude Code 使用代理,建議先用系統代理加環境變數完成最小設定,確認穩定後再考慮 TUN。
匯入訂閱並確認本機代理入口
開啟 Clash Verge 後,先進入「訂閱」頁,點擊「新增」,填入訂閱名稱與服務商提供的訂閱連結,再按「確認」或「儲存」。完成下載後,按訂閱卡片上的「更新」,確認節點數量不是 0,且設定檔能夠成功載入。訂閱連結通常包含 token,不要貼到公開論壇、截圖或終端機錄影中;一旦外洩,其他人可能使用你的流量或消耗方案額度。
匯入後進入「代理」頁,先選擇一個延遲正常、最近仍可用的節點或策略組。不要一開始就使用複雜的自動選擇組合,因為自動測試、健康檢查與多層代理會讓排查變得困難。先選定一個節點,等 Claude Code 可以正常登入,再改回自動選擇或故障轉移策略。
接著進入「設定」→「連接埠」,查看目前的混合代理連接埠。部分版本預設使用 7897,其他版本或自訂設定可能使用 7890、7891 或其他數字,不能只照搬網路文章。混合連接埠通常同時接受 HTTP 與 SOCKS5,因此終端機設定可優先使用它。可以在終端機執行下列命令確認 HTTP 入口是否真的能連線:
curl -I -x http://127.0.0.1:7897 https://api.anthropic.com
如果你的混合連接埠不是 7897,請替換成 Clash Verge 顯示的實際數值。回應出現 HTTP 狀態碼,代表請求已經抵達遠端服務或至少通過代理鏈路;即使是 401、403 或 404,也比「Could not connect」更能證明本機代理入口正常。若顯示 connection refused,先檢查 mihomo 核心是否啟動、連接埠是否填錯,以及是否有其他程式占用該連接埠。
不要把「能開啟 Clash Verge」當成代理已經正常。客戶端介面可以啟動,但 mihomo 核心可能沒有載入設定、節點未選取,或混合連接埠並未監聽。先用 curl -I -x 測試本機入口,再測試 Claude Code。
在終端機設定 Claude Code 代理
Claude Code 所在的終端機程序不一定會讀取 Windows 或 macOS 的系統代理,因此建議明確設定 HTTP_PROXY、HTTPS_PROXY 與必要時的 ALL_PROXY。若 Clash Verge 的混合連接埠是 7897,可以依照作業系統選擇下列方法。代理位址只使用本機 127.0.0.1,不要把它改成訂閱伺服器位址。
Windows PowerShell 設定
在啟動 Claude Code 的同一個 PowerShell 視窗執行:
$env:HTTP_PROXY="http://127.0.0.1:7897"
$env:HTTPS_PROXY="http://127.0.0.1:7897"
$env:ALL_PROXY="socks5://127.0.0.1:7897"
claude
這種寫法只對目前視窗與由它啟動的子程序有效,關閉視窗後不會永久保留,適合先測試。若確認可用,再到 Windows「設定」→「系統」→「關於」→「進階系統設定」→「環境變數」加入使用者層級變數。第一次排查時不建議直接寫入系統層級,避免其他開發工具意外全部經過代理。
macOS 與 Linux 設定
在 bash、zsh 或其他常見 shell 中執行:
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export ALL_PROXY=socks5://127.0.0.1:7897
claude
若你的 shell 使用大小寫敏感的工具鏈,建議同時設定小寫版本:
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export all_proxy="$ALL_PROXY"
不需要同時把 HTTP、HTTPS 與 SOCKS5 全部設定成不同的連接埠。一般情況使用 Clash Verge 顯示的混合連接埠即可;若使用 SOCKS5 連接埠,請確認該連接埠確實存在,並將協定寫成 socks5:// 或 socks5h://。其中 socks5h 會把網域解析也交給代理端,對 DNS 受污染或本地解析結果不穩定的環境較有幫助,但並非每個命令列工具都支援這個寫法。
| 設定方式 | 適用情境 | 注意事項 |
|---|---|---|
| 系統代理 | 瀏覽器、部分圖形介面工具 | 終端機程式可能完全不讀取 |
| HTTP_PROXY / HTTPS_PROXY | curl、npm、部分 SDK 與 CLI | 只對讀取環境變數的工具有效 |
| ALL_PROXY | 支援 SOCKS 的命令列工具 | 需確認工具本身支援 SOCKS |
| TUN 模式 | 不讀代理設定的程式、UDP 或多程序工具 | 需要服務模式、管理員或系統權限 |
動手測試登入與代理鏈路
完成環境變數設定後,不要直接把問題歸因於 Claude Code。先按照「本機連接埠 → 遠端網域 → 終端工具 → 登入流程」的順序測試,每一步只驗證一件事。這樣即使最後登入仍失敗,也能知道故障落在哪一層。
- 在 Clash Verge 的「代理」頁確認目前有選定節點,並觀察流量或連線數是否會變化。
- 執行
curl -I -x http://127.0.0.1:7897 https://api.anthropic.com,確認混合連接埠可以建立 HTTPS 連線。 - 在同一個終端機執行
curl -I https://api.anthropic.com,比較未設定代理時的結果。若只有加上-x才能通,代表環境變數可能沒有被目前 shell 或工具讀取。 - 確認環境變數沒有多餘引號、全形標點或錯誤連接埠。Windows PowerShell 與 macOS shell 的設定語法不同,不要混用。
- 最後再執行
claude,依畫面提示進行登入。登入流程可能開啟瀏覽器,也可能要求複製驗證網址;瀏覽器與終端機需要使用同一組可用的代理路徑。
可以用下表快速判讀結果:
| 現象 | 判斷 | 優先處理 |
|---|---|---|
| curl 顯示 connection refused | 本機連接埠沒有服務 | 檢查核心狀態與實際混合連接埠 |
| 加 -x 可通,直接 curl 不通 | 環境變數或系統代理未生效 | 在同一個 shell 重新設定變數 |
| curl 可通,Claude Code 逾時 | 工具未讀取代理或登入網域未分流 | 檢查大小寫變數與 Clash 日誌 |
| 瀏覽器登入成功,終端機失敗 | 兩者使用不同代理路徑 | 明確設定 CLI 的 HTTP 代理 |
| 出現 401 或驗證錯誤 | 網路可能已通,帳號或登入狀態需確認 | 重新登入,不要先反覆更換節點 |
測試完成後,如果 Claude Code 已能正常開啟,建議記錄當時使用的節點、代理連接埠與 shell 設定。之後更換 Clash Verge 設定或訂閱時,可以快速對照,而不是重新猜測哪一個環節出了問題。
為 Anthropic 服務建立分流規則
即使代理本身正常,規則仍可能把請求送到錯誤的出口。Claude Code 的實際連線可能不只涉及單一 API 網域,登入、驗證、模型請求與更新流程也可能使用不同的服務端點。因此不建議只憑一個網域名稱就下結論,應該先查看 Clash Verge 的「連線」或「日誌」,找出被拒絕、逾時或走向 DIRECT 的網域,再依實際記錄補充規則。
如果你的設定檔允許修改 rules,基本分流可以把已確認的 Anthropic 相關網域送到同一個代理策略組。示例中的策略組名稱必須與你的設定檔完全一致:
rules:
- DOMAIN-SUFFIX,anthropic.com,PROXY
- DOMAIN-SUFFIX,claude.ai,PROXY
- MATCH,DIRECT
有些訂閱使用遠端規則集,使用者本地直接修改可能在更新後被覆蓋。這種情況可在 Clash Verge 的覆寫或設定檔管理功能中加入自訂規則,並把規則放在通用的 MATCH 之前。規則是由上到下比對,若 MATCH,DIRECT 排在前面,後面新增的 Anthropic 規則永遠不會執行。
不建議把所有流量永久設定成代理,也不建議把不熟悉的網域全部加入白名單。較好的做法是只代理必要的服務,其他流量依地區與安全需求分流。若工作環境包含公司內網、版本庫或本地服務,還應保留內網直連規則,避免開啟 TUN 後無法存取 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 等私有網段。
系統代理與 TUN 模式如何選擇
如果 Claude Code 已經支援 HTTP_PROXY 與 HTTPS_PROXY,優先使用系統代理加環境變數通常最容易理解,也不需要修改系統路由。它適合在固定專案、固定終端機中使用,關閉終端機後代理設定也會自然失效。
TUN 模式適合下列情況:某個工具完全不讀取代理環境變數;開發流程同時啟動多個子程序,難以確保每個程序都繼承變數;還需要接管 Git、套件管理器、容器工具或其他不支援 HTTP 代理的應用程式。開啟方法通常是「設定」→「服務模式」先安裝必要服務,再到「設定」→「TUN 模式」開啟。Windows 可能需要管理員權限,macOS 可能需要允許系統網路擴充功能。
TUN 並不是開啟後就一定更穩。它會修改路由與 DNS 行為,如果 Fake-IP、DNS 劫持或內網排除規則不合適,可能出現登入頁打不開、區域網路中斷或本地開發服務無法連線。開啟後應檢查 Clash Verge 的連線日誌,確認 Claude Code 相關流量確實進入代理策略組;若請求完全沒有記錄,可能是路由未接管、程序使用特殊網路命名空間,或流量被其他 VPN 軟體截走。
常見登入失敗與安全清理
「登入失敗」不一定代表代理失效。若瀏覽器驗證頁面能載入,但完成授權後終端機沒有反應,先檢查是否在不同的終端機視窗設定了環境變數。Claude Code 必須從已設定代理的同一個 shell 啟動;只在另一個視窗執行 export 或 PowerShell 命令,不會影響目前的程序。
若出現 TLS、憑證或握手錯誤,先關閉其他 VPN、透明代理與瀏覽器代理擴充功能,避免多層代理互相攔截。也不要隨意安裝來源不明的根憑證,Clash Verge 本身不需要透過安裝陌生 CA 憑證才能代理一般 HTTPS 流量。若公司網路使用強制 HTTPS 檢查,請向管理員確認政策,不要自行繞過企業安全機制。
完成排查後,可以清理臨時環境變數。PowerShell 可執行:
Remove-Item Env:HTTP_PROXY
Remove-Item Env:HTTPS_PROXY
Remove-Item Env:ALL_PROXY
macOS 或 Linux 可執行:
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY
unset http_proxy https_proxy all_proxy
如果曾將代理寫入 shell 啟動檔或 Windows 使用者環境變數,請同步移除,否則之後所有 Git、npm、pip 或其他命令列工具都可能繼續走代理。最後重新開啟終端機,確認 env 或 PowerShell 的環境變數列表中沒有殘留內容,再依需要只為 Claude Code 的工作階段設定代理。這樣既能維持連線穩定,也能減少 token、訂閱連結與本機網路資訊外洩的風險。