Claude Code 悄然识别与中国关联的 API 路由器(8分钟阅读)

TLDR AI 新闻

摘要

Claude Code 有一个隐藏机制,通过修改模型上下文中的日期字符串来对通过自定义端点路由的请求进行指纹识别,尤其是那些与中国相关的请求。

Claude Code 在模型上下文中对自定义 API 路由进行指纹识别。虽然 Anthropic 有正当理由关注非官方的 Claude 路由器,但其实现并不透明。该技术使得一行模型上下文看起来语义中性,同时使用标点符号来携带路由元数据。这几乎越界成为了间谍软件。
查看原文
查看缓存全文

缓存时间: 2026/07/01 17:19

# Claude Code 在悄无声息地对中国相关的API路由器进行指纹识别 来源:https://www.vincentschmalbach.com/claude-code-china-router-fingerprint/ Claude Code 隐藏着一个测试,用于判断你的请求发往何处。 触发条件是 `ANTHROPIC_BASE_URL`,当人们想让 Claude Code 与自定义端点(而非 Anthropic 的默认 API)通信时,会使用这个环境变量。该端点可能是企业网关、本地代理、兼容 OpenAI 的路由器、经销商 API,或者那些在中国不断出现的非官方 Claude 访问层。 当端点是正常的 `api.anthropic.com` 时,Claude Code 会保留日期行不变。当端点指向其他地方时,Claude Code 会根据一个隐藏列表检查主机名,检查本地时区,然后更改模型上下文中的一行枯燥文本: ``` Today's date is 2026-06-30. ``` 日期本身不是重点。但标记就藏在这里。Claude Code 在模型上下文内部对自定义 API 路由进行指纹识别。 在 `@anthropic-ai/[email protected]`(https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.90.tgz)中,相关的上下文值只是一个日期字符串: ``` currentDate:`Today's date is ${Qr6()}.` ``` 在 `@anthropic-ai/[email protected]`(https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.91.tgz)中,这变成了: ``` currentDate:fM4(Mo6()) ``` 该辅助函数读取 `process.env.ANTHROPIC_BASE_URL`。如果该变量缺失,或者指向 `api.anthropic.com`,则返回普通的日期行。如果基础 URL 指向其他位置,Claude Code 开始对路由进行分类。 该行为在 `2.1.92` 中仍然存在。在我于 2026 年 6 月 30 日检查的当前 npm 发行版中也仍然存在。顶级包 `@anthropic-ai/[email protected]`(https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.196.tgz)现在是一个小包装器,但 Linux x64 包在一个嵌入的 JavaScript 块中仍然包含相同的结构: ``` currentDate:Ola(FSe()) ``` 由于包被压缩,函数名称发生了变化。但行为没有变化。 该辅助函数解码两个嵌入列表。编码是 base64 加 XOR `91`,这不是严肃的加密。它只是为了防止列表在简单的字符串搜索中以纯文本形式出现。 第一个列表有 147 个域名条目。它以 `cn` 开头,然后遍历主要的中国相关互联网和云域名: ``` cn sankuai.com netease.com 163.com baidu.com alibaba-inc.com alipay.com antgroup-inc.cn kuaishou.com bytedance.net xiaohongshu.com jd.com jdcloud.com bilibili.co iflytek.com stepfun-inc.com aliyuncs.com cn-shanghai.fcapp.run cn-beijing.fcapp.run ``` 相同的解码列表继续进入看起来像 Claude 路由器和 Claude 代理的域名: ``` anyrouter.top claude-code-hub.app claude-opus.top claudeide.net deeprouter.top openclaude.me proxyai.com yunwu.ai yunwu.zeabur.app zenmux.ai ``` 关键词列表更短: ``` deepseek, moonshot, minimax, xaminim, zhipu, bigmodel, baichuan, stepfun, 01ai, dashscope, volces ``` 这些不是中性的产品分析术语。它们指向中国的模型提供商、中国 AI 基础设施和替代路由层。 该辅助函数还会检查本地时区是否为 `Asia/Shanghai` 或 `Asia/Urumqi`。 这个组合是关键:自定义基础 URL、中国相关域名列表、中国 AI 提供商关键词以及中国大陆时区。 ## 标记如何工作 对于非默认的基础 URL,Claude Code 会更改 `Today's` 中的撇号。 如果主机不在域名列表中且没有关键词匹配,则使用正常的 ASCII 撇号:`'`。 如果主机在域名列表中,则使用 `’`。 如果主机不在域名列表中但包含关键词之一,则使用 `ʼ`。 如果主机同时匹配域名列表和关键词列表,则使用 `ʹ`。 然后它添加一个时区位。在中国时区之外,日期保持 `YYYY-MM-DD` 格式。在 `Asia/Shanghai` 或 `Asia/Urumqi` 时区,日期变为 `YYYY/MM/DD` 格式。 以下是该辅助函数在本地静态重现中的输出示例: ``` {"baseUrl":null,"timezone":"Europe/Berlin","text":"Today's date is 2026-06-30."} {"baseUrl":"https://api.anthropic.com","timezone":"Europe/Berlin","text":"Today's date is 2026-06-30."} {"baseUrl":"https://proxyai.com","timezone":"Europe/Berlin","text":"Today’s date is 2026-06-30."} {"baseUrl":"https://api.deepseek.com","timezone":"Europe/Berlin","text":"Todayʼs date is 2026-06-30."} {"baseUrl":"https://deepseek.cn","timezone":"Asia/Shanghai","text":"Todayʹs date is 2026/06/30."} ``` 对于人类来说,这些行很容易被忽略。但对于模型请求来说,它们是不同的字节。 ## 这不是直接的 VPN 检测 我检查的辅助函数不会查询公共 IP 地址。它不会检查网络接口。它不会列出 VPN 进程。它不会询问操作系统 VPN 是否在运行。 我发现输入的变量是 `ANTHROPIC_BASE_URL` 和本地时区。 这一点很重要。如果你连接了 VPN,但仍然使用正常的 Anthropic 端点,这段代码路径并不证明你被标记了。如果你通过 `ANTHROPIC_BASE_URL` 配置 Claude Code 使用自定义端点、代理、路由器、经销商 API 或特定区域的网关,那么这段代码路径就直接相关。 这就是为什么这比一个日期格式怪癖更重要。`ANTHROPIC_BASE_URL` 是用户用于企业网关、第三方路由器、兼容 OpenAI 的 Claude 代理和非官方访问层的设置。解码后的列表充满了中国相关的域名、中国 AI 提供商关键词以及看起来像 Claude/API 路由器的端点。 ## 这不是正常的遥测 正常的遥测有名称、模式和一些策略表面。这看起来不像那样。 路由信号隐藏在模型上下文内部。它不是可见的 Claude Code 警告。它不是名为“路由器检测”的设置。它不是正常的分析事件。 如果第三方路由器收到提示,路由器可以看到该标记。如果该路由器将完整提示转发到上游,Anthropic 也能看到它。我在本次分析中没有捕获实时流量,所以我不声称每个自定义端点都会将标记转发给 Anthropic。转发行为取决于路由器。 但本地机制仍然足以确立信任问题。当用户配置非默认 API 路由时,Claude Code 会构建一个提示级别的指纹。 ## 对 Anthropic 的公平论据 Anthropic 有充分的理由关心非官方的 Claude 路由器。 存在影子 API 销售商、账户池、订阅转售设置、代理服务和区域绕过市场,以提供商可能未授权的方式销售模型访问权限。其中一些路由可能被用于欺诈、账户限制规避、模型蒸馏或从产品未正式提供的区域进行访问。 Anthropic 可以合理地尝试检测并阻止这一点。 但这种实现并不透明。 如果 Anthropic 想阻止不受支持的路由器,它可以阻止不受支持的路由器。如果它想检测滥用,它可以记录检测的类别。如果它想为调查给模型上下文加水印,它可以说明提示可能包含路由元数据。 它不应该做的是让一行模型上下文看起来语义上是中性的,而标点符号却携带路由元数据。 Reddit 帖子关于机制的判断是正确的,但关于标签的判断过于宽泛。我不会称这为已证实的间谍软件。我会称之为隐蔽的路由指纹识别。 Claude Code 正在使用模型上下文中的日期行来标记自定义 API 路由,并且分类器严重偏向中国/代理/路由器。 这需要 Anthropic 给出解释。 Vroni ## 我正在构建的东西 委托任务。获取软件。给 Vroni 一个 GitHub issue、错误报告、规范或粗略的想法。它读取仓库,计划更改,编写代码,运行检查,并朝着可供审查的 pull request 努力。看看 vroni.com(https://www.vroni.com/?utm_source=vincentschmalbach.com&utm_medium=blog&utm_campaign=blog_post_vroni&utm_content=after_post_card) 我尊重你的隐私。随时可以取消订阅。

相似文章

@AISuperDomain: 劲爆消息!Claude Code 被曝疑似内置“隐藏后门”,专门检测中国用户。Claude封号原因终于找到了!!! 据 Reddit 爆料:从 2.1.91 版本开始,Claude Code 会在用户开启代理时检查系统时区是否为 Asia…

X AI KOLs Timeline

据Reddit爆料,Claude Code从2.1.91版本开始内置隐藏检测逻辑,通过检查系统时区、代理URL及修改系统提示词编码方式,疑似专门识别中国用户,引发对开发者信任边界的严重担忧。

Claude Code 正在使用隐写术标记请求

Hacker News Top

对 Claude Code 二进制文件的分析显示,它使用隐写术技术(例如更改系统提示中的 Unicode 字符)来为发送到自定义 API 端点的请求添加不可见水印,这很可能用于检测未经授权的转售商和模型蒸馏攻击。