檢查現有配置
管理員可以通過受管設定、裝置管理或apiKeyHelper 分發閘道地址和認證,因此 Claude Code 在啟動時會自動獲取它們,無需您進行任何設定。要檢查您的組織是否已執行此操作:
1
啟動 Claude Code
執行
claude。如果它打開登入畫面而不是會話,則未分發閘道認證;自行配置如下。2
3
發送測試訊息
關閉
/status 選單並在 Claude Code 中發送任何提示。來自 Claude 的正常回應(無錯誤)確認閘道連接有效。/status 選單中的兩行看起來都正確,但向 Claude 發送的訊息失敗,請參閱故障排除表。
自行配置 Claude Code
要自行為閘道配置 Claude Code,您需要從閘道團隊獲得:- 閘道的基礎 URL
- 認證:金鑰或令牌字符串,或獲取認證的命令
- 如果您的閘道團隊未說明認證的類型,下面的認證變數部分涵蓋了要嘗試的內容
- 設定認證變數和設定基礎 URL:每個閘道連接需要的兩個變數
- 驗證連接:在保存任何內容之前確認它有效
- 配置每個介面:如果您使用除 Claude Code CLI 之外的介面(例如 VS Code),請查看如何使用閘道認證配置它
- 其他配置:某些閘道除了基礎 URL 和認證之外還需要的變數,例如自訂標頭、認證幫助程式、模型發現、提供者格式的基礎 URL 或關閉閘道路徑外的流量。僅在您的管理員命名它們或您的網路限制出站流量時設定這些
設定認證變數
要向閘道驗證 Claude Code,請在環境變數中設定您的認證。哪個變數取決於您的閘道團隊告訴您的內容:
如果您未被告知是哪種類型,請使用
ANTHROPIC_AUTH_TOKEN;下面的驗證請求顯示如何判斷您是否需要切換。
設定基礎 URL 和認證
將閘道的基礎 URL 和您上面選擇的認證變數設定為環境變數。示例使用ANTHROPIC_AUTH_TOKEN;如果那是您選擇的變數,請將其替換為 ANTHROPIC_API_KEY。您可以在您的 shell 中設定它們(持續一個終端會話),或在 Claude Code 設定檔案中設定它們(在 Claude Code 運行的任何地方持續)。
對於您的第一次連接,從 shell 匯出開始,並在將值移動到設定檔案之前執行驗證請求。
設定為 shell 環境變數
將值替換為您的閘道團隊提供的值:- Bash or Zsh
- PowerShell
~/.zshrc、~/.bashrc 或您的 PowerShell $PROFILE),或改用設定檔案。
在設定檔案中設定
要使配置在 Claude Code 運行的任何地方應用而不依賴於您的 shell,請在設定檔案的env 區塊中設定變數。設定檔案有不同的範圍:
~/.claude/settings.json適用於您的所有專案。在 Windows 上,路徑是%USERPROFILE%\.claude\settings.json.claude/settings.local.json適用於一個專案。Claude Code 在建立檔案時將其添加到您的 gitignore;如果您自己建立它,請先手動將其添加到 gitignore,以免您不小心提交您的認證
env 區塊在任一檔案中看起來都相同:
env 區塊都設定相同的變數時,設定檔案值適用。執行 /status 以查看 Claude Code 使用的基礎 URL 和認證來源。
驗證連接
使用在 shell 中匯出的變數,向閘道直接發送一個單令牌請求。這在您打開 Claude Code 之前確認 URL 和認證有效,因此失敗指向閘道而不是您的配置。下面的命令讀取 shell 變數,因此即使您也將值放在設定檔案中,它們也需要shell 匯出。- Bash or Zsh
- PowerShell
x-api-key 標頭中的金鑰,請在 Bash 命令中將 Authorization 標頭替換為 x-api-key: $ANTHROPIC_API_KEY,或在 PowerShell 命令中將 "Authorization" 雜湊表項目替換為 "x-api-key" = "$env:ANTHROPIC_API_KEY"。
以 {"id":"msg_ 開頭並包含 "content":[...] 欄位的 JSON 回應表示閘道可達且認證有效。命名未知模型的錯誤仍然證明 URL 和認證有效,因為閘道在拒絕模型名稱之前驗證了請求;您不需要為此測試找到您的閘道提供的模型。401 表示認證被拒絕:如果您猜測了變數,請切換到另一個並重新匯出。
在 Claude Code 中確認
從同一 shell 啟動claude,以便它繼承匯出,發送訊息,並執行 /status。
在狀態標籤上,Anthropic base URL 行應顯示您的閘道地址,這確認請求正在路由到那裡;如果該行不存在,變數未到達會話。命名您設定的變數的 Auth token 或 API key 行確認閘道認證處於活動狀態,而不是已保存的 claude.ai 登入。
如果訊息失敗或 /status 未顯示閘道 URL,請參閱下面的故障排除表。
認證變數如何映射到標頭
每個變數在不同的 HTTP 標頭中發送認證:ANTHROPIC_AUTH_TOKEN 在 Authorization: Bearer 中,ANTHROPIC_API_KEY 在 x-api-key 中,apiKeyHelper 在兩者中。錯誤變數中的認證到達閘道時位於它不讀取的標頭中,請求失敗並返回 401。如果驗證請求返回 401,請切換到另一個變數並重試。
與現有登入的衝突
閘道認證變數優先於已保存的 claude.ai 登入或 Console 金鑰。您的 claude.ai 登入在設定變數時保持已保存且未使用;取消設定變數,Claude Code 會回到它。使用ANTHROPIC_AUTH_TOKEN 時,變數立即優先。使用 ANTHROPIC_API_KEY 時,您在互動模式下被提示一次以批准金鑰,然後它接管。
執行 /status 以確認哪個認證來源處於活動狀態。如果啟動顯示命名兩個來源的身份驗證衝突警告,請參閱故障排除表的第一行以了解要刪除哪一個。要清除已保存的登入,以便只有閘道認證保留,請執行 /logout。
配置每個介面
CLI 讀取上面的環境變數和設定檔案。其他介面是 VS Code 擴充功能、桌面應用程式、GitHub Actions、Agent SDK 和雲端介面(例如 Slack 和網頁);下面的部分涵蓋這些設定是否到達每一個。VS Code 擴充功能
在 VS Code 自己的使用者設定中的claudeCode.environmentVariables 中為 VS Code 擴充功能設定閘道變數,使用偏好設定:開啟使用者設定 (JSON) 命令打開。擴充功能在啟動前檢查此設定中的認證,因此這是閘道認證的可靠位置;~/.claude/settings.json 中的值到達生成的程序但不到達擴充功能自己的登入檢查。
桌面應用程式
桌面應用程式從其第三方推論配置讀取閘道路由,而不是從ANTHROPIC_BASE_URL 或 settings.json。該配置可以來自您的組織或來自應用程式本身的表單:
- 由管理員分發:如果您的組織已部署配置,桌面應用程式通過閘道路由,無需您進行任何設定
- 本地配置:對於沒有管理員分發配置的裝置,打開說明 → 疑難排解 → 啟用開發人員模式,這會使用開發人員功能表重新啟動應用程式。然後打開開發人員 → 配置第三方推論並輸入您的閘道基礎 URL。管理員分發的配置優先,並使此表單為唯讀
ANTHROPIC_BASE_URL 和閘道認證。
如果桌面應用程式顯示 Gateway was unreachable,應用程式在啟動時無法到達配置的基礎 URL;使用上面的 curl 測試檢查 URL 和網路路徑。
GitHub Actions
Claude Code GitHub Actions 從工作流程的env 區塊讀取 ANTHROPIC_BASE_URL 和 ANTHROPIC_CUSTOM_HEADERS。將認證作為操作的 anthropic_api_key 輸入傳遞;操作將其設定為 ANTHROPIC_API_KEY,因此它到達 x-api-key 標頭中的閘道。
對於 x-api-key 閘道,在 env 中設定基礎 URL 並將閘道金鑰作為輸入傳遞:
anthropic_api_key 輸入和工作流程 env 區塊中的 ANTHROPIC_AUTH_TOKEN 傳遞。操作在啟動 Claude Code 之前需要 anthropic_api_key、CLAUDE_CODE_OAUTH_TOKEN 或工作負載身份聯合,並且它不讀取 ANTHROPIC_AUTH_TOKEN,因此輸入只是為了滿足該啟動檢查。env 變數是將金鑰放在閘道讀取的 Authorization 標頭中的原因;x-api-key 中的副本被忽略:
CLAUDE_CODE_OAUTH_TOKEN 和工作負載身份聯合,請參閱 Claude Code GitHub Actions 和操作的 README。
Agent SDK
Agent SDK 沒有閘道特定的選項;它將環境變數傳遞給它生成的 Claude Code 程序。每個 SDK 接受一個env 選項,用於設定生成的程序的環境,TypeScript 和 Python SDK 以不同的方式處理它:
- TypeScript:生成的程序預設繼承父環境,但設定
options.env會完全替換環境。將process.env擴展到其中以保留您的閘道變數。 - Python:
ClaudeAgentOptions(env=...)合併到繼承的環境之上,因此在父程序中設定的閘道變數無需擴展即可通過。
Slack、網頁和遠端控制
Slack 中的 Claude Code 和網頁上的 Claude Code 是 Anthropic 託管的產品,始終使用 Anthropic 的 API;它們不是閘道部署的一部分。在雲端會話的環境配置中設定的閘道變數不適用。如果您的流量必須保留在閘道上,請不要為這些使用者啟用這些介面。 遠端控制和語音聽寫都依賴於 claude.ai 身份:遠端控制將實時會話與您的帳戶配對,語音聽寫到達 claude.ai 轉錄端點。當ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 或 apiKeyHelper 處於活動狀態時,它們不可用。自 v2.1.196 起,當 ANTHROPIC_BASE_URL 指向非 Anthropic 主機時,遠端控制也被禁用,因此僅使用 claude.ai 登入本身是不夠的。
若要還原任一功能,請使用 claude.ai 登入並取消設定它檢查的閘道變數。claude doctor 的遠端控制部分命名要取消設定的認證變數。
- 語音聽寫:取消設定閘道認證
- 遠端控制:取消設定閘道認證和
ANTHROPIC_BASE_URL
其他配置
這些設定涵蓋超出基礎 URL 和認證的情況。僅在您的管理員的說明、您的網路的出站規則或故障排除表要求時設定它們。發送其他標頭
某些閘道使用除認證外的自訂標頭路由或標記請求,例如租戶識別碼或路由金鑰。要發送一個,請設定ANTHROPIC_CUSTOM_HEADERS,每行一個 Name: Value 對。下面的示例添加了一個名為 X-Org-Route 的路由標頭:
- Bash or Zsh
- PowerShell
env 區塊中設定 ANTHROPIC_CUSTOM_HEADERS。在那裡使用 \n 在對之間,因為 JSON 字符串不能跨越多行:
將閘道模型添加到模型選擇器
模型發現在啟動時查詢閘道以獲取其模型列表,並將這些名稱添加到/model 選擇器以及內置項目。
如果您的閘道提供不在 Claude Code 內置列表中的模型名稱,並且您想從選擇器中選擇它們,請啟用它。如果內置模型是您使用的,您不需要發現;您的管理員也可能已通過受管設定啟用它。
要啟用它,請在您的 shell 或 ~/.claude/settings.json 的 env 區塊中設定 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1。發現需要 Claude Code v2.1.129 或更高版本。
發現的模型顯示為標記為 From gateway 的其他 /model 項目。要確認發現已執行,請啟動 claude --debug 並查找 [gatewayDiscovery] 行:成功記錄了多少模型被緩存,404、超時或重定向也被記錄在那裡。有關發現何時執行、它過濾什麼以及閘道提供的回應格式,請參閱模型發現參考。
使用 apiKeyHelper 輪換認證
apiKeyHelper 是 Claude Code 運行以獲取您的閘道認證的命令,而不是從靜態環境變數讀取它。
當認證按計劃過期、來自保管庫或 SSO 命令,或您的管理員告訴您配置一個時,使用幫助程式。如果您的認證是您設定一次的固定字符串,認證變數就是您需要的全部,您可以跳過本部分。
幫助程式是任何將當前認證列印到 stdout 的 shell 命令。Claude Code 通過您的系統 shell 運行它,因此在 Windows 上它可以是可執行檔案或 PowerShell 調用。編寫指令碼,使其可執行,並從您的設定檔案中的 apiKeyHelper 參考它:
- Bash or Zsh
- PowerShell
例如,從保管庫讀取的指令碼:在
~/.claude/settings.json 中參考其路徑:CLAUDE_CODE_API_KEY_HELPER_TTL_MS,例如 CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000 表示 15 分鐘。
幫助程式的值在 Authorization 和 x-api-key 標頭中都發送,因此無論您的閘道讀取哪個標頭都有效。
關閉閘道路徑外的流量
閘道承載模型請求,但 Claude Code 也會向閘道路徑外發送非必要的背景流量,發送到 Anthropic 和第三方服務(如 GitHub):版本檢查、遙測、錯誤報告、發行說明和類似請求。在只允許出站到閘道的網路上,這些請求會失敗,並且可能在您的出站監控中顯示為被阻止的連接。 要關閉該流量,請在與閘道變數相同的 shell 導出或設定檔案env 區塊中設定 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1:
- Bash or Zsh
- PowerShell
- 它禁用自動更新,因此請計劃另一個更新路徑,例如您的套件管理器或受管分發。
- 它抑制快速模式可用性檢查。除非之前的檢查已在機器上啟用快速模式,否則
/fast報告快速模式不可用。 - 它關閉閘道模型發現,儘管發現查詢閘道本身。之前發現的模型仍可從本地緩存獲得,但列表不會刷新。
- WebFetch 工具的域安全檢查不受影響,仍會呼叫
api.anthropic.com。如果您的網路阻止該主機,請在設定中使用skipWebFetchPreflight: true單獨關閉它。 - 對於每個遙測流和控制它的變數,請參閱遙測服務。
通過閘道路由到雲端提供者
這些配置使用提供者特定的基礎 URL 變數代替ANTHROPIC_BASE_URL 將 Claude Code 指向通過閘道的雲端提供者。Amazon Bedrock 和 Google Cloud 的 Agent Platform 閘道接受這些提供者的本機請求格式;Microsoft Foundry 和 AWS 上的 Claude Platform 閘道接受 Anthropic Messages 格式,僅在哪個基礎 URL 變數到達它們方面有所不同。
僅在您的閘道團隊特別命名 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 時使用一個。如果上面的驗證請求返回 JSON,您可以跳過本部分。
為您的閘道團隊命名的提供者設定區塊。跳過身份驗證變數告訴 Claude Code 不要使用提供者認證簽署請求,因為閘道持有這些。如果閘道需要自己的令牌,請在區塊後添加 ANTHROPIC_AUTH_TOKEN,除了 Microsoft Foundry,它使用 ANTHROPIC_FOUNDRY_API_KEY,如所示。期望持有人令牌的 Microsoft Foundry 閘道可以改用 ANTHROPIC_FOUNDRY_AUTH_TOKEN;當兩者都設定時,它優先於 ANTHROPIC_FOUNDRY_API_KEY。ANTHROPIC_FOUNDRY_AUTH_TOKEN 需要 Claude Code v2.1.203 或更高版本。
Amazon Bedrock
- Bash or Zsh
- PowerShell
Google Cloud 的 Agent Platform
- Bash or Zsh
- PowerShell
Microsoft Foundry
將閘道的認證放在ANTHROPIC_FOUNDRY_API_KEY 中;它作為 x-api-key 標頭發送到閘道。期望持有人令牌的閘道可以改用 ANTHROPIC_FOUNDRY_AUTH_TOKEN。Claude Code 將該值作為 Authorization: Bearer 標頭發送,當兩者都設定時,它優先於 ANTHROPIC_FOUNDRY_API_KEY。需要 Claude Code v2.1.203 或更高版本。
對於注入自己的 Authorization 標頭的閘道,設定 CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1 並將兩個認證變數都保留為未設定。Claude Code 然後發送沒有 Azure 認證的請求,並保留您提供的 Authorization 標頭,例如通過 ANTHROPIC_CUSTOM_HEADERS。在 v2.1.203 之前,CLAUDE_CODE_SKIP_FOUNDRY_AUTH 沒有 API 金鑰使 Microsoft Foundry 客戶端無法發送請求。
- Bash or Zsh
- PowerShell
AWS 上的 Claude Platform
有關工作區 ID,請參閱 AWS 上的 Claude Platform。- Bash or Zsh
- PowerShell
故障排除閘道錯誤
這些是通過閘道運行 Claude Code 時最常見的錯誤,包括閘道端的原因和修復:
如果 Claude Code 在移除閘道配置後重複提示您登入,原因通常是認證存儲而不是閘道;請參閱身份驗證錯誤。
相關資源
- LLM 閘道概述:什麼是閘道以及它如何與 claude.ai 訂閱互動
- 為您的組織推出 LLM 閘道:部署和分發閘道配置的面向管理員的檢查清單
- 閘道協議參考:Claude Code 發送到閘道的內容,包括閘道必須轉發的標頭和欄位
- 設定:設定檔案的位置以及如何讀取
env區塊 - 身份驗證:認證變數、
apiKeyHelper和 OAuth 登入如何互動