Claude 检测

Anthropic 不向中国大陆提供 Claude,而 Claude Code 被公开的逆向分析发现会读取系统时区等本地信号, 把「像不像中国用户」的判定悄悄编码进每一次请求。网页读不到 Claude Code 能读的全部信息, 但最关键的那一项完全一致——下面读取同一个系统时区,再叠加语言、字体、设备、WebRTC 等 共 10 项浏览器可见的信号,按权重算出一个 0–100 的风险分。

共 10 项信号逐项检测,全部在你的浏览器里完成,几秒钟出结果。

评分摘要

风险分
尚未检测
风险分档
尚未检测
命中信号
尚未检测

检测信号

系统时区 权重 24 Claude 同款

Intl.DateTimeFormat 读到的就是 Claude Code 读取的同一个操作系统时区,与 Asia/Shanghai、Asia/Urumqi 等中国时区比对;香港、澳门时区计部分风险。

待检测
浏览器语言 权重 18

navigator.languages 的偏好顺序:首选 zh-CN / 简体中文得分最高,繁体(港澳)计一半,zh-TW 不计分。

待检测
已安装中文字体 权重 14

用 canvas 逐个量字宽,探测微软雅黑、苹方、思源黑体等简繁中文字体有没有装在系统里。

待检测
国产厂商字体 权重 10

同样的办法探测 MiSans、鸿蒙黑体、OPPO Sans、WPS 自带的方正字体等国产厂商 / 软件字体,命中即为强信号。

待检测
WebRTC IP 泄露 权重 10

让 RTCPeerConnection 向 STUN 服务器收集一次 ICE 候选,看浏览器会不会交出本机或公网地址;探到的公网地址与本站看到的不一致时记满分。

待检测
国产浏览器 / WebView 权重 8

用 UA 与 UA-CH brands 匹配微信、QQ、夸克、UC、百度、360、搜狗、抖音等国产浏览器或应用内 WebView。

待检测
国产品牌设备 权重 6

用 UA-CH 设备型号(navigator.userAgentData)与 UA 匹配鸿蒙、华为、小米、OPPO、vivo 等国产品牌。

待检测
Intl 区域设置 权重 4

浏览器用于日期 / 数字格式化的 locale,通常跟着系统区域走。

待检测
时区偏移 权重 3

getTimezoneOffset() 是否为 UTC+8。新加坡、马来西亚、西澳也在这一档,所以权重压得很低。

待检测
Emoji 渲染风格 权重 3

由平台与 UA 推断 emoji 的渲染厂商(Apple / Google / Microsoft…),只是弱相关的旁证。

待检测

什么是「Claude 中国用户」判定

Anthropic 的服务不面向中国大陆,官方入口会按地区拦下访问。但真正让人担心的不是「打不开」, 而是「打开了却被标记」:公开的逆向分析发现,Claude Code 在通过 ANTHROPIC_BASE_URL 指向非官方中转端点时,会读取操作系统时区与中转站的主机名, 再把判定结果用隐写的方式藏进 system prompt 里「Today's date is …」那一行—— 命中中国时区时,日期分隔符从 - 变成 /; 那个撇号则在四种视觉上几乎一样的 Unicode 变体之间切换,编码主机名有没有命中域名清单或 AI 实验室关键词。 这些标记随每一次请求发往服务端,肉眼看不出任何差别。

判定不是一个开关,而是把多个弱信号叠加成一个概率。系统时区是单项里最重的一环: 它伴随每一次请求,又很难无意中伪装;语言、字体、设备品牌与网络出口都会在它之上继续加权。 一个美国时区配上一整套中文字体和一个微信 WebView,照样会被读成可疑。 整个浏览器环境之所以会泄露这么多,是因为区域设置会渗透到方方面面—— 系统时区决定了 Intl 与 Date, 语言偏好决定了 navigator.languages 与 Accept-Language 请求头, 系统自带的字体可以被 canvas 逐像素量出来。

这次检测做了什么

  1. 读取 Intl.DateTimeFormat 解析出的系统时区。 这是网页与 Claude Code 唯一读到同一个值的信号,所以权重最高(24 分)。
  2. 依次检查浏览器语言列表、Intl locale 与 UTC 偏移这几项区域设置。
  3. 用 canvas 逐个量字宽,探测中文字体与国产厂商字体:字体装没装,画出来的宽度骗不了人。
  4. 从 UA 与 UA-CH 里识别国产浏览器、应用内 WebView 与设备品牌。
  5. 让 WebRTC 向 STUN 服务器收集一次 ICE 候选,看它会不会交出本机或公网地址,并与本站在 HTTP 层看到的地址对照。
  6. 每一项得到一个 0–1 的「中国相似度」,乘以各自的权重后相加。10 项权重合计 100,总分就是风险分。

所有探测只读浏览器 API,探到的值不会离开这个页面。之所以逐项点亮而不是一口气算完, 是为了让你看清楚分数是从哪几项上涨起来的——要改,也就知道先改哪一项。

怎么读检测结果

台湾不在 Anthropic 的限制名单内,所以 Asia/Taipei 时区与 zh-TW 语言 / locale 不计分,繁体中文字体只保留极低的模糊分(无法区分台湾与港澳)。 香港、澳门属于受限地区,相关信号保留部分风险分。

如何降低风险分

按权重从高到低排,每一步都对应上面的某一项信号,做完一步就回到本页重测一次:

  1. 改系统时区。把操作系统时区换到非中国时区(例如 America/New_York 或 Europe/London), 并确认 getTimezoneOffset() 不再是 UTC+8。这是单项收益最高的一步。 通过中转使用 Claude Code 且宿主机在中国时,还要用 TZ 环境变量把它覆盖掉。
  2. 调整语言顺序。把 zh-CN / zh-Hans 从浏览器与系统语言列表的首位移除, 让 navigator.languages 与 Accept-Language 以英文或其他非中文 locale 打头。
  3. 隔离中文与厂商字体。微软雅黑、苹方、MiSans、鸿蒙黑体这些字体一装上就会被 canvas 量出来。 用一个干净的浏览器 Profile 或独立的系统环境跑 Claude,比逐个卸载字体现实得多。
  4. 堵住 WebRTC,用住宅出口。先在本站的 WebRTC 泄露检测里确认真实地址没有漏出去; 出口尽量用原生住宅 IP 而不是数据中心 IP,避免一个本来干净的环境被网络那一头盖过去。
  5. 让中转的主机名保持中性。通过中转使用 Claude Code 时, ANTHROPIC_BASE_URL 的域名里不要出现敏感关键词或 AI 实验室的名字—— 主机名本身就是被读取的两个信号之一。

要留意一个反直觉的事实:把每一项都伪装到极致,本身也是一种指纹。 一个英文时区配上全套中文字体、或者一个语言列表里只剩一种语言的浏览器, 在统计上同样罕见。目标是「看起来像一个普通的海外用户」,而不是「什么都测不出来」。

常见问题

Claude 真的会读我的时区吗?
据公开的逆向分析,Claude Code 在通过 ANTHROPIC_BASE_URL 指向非官方端点时,会读取操作系统时区与中转站的主机名,再把判定结果用几个视觉上几乎一样的 Unicode 字符藏进 system prompt 里「Today's date」那一行。本页通过 Intl.DateTimeFormat 读到的,正是同一个系统时区。
这个分数就是 Claude 的真实判定吗?
不是。十项里只有系统时区能与已披露的机制一一对应,其余九项是与之相关的「中文环境指纹」。Anthropic 真正的风控还会看出口 IP 的归属、支付方式、账号资历与使用模式,这些网页都看不到。分数是估计,不是定论。
分数低就一定不会被封吗?
不能保证。本页只衡量浏览器可见的指纹,一个数据中心出口、一张高风险的虚拟卡,照样可能让账号被标记。低分能消除的是本地环境里那些明显的破绽,不是全部风险。可以配合本站首页的 IP 检测,看看出口地址本身是不是家宽、有没有代理记录。
换了 IP、挂上 VPN,分数会变吗?
大多不会。时区、语言、字体、设备型号读的都是操作系统和浏览器本身,与网络出口无关——这正是很多「干净」的 VPN 配置在这里依然高分的原因。十项里只有 WebRTC 一项和网络有关。
本站会保存这次检测的结果吗?
不会。全部检测在你的浏览器里完成,探测到的时区、语言、字体、设备信息一个字节都不会发回本站。WebRTC 那一项会向 STUN 服务器发一次探测请求,取回的地址也只留在当前页面里,关掉即消失。

本页的信号清单、权重与打分规则来自开源项目 FuckClaude(MIT 协议,© LinXiaoTao), 按本站无构建、无框架的约定重新实现。检测结论仅供参考,基于对 Claude Code 早期中转指纹行为的公开逆向分析, 不构成 Anthropic 的官方说法,也不构成任何建议。