本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
众所周知,Claude Code 的“源代码”在昨天晚上被泄露到了网络上。一时间各种吃瓜、吃流量的都出现了,有直播吐槽高配屎山的,有直播高度评价 Agent 工程化的,还有直播教大家玩 Claude Code Cli 工具里彩蛋的。。。。。
总之就是一派欣欣向荣的场面,完全忘记了 AI 这个“码奸”要通吃程序员了。
每个人关注的细节都不一样,结合我前面写的一篇文章《https://mp.weixin.qq.com/s/YW_n46__OIck5kNvEC0v8g》,以及我封号的经历,我这里就聊一聊 Claude Code 封号机制,并尝试对其进行深度解析,同时总结出一套中国程序员的避坑指南。
注意,本文是基于泄露源码的逆向工程分析,揭示 Anthropic 风控系统的运作逻辑,并非“万能药”。
为什么你的 Claude Code 账号会被封?
根据对 Claude Code 泄露源码的全面逆向分析,Anthropic 构建了一套精密的多层风控体系。封号并非随机事件,而是基于明确的风险信号触发的系统性决策。
极高风险,触发账号封禁
排第一的是,客户端证明(cch Attestation)验证失败。
这是 Anthropic 最核心的反作弊机制。每个 API 请求都会携带一个由 Bun 底层 Zig 代码生成的 attestation token,服务端通过验证此 token 确认请求来自未修改的官方二进制文件。使用修改版客户端或 API 代理无法生成正确的 token,会被立即识别。
第二是,设备 ID 关联多个被封账号。
Claude Code 会在首次运行时生成一个 64 字符的随机十六进制字符串作为 deviceId,永久存储在 ~/.claude.json 中。这是一个跨会话、跨账号的永久设备指纹。即使你更换账号,设备 ID 不变。风控系统一旦发现某个设备 ID 关联过多个被封账号,新账号会被直接关联封禁。
第三是指纹校验失败。
每个请求的 x-anthropic-billing-header 中包含一个基于用户首条消息特定位置字符 + 硬编码盐值计算的 SHA256 指纹。服务端会验证这个指纹,不匹配即触发风控。
这 3 条是最高风险的风控规则,触发其中的任何一个都可能立即受到封禁。
高风险,触发警告或功能限制
接下来,我们看 2 条高风险的操作,低频次触发会收到警告或功能限制,多次触发或交叉触发也可能被封禁。
首先是,AI Gateway 被检测。
Claude Code 会主动扫描 API 响应头,检测是否使用了 LiteLLM、Helicone、Portkey、Cloudflare AI Gateway 等代理。一旦检测到,会将 gateway 类型上报至 Datadog 和 BigQuery。
其次是,使用非官方 API 端点。
通过 ANTHROPIC_BASE_URL 设置自定义 API 端点时,apiBaseUrlHost 会被上报至 GrowthBook,暴露代理使用情况。
也就是说,当你使用 Claude Code + 某些代理中转站时,也会有较高的概率被风控。
中等风险,导致账号关联
首先是,异常使用模式。需要注意短时间大量请求、24 小时不间断自动化调用等行为会被标记为异常。
其次是,Git 邮箱泄露真实身份。即使你更换账号,Claude Code 会通过 git config user.email 获取你的邮箱。如果多个账号使用相同的 git 邮箱,风控系统可以轻易关联。也就是说,A 账号被封后,切换新的 B 账号,B 账号会关联上 A 账号的风险,从而触发再次封禁。
最后是环境异常信号。在 Docker、SSH 会话、云服务器等多人共享环境中使用,或系统时区、语言设置与 IP 地理位置不匹配(如 IP 在纽约但时区是 Asia/Shanghai),都会被记录为异常信号。
Claude Code 的数据采集架构
Anthropic 通过三条主要通道收集用户数据,如下表格所示。
| 通道 | 端点 | 采集内容 |
|---|---|---|
| Datadog | https://http-intake.logs.us5.datadoghq.com/api/v2/logs | 实时事件监控,80+ 事件类型 |
| 1P BigQuery | https://api.anthropic.com/api/event_logging/batch | 完整遥测日志,带 OAuth 认证 |
| GrowthBook | https://api.anthropic.com/ | 特性开关、A/B 实验、完整用户画像 |
文章配图参考公众号《https://mp.weixin.qq.com/s/PbRXDCfS_ZWLHgVjyOu8CA》。
在泄露的源代码中出现了关键的发现,即使设置 DISABLE_TELEMETRY=1,API 请求自身携带的 Attribution Header 和 Attestation 仍会发送。遥测开关只能关闭 Datadog 和 BigQuery 通道,无法阻止核心身份信息的传输。
再使用 Claude Code 的过程中,每次 API 请求必然携带的身份信息如下所示。
x-app: cli
User-Agent: claude-cli/{版本}({USER_TYPE},{入口点},agent-sdk/...,clientapp/...)
X-Claude-Code-Session-Id: {sessionId}
x-client-request-id: {随机UUID}
x-claude-remote-container-id: ...(容器环境)
x-claude-remote-session-id: ...(远程会话)
x-anthropic-billing-header: cc_version={版本}.{fingerprint};cc_entrypoint={入口};cch={attestation_hash}
国内程序员的避坑实操指南
基于逆向分析的核心原则:「融入」而非「消失」。让自己看起来像一个正常的合规地区用户,而不是试图隐藏所有信号。
下面我们看几项必须遵守的防护措施。
不要关闭遥测(极高重要性)
这是反直觉但最关键的一点。关闭遥测(DISABLE_TELEMETRY=1 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)会带来三重风险:
- 地域标签效应:“关闭遥测”的教程几乎只在中文社区传播,风控系统可以通过贝叶斯推理判断:关闭遥测的用户中,不合规地区用户的比例显著偏高
- 功能降级:关闭遥测会同时禁用 GrowthBook,导致 Opus 4.1M 模型、Fast Mode 等付费功能静默消失
- 信号缺失反而显眼:你关不掉的信号(IP、TLS 指纹、OAuth Token、API 调用模式)一个都没少,只是给自己贴上了“我有东西要藏”的标签
封号后彻底清理环境
这一点需要特别强调,属于高度重要的事项。
换账号不等于换设备。必须执行以下清理。
# 备份重要文件
cp -r ~/.claude/skills/ ~/claude_backup_skills/
cp ~/.claude/settings.json ~/claude_backup_settings.json
cp ~/.claude/CLAUDE.md ~/claude_backup_CLAUDE.md
cp -r ~/.claude/rules/ ~/claude_backup_rules/
# 彻底删除持久化数据
rm -rf ~/.claude/
rm ~/.claude.json
~/.claude.json 中的 deviceId 是跨账号的永久设备指纹,不清理会导致新账号被直接关联。
网络环境保持一致
这一点也是非常重要的,尤其是保持 IP 地址的稳定。
- 使用
住宅 IP,固定出口节点 - 全程保持代理连接,避免 IP 地理位置突然跳变
- 避免使用被多人共享的机房 IP 或云服务器 IP
环境信号对齐
有些人虽然使用了代理,但是时区还是国内的时区,这一点几乎被大多数人忽略。
确保以下环境变量与 IP 归属地一致。
# 如果 IP 在美国西海岸
export TZ="America/Los_Angeles"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
这是最常见穿帮场景,IP 显示在纽约,但时区是 Asia/Shanghai。
避免中国特有系统信号
做戏要做足,这一点也很重要。不是官方不知道,而是官方有时候默认了某些行为。如果官方突然某一天认真了,被封是迟早的事。
- Linux 发行版:避免使用 Deepin、UOS、openKylin、openEuler 等中国特有发行版,建议使用 Ubuntu、Debian 或 macOS
- 镜像源:不要使用 npmmirror、tuna 等国内镜像源
npm config set registry https://registry.npmjs.org/
避免通过 Git 泄露身份
如上所示,Claude Code 也会收集 Git 身份信息,从而识别用户的所属区域与行为。这一点的重要性排在中等等级。
# 修改 git 邮箱,避免与被封账号关联
git config --global user.email "your-new-email@example.com"
正常使用,避免自动化
这一点也是中等重要性的,要像个人而不是机器。
- 有间隔、有停顿地使用
- 避免 24 小时无间断调用
- 不要在 CI/CD 环境(GitHub Actions、GitLab CI 等)中高频使用
避免使用已知 AI Gateway
LiteLLM、Helicone、Portkey 等代理的响应头指纹会被检测并上报。如需使用代理,确保其不会添加可被识别的响应头。这一条也是中等重要性的。
无法规避的硬性检测
以下检测机制由底层实现,无法通过配置规避。
- cch Attestation:由 Bun 底层 Zig 代码生成,无法通过修改 JS/TS 层绕过
- Fingerprint 校验:盐值和算法与服务端强耦合
- API 请求头:每个请求都携带 session ID、User-Agent、version 等信息
- HTTP 连接层:IP 地址、TLS 指纹(JA3/JA4)等网络层信息始终可见
核心结论
- 不要关闭遥测:关闭遥测不会让你更安全,反而会让你成为风控系统中最显眼的目标
- 被封后彻底清理环境:
~/.claude.json和~/.claude/目录必须完全清除 - 融入而非消失:让自己看起来和千千万万的正常用户没有区别,而不是变成没有数据的幽灵
- 合规使用是最佳策略:避免触碰反作弊红线,不要试图通过修改客户端或代理欺骗系统
以上,供大家参考。更多源码级解读,参考https://bytedance.larkoffice.com/docx/E2JudVzf7oCNfhxyxaQcZIW1n0g。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Claude Code 源代码逆向,3 层风控、80+ 事件导致你穿帮被封禁