乐于分享
好东西不私藏

我读了 Claude Code 的全部源码,发现了它是怎么封你号的

我读了 Claude Code 的全部源码,发现了它是怎么封你号的

有大佬从 npm 包的 sourcemap 里还原了 1884 个源码文件。 我用AI进行了深度分析,终于了解了Claude Code的账号关联机制。

结论是:你以为的”换号重来”,在 Anthropic 眼里可能只是同一行数据里的不同字段。

这篇文章拆解 Claude 的用户关联逻辑,推测封号检测机制,并给出切实可行的保号建议。

事情是怎么开始的

Anthropic 发了 Claude Code 的 npm 包 @anthropic-ai/claude-code@2.1.88

包里有 13MB 的打包代码,以及一份 59MB 的 sourcemap。

sourcemap 的作用是:把打包后的代码映射回原始源码

也就是说,只要这份 sourcemap 存在,Claude Code 的全部客户端逻辑就是公开的。

有大佬从里面还原出了 1884 个 TypeScript 源文件,并公开到了GitHub上面。

我用AI进行了深度分析,分析完后,我决定写这篇文章。

因为有些东西,我觉得每个 Claude 用户都应该知道。

你以为匿名?其实你身上挂着 5 张”身份证”

很多人以为用 API Key 调 Claude 是匿名的。

不是。

每次你打开 Claude Code,系统会同时挂载 5 个标识符:

1. Device ID — 你的设备身份证

随机生成 64 位十六进制字符串
永久保存在 ~/.claude/ 目录
重装前不消失,换会话不变

2. Session ID — 本次会话的流水号

每次启动随机生成一个 UUID
但会记录"父会话"是谁
形成一条完整的会话链

3. Account UUID — 你的 Anthropic 账号

登录时服务端分配
一个账号一个 UUID,全局唯一

4. Organization UUID — 你的组织

如果你在企业/团队里
这个 ID 标识你的组织归属

5. Email — 你的邮箱

OAuth 登录时直接拿到

每次请求,这三个 ID 打包发送

你发的每一条消息,Claude Code 都会附上一份”元数据”:

┌──────────────────────────┐
│     你以为你只发送了:      │
│     "帮我写个函数"         │
├──────────────────────────┤
│     实际上还发送了:        │
│                          │
│  device_id:   a3f2..8b    │
│  account_uuid: usr_xxx    │
│  session_id:  sess_xxx    │
└──────────────────────────┘

设备 + 账号 + 会话,这个”金三角”跟你的每一条消息绑定在一起,发到 Anthropic 的服务器。

你删掉配置文件可以换 Device ID。

但你换不了 Account UUID,也换不了 IP 地址。

更狠的:你的数据被发到了 4 个地方

不是一个,是 4 个独立的数据接收后端

第一站:Anthropic API

api.anthropic.com

你的每一条对话、每一次工具调用、每一份文件上传,全部经过这里。这是主 API,躲不掉。

第二站:Datadog

http-intake.logs.us5.datadoghq.com

一个专业日志监控平台。Claude Code 把 100+ 种事件 上报到这里:

  • 你用了什么工具、调了几次
  • 你选了什么模型、什么订阅
  • 你在什么系统上运行
  • 你遇到了什么错误

第三站:Google BigQuery

api.anthropic.com/api/claude_code/metrics

你的 Token 消耗量、使用成本、性能指标,定期批量上传。

第四站:GrowthBook

api.anthropic.com/

A/B 测试平台。你的用户属性会上报,用来决定你看到哪些功能。

还有一个隐藏机制:消息指纹

源码里藏着一个很精巧的机制。

每次你发第一条消息,Claude Code 会:

1. 取你消息的第 4、7、20 个字符
2. 拼上固定的盐值 + 版本号
3. SHA256 哈希
4. 取前 3 位作为"指纹"

这个指纹被嵌入 User-Agent 头:

claude-code/2.1.88.a3f
                    ^^^ ← 这就是你

即使 API Key 相同,不同的使用方式会产生不同的指纹。

Anthropic 据此区分不同的调用来源。

封号是怎么触发的?——基于源码的推测

以下是基于客户端代码证据的合理推测。不代表 Anthropic 实际实现,但逻辑上完全成立。

第一道防线:账号绑定

每个请求都带 account_uuid,这是铁证。

同一个 API Key 或 OAuth 账号下的所有行为会被汇总。使用量、频率、内容——全部可查。

这道防线无法绕过。

第二道防线:设备指纹

同一个 Device ID 下出现多个不同的 Account UUID?

在 Anthropic 看来,这不是”多个人用同一台电脑”,而是**”一个人在用多个账号”**。

反过来,Device ID 频繁变更也很可疑——正常用户不会每天重装。

第三道防线:网络关联

服务端拥有每个请求的 IP 地址。

同一 IP 下出现 5 个不同账号?
→ 关联信号

今天在北京,明天在东京,后天又在纽约?
→ 物理上不可能

用的是 AWS/GCP 的数据中心 IP?
→ 比住宅 IP 风险高得多

第四道防线:行为画像

Datadog 和 BigQuery 持续采集的行为数据,足以构建完整的行为画像:

  • 24/7 不间断调用 → 不像人类
  • 高度重复的工具调用序列 → 自动化脚本
  • 频繁触发限流上限 → 有滥用倾向
  • Prompt 模板化 → 批量操作特征
  • 子代理嵌套 5 层以上 → 异常自动化

第五道防线:关联图谱

把以上所有维度叠加起来,Anthropic 大概率构建了一张这样的图:

  账号 A ──┐
           ├─ 同设备 ──→ 关联
  账号 B ──┘
           │
           ├─ 同 IP ───→ 关联
           │
  账号 C ──┘
           │
           ├─ 同指纹 ──→ 关联
           │
  账号 D ──┘

你以为换了 4 个号?在 Anthropic 的图数据库里,它们连着同一条边。

封一个号的时候,其他几个可能已经在观察名单上了。

七层限流:你以为的”限额”其实是风控信号

Claude Code 的限流不是简单的”用完为止”,而是 7 层嵌套

L1  ┃  5 小时会话限制
L2  ┃  7 天周限制
L3  ┃  Opus 模型独立限额
L4  ┃  Sonnet 模型独立限额
L5  ┃  超额使用额度
L6  ┃  组织支出上限
L7  ┃  座位层级信用限制

源码里定义了 15 种限流触发场景。

你以为这些只是客户端弹个提示?

不。 每次触发 weekly-limit-reached 或 overage-exhausted,这个事件大概率被上报到服务端。

频繁触发限流 = 高风险用户。就这么简单。

认证方式也在被追踪

系统记录你从哪里拿到的认证凭据:

  • claude.ai 网页登录 → 正常
  • 环境变量 ANTHROPIC_AUTH_TOKEN → 正常
  • 外部 apiKeyHelper 程序 → 会被标记
  • 环境变量 OAuth Token → 会被标记
  • 文件描述符读取 Token → 会被标记

频繁切换认证方式?

这个行为模式本身就是一个异常信号。

怎么避免被封号?——实操建议

核心原则只有一个:让系统觉得你是一个正常的人类开发者。

1. 使用量:别顶到上限

  • 把使用量控制在限额的 70% 以内
  • 5 小时限制和 7 天限制是明确的红线
  • Opus 消耗更多配额,常规任务用 Sonnet
  • overage(超额使用)状态本身就是风险信号

2. 账号:一机一号一 Key

  • 不要在同一台机器上切换多个账号
  • 不要用多个 API Key 轮换规避限制
  • 不要频繁注册/注销账号
  • 账号生命周期应该相对稳定

3. 网络:稳定优先

  • 使用稳定的住宅 IP
  • 避免频繁切换 VPN 节点
  • IP 地理位置应与注册信息一致
  • 数据中心 IP(AWS/GCP)风险更高
  • 公共 VPN 和代理池是重灾区

4. 使用模式:自然一点

  • 保持合理的会话间隔
  • 别 24/7 不间断调用
  • Prompt 保持自然变化,别用死模板
  • 工具使用保持多样性
  • 控制子代理嵌套深度

5. 遥测:能关的关掉

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

这能关掉 Datadog 和 BigQuery 的分析上报。

但注意:API 请求中的 user_id 元数据关不掉。那是服务端强制要求的。

最后说几句

读完这 1884 个源文件,最大的感受是:

你以为你在用工具,其实工具也在”用”你。

Claude Code 用五层标识符标记你的身份,用四个后端收集你的行为,用七层限流管控你的用量,用会话血缘还原你的操作链路,用关联图谱把你的多个账号连成一张网。

这套系统的设计初衷,大概率是为了产品优化和安全防护。

但它同时也意味着——你对 Anthropic 是透明的。

理解这些机制,不是为了钻空子。

而是为了:

  • 知道边界在哪里
  • 保护好自己的账号资产
  • 做出知情的使用决策

希望这篇文章能帮到你。

分析方法说明

  • 分析对象:@anthropic-ai/claude-code@2.1.88
  • 源码规模:1884 个 TypeScript 源文件
  • 还原方式:npm 包 sourcemap 逆向
  • 所有推测均基于客户端源码证据

本文仅用于技术研究和教育目的,不构成任何规避建议。所有分析基于公开可获取的 npm 包,不涉及未授权访问。

觉得有用?转发给你的开发者朋友,也许能帮他保住账号。