為什麼不能只寫 claude.ai
Claude Code 官方企業網路配置文件明確列出執行時需要訪問的 URL。核心的四條是:
api.anthropic.com— API 請求、WebFetch 域名安全檢查、功能開關、遙測事件claude.ai— claude.ai 帳號認證claude.com— 登入頁跳轉 (最終重定向到 claude.ai)、WebFetch 文件查詢platform.claude.com— OAuth token 交換 / 重新整理 / 吊銷 —— 兩種帳號都需要
最容易漏的一條: platform.claude.com
官方文件寫明這個域名承擔 OAuth 的 token 交換、重新整理與吊銷 —— 不只是 Console 帳號, 用 claude.ai 帳號登入同樣要經過它。但幾乎所有流傳的中文分流清單都沒有它。
漏配的後果不是「少一個功能」: token 重新整理會走本地直連出去, 於是續期請求的出口 IP 與你的 API 請求 IP 不一致 —— 這正好踩在風控最敏感的判據上, 而且症狀隱蔽, 表現為「用著用著突然要重新登入」。
完整分流清單 (按官方文件分組)
核心必需
缺任意一條都會導致登入或對話失敗
api.anthropic.com- API 請求、WebFetch 域名安全檢查、功能開關、遙測事件
claude.ai- claude.ai 帳號認證
claude.com- 登入頁跳轉 (最終重定向到 claude.ai)、WebFetch 文件查詢
platform.claude.com- OAuth token 交換 / 重新整理 / 吊銷 —— 兩種帳號都需要
按功能所需
用到對應功能才需要; 不用則可不放行
mcp-proxy.anthropic.com- claude.ai 的 MCP 聯結器流量
downloads.claude.ai- 外掛執行檔下載、原生安裝器與自動更新
bridge.claudeusercontent.com- Claude in Chrome 擴充套件的 WebSocket 橋接
*.frame.claudeusercontent.com- Artifact 內容讀取
registry.npmjs.org- 外掛安裝、npx 啟動的 MCP server、npm/bun 安裝 Claude Code 本身
storage.googleapis.com- 外掛後設資料與安裝量、Artifact 上傳
code.claude.com- 內建文件查詢 (claude-code-guide agent 與預授權 WebFetch)
raw.githubusercontent.com- /release-notes 的更新日誌
formulae.brew.sh- Homebrew 安裝方式的更新檢查; 其它安裝方式不會請求
遙測端點 (可關閉)
僅在直連 Anthropic API 時傳送; 第三方供應商通道不會發
http-intake.logs.us5.datadoghq.com- 運營遙測事件
browser-intake-us5-datadoghq.com- 運營錯誤上報 (受服務端灰度開關控制)
關閉非必要流量的環境變數
不想放行遙測域名時, 用環境變數從源頭關掉更省事
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1- 一次關掉兩個 Datadog 端點
DISABLE_TELEMETRY=1- 關閉遙測
DO_NOT_TRACK=1- 通用不追蹤標準, 效果同上
DISABLE_ERROR_REPORTING=1- 關閉錯誤上報
IP / ASN 兜底規則
CIDR / ASN 只能作為高階兜底策略, 需要定期核對 BGP/ASN 變化。不要把下面的示例當作永久完整列表:
補充: AS399358 當前實際宣告的路由是 160.79.104.0/23 與兩個 IPv6 /48 (2607:6bc0::/48、2607:6bc0:11::/48), 比登記的段更窄。按登記段配置覆蓋更寬、更保險。另需注意遙測與安裝類域名 (Datadog、npm、GitHub、Google Cloud) 都不在 Anthropic 自有段內, IP 兜底救不了它們, 必須靠域名規則。
系統時間同步
Claude Code 本身的官方網路要求不包含 NTP。但系統時間嚴重偏差會導致 TLS、OAuth 登入和請求籤名類流程出錯。建議保持系統時間準確; 是否代理 NTP 取決於你的網路環境和客戶端能力。
另外澄清一個流傳較廣的說法: 有教程稱「Claude Code 通過 NTP 判斷你的時區」, 因此必須代理 NTP。這在協議層面就不成立 —— NTP 報文只傳 UTC 時間戳, 根本沒有時區欄位; 時區來自作業系統本地設定。官方網路要求裡也通篇沒有 NTP。真正會暴露時區的是瀏覽器與系統的 Intl / getTimezoneOffset 介面, 代理 NTP 對此毫無作用。
配置格式示例 (域名清單)
# 核心 (DOMAIN-SUFFIX 已覆蓋各自全部子域名) DOMAIN-SUFFIX,anthropic.com,Claude DOMAIN-SUFFIX,claude.ai,Claude DOMAIN-SUFFIX,claude.com,Claude DOMAIN-SUFFIX,clau.de,Claude DOMAIN-SUFFIX,claudeusercontent.com,Claude # 安裝 / 外掛 / 文件 DOMAIN-SUFFIX,registry.npmjs.org,Claude DOMAIN,storage.googleapis.com,Claude DOMAIN,raw.githubusercontent.com,Claude DOMAIN,formulae.brew.sh,Claude # 遙測 (可用環境變數關閉; 注意是獨立域名, 字尾匹配抓不到) DOMAIN,http-intake.logs.us5.datadoghq.com,Claude DOMAIN,browser-intake-us5-datadoghq.com,Claude # IP / ASN 兜底 IP-CIDR,160.79.104.0/21,Claude,no-resolve IP-CIDR6,2607:6bc0::/32,Claude,no-resolve IP-ASN,399358,Claude,no-resolve
注: DOMAIN-SUFFIX 已覆蓋各自全部子域名, 無需重複羅列; 兩個 Datadog intake 是獨立可註冊域名, 必須精確匹配。CIDR/ASN 建議加 no-resolve 跳過反查, 降低匹配開銷。
驗證
配置完後通過這幾個工具驗證流量沒漏掉: