macOS Clash 客戶端權限設定:網路延伸功能授權與鑰匙圈密碼提示

在終端機執行 Claude Code,若碰上登入卡住、請求逾時或回應忽快忽慢,可以先檢查代理與路由設定。本篇帶你用 Clash Verge 匯入設定檔、挑選合適節點,再為 Claude Code 流量安排規則分流;也整理終端代理環境變數與常見排錯方向。服務能否使用仍須視所在地區、帳戶狀態及網路條件而定。

先分清 Claude Code、終端機與 Clash Verge 的連線路徑

Claude Code 在終端機出現請求逾時、連線重設或無法連線時,問題未必在訂閱或節點本身。一次請求可能先經過 Claude Code 的環境設定,再由終端機所在的作業系統或代理程式建立連線,接著進入 Clash Verge 的本機監聽連接埠、規則與策略組,最後才由選定的節點連往服務端。瀏覽器能正常使用,不代表命令列工具也會自動沿用瀏覽器或系統代理設定。

Clash Verge 是圖形化用戶端,實際處理流量的是它啟動的代理核心;Claude Code 則是命令列工具。兩者需要透過可用的本機代理入口接起來。排查前先記錄目前使用的設定檔、核心是否正在運作、代理模式、混合代理連接埠,以及終端機啟動 Claude Code 時所在的 Shell。不要同時更改節點、規則、DNS 和環境變數,否則測試結果很難比較。

症狀優先檢查
瀏覽器正常,Claude Code 逾時終端機是否有代理環境變數,以及它們指向的連接埠是否正確
所有應用程式都無法連線Clash Verge 核心狀態、本機監聽連接埠、節點可用性與系統代理
啟動後很快收到拒絕或連線錯誤代理位址、連接埠、代理類型和本機是否確實有程序監聽
能連線但登入或服務請求失敗帳戶授權、服務可用性、規則命中結果與終端機日誌

檢查 Clash Verge 設定檔、節點與本機連接埠

先在 Clash Verge 中確認目前使用的設定檔已成功載入,核心處於執行狀態,並且代理策略組有選到可用節點。介面選單會隨版本與作業系統略有不同,可從設定檔、代理、連線及日誌等頁面確認這些資訊。若訂閱最近更新過,請核對更新後核心仍能載入設定;設定解析錯誤時,即使視窗仍開著,也不應假設代理入口已正常工作。

接著查看設定中的 mixed-port,或在客戶端的設定頁確認實際混合代理連接埠。以下以 7890 示範,並非所有 Clash Verge 安裝都使用這個數值。混合代理通常同時接受 HTTP 與 SOCKS 請求,因此可先用 HTTP 代理格式供 Claude Code 測試。請勿將遠端節點的伺服器位址誤填成終端機要連線的本機代理位址。

mixed-port: 7890
allow-lan: false
mode: rule

allow-lan: false 表示不向區域網路開放代理服務;同一台電腦上的終端機連到 127.0.0.1,通常不需要開啟區域網路存取。若實際使用的是 port 或 socks-port,請依該連接埠提供的代理類型設定環境變數,不能只把數字照抄到其他欄位。

確認本機代理正在監聽

在 Windows PowerShell 可用 Get-NetTCPConnection 檢查監聽狀態;macOS 或 Linux 則可使用系統已有的 lsof。執行前先把範例中的 7890 換成 Clash Verge 顯示的實際連接埠。

# Windows PowerShell
Get-NetTCPConnection -LocalPort 7890 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

# macOS 或 Linux
lsof -nP -iTCP:7890 -sTCP:LISTEN

若沒有監聽結果,先查看核心是否啟動、設定檔是否成功載入,以及連接埠是否被其他程序占用。若輸出顯示監聽在不同連接埠,環境變數也必須跟著使用實際值。不要為了讓終端機連線而隨意終止不熟悉的程序;可先關閉重複執行的代理用戶端,再重新啟動 Clash Verge 並檢查日誌。

在終端機設定 Claude Code 使用本機代理

許多命令列工具會讀取 HTTP_PROXY、HTTPS_PROXY 或小寫形式的環境變數,但不同執行環境及工具版本可能有所差異。設定之前,先確認 Clash Verge 提供的是 HTTP 混合代理入口,並使用正確的本機位址與連接埠。對 HTTPS 網址而言,HTTPS_PROXY 的值仍可指向 HTTP 代理入口;它代表 HTTPS 請求要交給哪個代理,而不表示本機代理服務本身一定使用 HTTPS。

先在目前終端機暫時設定

暫時設定的好處是關閉終端機後通常不會保留,適合先做一次受控測試。以下使用 http://127.0.0.1:7890 作為示例,請替換成自己的連接埠。

# macOS 或 Linux:目前這個 Shell 工作階段
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"

# 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 Code,讓新程序繼承這些變數。若先在一個終端機視窗設定,再從開始選單、桌面捷徑或另一個終端機啟動工具,新程序可能讀不到剛才的值。若不需要 SOCKS 代理,先不要把 ALL_PROXY 改成 socks5://;優先使用與 Clash Verge 混合代理入口相符的 HTTP 格式,避免把代理類型混淆。

macOS 或 Linux 可用 env | grep -i proxy 檢視目前工作階段的代理變數;PowerShell 可用 Get-ChildItem Env:*PROXY*。這些命令可能顯示含有帳密的代理網址,貼到支援請求或公開日誌前,應先移除敏感部分。若代理只需套用到 Claude Code,不必立刻寫入整個系統或永久修改 Shell 設定檔。

先用單一 HTTPS 請求測試代理

在 Windows 使用 curl.exe,避免 PowerShell 中 curl 別名造成命令差異;macOS 與 Linux 通常可使用 curl。先用一般測試網址確認本機代理與節點能否建立 HTTPS 請求,再測試實際使用的服務網域。測試成功只表示這條請求可經由代理完成,不能取代 Claude Code 本身的登入與授權檢查。

# Windows PowerShell
curl.exe -I --connect-timeout 10 --max-time 20 `
  --proxy http://127.0.0.1:7890 https://example.com/

# macOS 或 Linux
curl -I --connect-timeout 10 --max-time 20 \
  --proxy http://127.0.0.1:7890 https://example.com/
  1. 確認 Clash Verge 核心正在執行,並記下目前選取的節點或策略組。
  2. 確認本機混合代理連接埠正在監聽,將示例中的連接埠替換成實際值。
  3. 在目前終端機設定代理變數,使用 curl 對 HTTPS 網址發出測試請求。
  4. 測試成功後,在同一個終端機啟動 Claude Code;若仍失敗,記下錯誤類型與發生時間,再查看 Clash Verge 連線或日誌頁面。
  5. 測試結束後,關閉該終端機或清除暫時設定,確認其他工作不會意外沿用代理。

若 curl 顯示無法連線至 127.0.0.1,問題通常還在本機入口或連接埠設定;若本機連上後等待逾時,請查看核心日誌中的網域、規則和出站策略。收到 HTTP 回應也不必然代表目標功能正常,狀態碼與回應內容仍須依服務行為判斷。

使用規則分流,確認 Claude Code 的請求走對策略

在 rule 模式中,流量會依設定檔的規則順序比對,符合後交由指定策略處理。Claude Code 的請求不一定只涉及單一網域;服務端點、登入流程、遙測或錯誤回報可能使用不同主機名稱。不要只憑程式名稱推斷所有連線都會命中同一條規則,也不要在不清楚設定內容時直接改動整份訂閱。

可先從 Clash Verge 的連線頁面觀察 Claude Code 執行時出現的目的網域、命中規則和出站策略,再判斷需不需要新增明確的網域規則。下例只是規則片段,表示將指定網域交給名為 Proxy 的策略;實際使用時,必須確認設定檔中確實存在這個策略名稱,並將規則放在可能提前命中的寬泛規則之前。

rules:
  - DOMAIN-SUFFIX,anthropic.com,Proxy
  - MATCH,Proxy

DOMAIN-SUFFIX,anthropic.com 會匹配該網域及其子網域,但實際設定應按觀察到的目的網域和服務需求調整。若設定檔最後的 MATCH 已有其他策略,新增規則不應覆蓋掉不相關流量的原有走向。編輯前先備份設定,修改後讓 Clash Verge 檢查並重新載入;若發生 YAML 解析錯誤,先還原備份,不要在錯誤狀態下反覆新增規則。

全域模式可以作為短時間交叉測試:選擇已知可用的代理策略後,再重新發起請求。如果全域模式可用、規則模式不可用,應回頭檢查命中規則與策略組;這不是永久改用全域模式的理由。全域模式可能讓原本應直連的區域網路、內部服務或其他流量也改走代理。測試完請切回原本模式,並依需求恢復分流。

依錯誤階段排查,並清理不再使用的設定

觀察到的結果可能原因下一步
連線被拒絕至 127.0.0.1本機連接埠沒有監聽,或環境變數使用錯誤連接埠比對設定檔、客戶端顯示值與監聽檢查結果
Could not resolve 或類似解析錯誤網域解析失敗,或請求尚未到達預期代理路徑查看核心日誌、DNS 狀態與連線中顯示的目的網域
Connection timed out節點、規則出口或目標服務連線在期限內未完成對照另一個可用節點,並查看該連線命中的規則
407 Proxy Authentication Required目前代理要求驗證,或使用的入口不是預期的本機代理確認代理位址與客戶端設定;不要在錯誤日誌公開帳密
代理測試成功,Claude Code 仍顯示登入或授權錯誤網路已建立,但帳戶、授權或服務端回應仍有問題查看 Claude Code 顯示的完整錯誤類別,分開檢查帳戶狀態與網路連線

日誌中的逾時不一定只指節點失效,也可能是 DNS 查詢、TLS 交握或等待服務端回應的階段發生問題。若代理測試成功,卻只有某個服務端點失敗,先在 Clash Verge 連線頁核對實際目的網域與策略;若所有代理請求都失敗,則先確認節點與本機監聽。遇到憑證錯誤時,也要確認系統日期與時間正確,避免把時鐘偏差誤判為節點故障。

確認問題後,將暫時的環境變數清除。macOS 或 Linux 可在目前 Shell 執行 unset HTTP_PROXY HTTPS_PROXY ALL_PROXY;PowerShell 可執行 Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:ALL_PROXY -ErrorAction SilentlyContinue。如果曾把設定寫入 ~/.zshrc、~/.bashrc 或 PowerShell 設定檔,請移除對應行,再開啟新的終端機確認變數已不再出現。長期使用時,也應確認代理值只會套用到預期的工作環境。

代理連線正常仍無法使用 Claude Code 時,請另外確認目前帳戶和所在地區是否能使用該服務、登入是否完成,以及服務端是否有中斷或限制。代理工具不會替代帳戶授權,也不保證特定服務在所有網路環境下都能連線;應以服務本身的錯誤訊息和可用性資訊為準。

下載Clash