乐于分享
好东西不私藏

Claude Code 源码泄露分析,为什么你的账号总被封?

Claude Code 源码泄露分析,为什么你的账号总被封?

Claude Code 源码泄露分析:5 个”内奸”出卖了你,4 个方案自救

不是用的太猛,是软件本身就在”卖”你


写在前面:为什么你的账号总被封?

用 Claude Code 有一段时间的朋友,可能都遇到过同一个问题:账号莫名其妙被封了

去网上搜过相关讨论的朋友应该知道,关于 Claude 封号的帖子不少,但几乎没有一篇能说清楚——到底是什么操作触发了风控?

换 IP?换账号?还是用的太频繁?

就在昨天,Claude Code 源码意外泄露。我第一时间把代码 clone 下来,本来只是想分析有哪些值得借鉴的设计,却意外发现了 CLI 到底是怎么”出卖”用户的。

今天这篇文章,我把源码里挖出来的东西原原本本告诉你。没有猜测,全是代码证据。


先上结论:三件事

分析完源码之后,我发现了三件事:

  • 第一,Anthropic 没有写任何针对地域封锁的代码,封号完全是算法行为。

  • 第二,CLI 版本的设计天然比 Web 版暴露了多得多的风控信号。 不是因为你用的猛,而是软件本身就在”卖”。

  • 第三,我在代码中找到了五个具体的”内奸”,并在文末总结了四个可以执行的自救方案。

好,现在我们从第一个”内奸”开始讲。


(1)Device ID(设备标识)

位置:src/services/api/cloud.ts 第 519-528 行

每一次你用 Claude Code 发起请求,请求体中都会带一个字段叫 user_id,它所携带的值就是 Device ID——本质是一个由本地生成并永久存储的 UUID。

问题在哪?

只要你不手动删除本地配置文件,这个 ID 永远不会变。你换了 10 个 VPN 节点,IP 变了,但这个 ID 还是同一个。

从服务端的视角来看,他会看到同一台设备在十分钟内从日本、美国、新加坡各发了一次请求——这是最典型的异常流量特征。

而且这个字段没有任何开关,它是 API 协议的一部分,你关不掉。


(2)数字指纹(System Prompt 注入)

位置:src/constants/system.ts 第 59-94 行

这个”内奸”更加隐蔽。Anthropic 会把一个名为 x-anthropic-billing-header 的内容注入到每条对话的 System Prompt 里。

这个 header 包含了:

  • CLI 版本号

  • 入口类型

  • CCH 字段

    听起来像是 HTTP 请求头?不是。 它被直接写在了 Prompt 文本里面。

    这意味着即使你用代理中间人全程拦截流量,这段指纹也会原封不动地传到服务端。

    每一条消息都在明明白白地告诉 Anthropic:我是 CLI 用户。


(3)X-CLI-User-Agent(HTTP 请求头)

位置:src/services/api/client.ts 第 105-116 行

这个”内奸”相对直接一点。在 HTTP 请求头里有一行 X-CLI-User-Agent

有人会说:这有什么大不了的?外部用户也有 User-Agent 啊。

区别在于: 外部用户混在浏览器流量里,单独识别成本极高。但 CLI 用户主动给自己贴了标签,主动站出来说”我是特殊群体”。

服务端完全可以对这个标签单独开启更严格的风控策略。


(4)遥测系统(最勤快的那个)

位置: 源码多处

第四个”内奸”是最勤快的一个——遥测系统

源码里写得很清楚:默认每 5 秒触发一次遥测上报。

上报什么?几乎你能想到的所有东西:

  • 操作系统

  • Node 版本

  • 终端类型

  • CPU/内存使用率

  • 你的 Account UUID

  • 你的邮箱地址

  • 你的 Subscription Type 等等

    我算了一下,一个 30 分钟的编码 Session 会产生 360 次遥测请求每一次都带着你当前的真实 IP。

    好消息是:这个可以关掉 我等一下在自救方案里告诉你怎么做。


(5)重试机制(越不稳定越容易封)

位置: 源码重试逻辑部分

第五个是 Claude Code 的重试机制。

当你的 VPN 出现偶发性断线或抖动时,Claude Code 会自动发起重试,多的时候可以重试十次。

从服务端看到的是什么?

同一个 Device ID 在极短时间内从不同的 IP 地址发起了大量请求——这是最经典的”账号被异常工具控制”的特征。

所以越是用不稳定的代理,触发封号的概率反而越高。


CLI vs Web:对比结果

我也对比了 CLI 与 Web 版本的使用场景,对比结果如下:

结论:不是 Anthropic 在针对 CLI 用户,而是 CLI 的软件设计天然提供了太多稳定的风控信号,让算法更容易做出判断。


自救方案:四个优先级

好了,现在进入最重要的部分——怎么自救?

我给出四个方案,从最推荐到备选,按优先级排列。

方案一

切换到云服务商(最彻底)⭐⭐⭐⭐⭐

直接切换到 Amazon Bedrock、Google Vertex AI 或者 Azure Foundry 来跑 Claude 模型。

这个方案最彻底的原因是:你的请求不再发往 api.anthropic.com,而是发往 AWS 或者 GCP 的服务器。

优势:

  • Anthropic 完全看不到你的真实 IP

  • 遥测系统会自动关闭

  • Device ID 的关联风险大幅降低

    缺点:

  • 需要你有对应的云账号

  • 有一定的配置成本

    适合: 有条件的朋友


方案二

关闭遥测机制 ⭐⭐⭐⭐

如果暂时上不了方案一,可以先使用方案二。

关闭遥测命令:

# 方法 1:通过配置文件echo '{"telemetry": false}' >> ~/.claude/settings.json# 方法 2:通过环境变量export CLAUDE_TELEMETRY_DISABLED=1# 方法 3:启动时禁用claude --no-telemetry

效果: 30 分钟的 Session 从 360 次遥测请求降到 0 次。


方案三

用 API Key 代替账号登录 ⭐⭐⭐

个人觉得方案二搭配方案三来用效果最好。

用账号登录的方式会持续调用 /api/profile 接口,把 IP 和你的账号强绑定。

换成 API Key 之后,account_uid 字段变成空字符串,IP 和账号的关联风险大幅降低。

配置方法:

# 编辑配置文件vim ~/.claude/config.json# 添加 API Key{  "auth_type""api_key",  "api_key""your-api-key-here"}

方案四

基础保障(必须做到)⭐⭐⭐⭐

不管用哪个方案,这一条都要做到:

用稳定的住宅 IP,不要用共享代理或不稳定的机场节点。

原则:

  • 一个 IP 对应一个账号

  • 绝对不要多账号共用同一个 IP

  • 避免频繁切换节点


总结:四个字,没有黑幕

挖完这次的源码,我最大的感受是四个字:没有黑幕。

API 没有针对任何人,封号的逻辑是纯算法的。只是 Claude Code CLI 的设计让风控信号异常丰富,光靠换 IP 和换账号根本解决不了封号问题。

核心问题:

  • Device ID 永久不变

  • System Prompt 注入指纹

  • 特殊的 User-Agent 标识

  • 高频遥测上报

  • 自动重试机制

    解决思路:

  1. 最彻底:走云服务商(AWS/GCP/Azure)

  2. 最实用:关遥测 + API Key + 稳定 IP

    如果这期内容对你有帮助,点个赞,收藏一下,免得哪天账号又封了找不到这篇自救指南。

🎯 往期推荐👇

AI 感兴趣的小伙伴,可以加我微信(LHYYH0001)交流哦~

本号主页对话框联系我~

更多推荐
  • 工信部 · AIGC证书
    https://www.yuque.com/lhyyh/ai/ins6gx3o7hck7shb
  • AI 工具集导航:
    https://tools.lhagi.com/
  • AI 大模型全栈 80 万字知识库:
    本公众号对话框零门槛领取
    3 年打磨,全是精华,从普通职场人士到大模型算法,应有尽有!

📌创作不易,觉得有用请收藏🩷推荐⭐️分享