返回 AI 资讯
社区讨论LinuxDo 最新

你给 Claude Code 挂了代理,它已经告诉 Anthropic 了

你给 Claude Code 挂了代理,它已经告诉 Anthropic 了 你在公司网络后面,或者挂着 Clash、机场、某个加速器,用 Claude Code 写代码。 走不走代理,多数人当成是自己和自己网络之间的事。你无非想让连接稳一点、快一点,或者干脆是不挂就连不上。这跟 Anthropic 有什么关系呢。 有关系。 只要代理是开着的,Claude Code 每发一条稍微大点的请求,都会在回传给 Anthropic 的日志里,捎上这么一句: "requestBodyEncoding": "identity"…

内容摘要

作者:#triplekillgod 板块:#开发调优 你给 Claude Code 挂了代理,它已经告诉 Anthropic 了 你在公司网络后面,或者挂着 Clash、机场、某个加速器,用 Claude Code 写代码。 走不走代理,多数人当成是自己和自己网络之间的事。你无非想让连接稳一点、快一点,或者干脆是不挂就连不上。这跟 Anthropic 有什么关系呢。 有关系。 只要代理是开着的,Claude Code 每发一条稍微大点的请求,都会在回传给 Anthropic 的日志里,捎上这么一句: "requestBodyEncoding": "identity", "gzipSkipReason": "proxy" gzipSkipReason: "proxy",意思就是这个人在走代理。 不是报错,不是你路由器加的,是 Claude Code 自己写进去的。它打包好,发到 Anthropic 的日志接口,对面收下,回一个 200。这一整套你在界面上一点都看不到。你用了代理,它就替你说了出去。 不是源码里"可能会",是真发出去了 我翻了一个真实账号往外发的遥测,只数那些确认被收下的(服务端回了 200)。一共 13,945 条唯一事件,其中 313 条带 gzipSkipReason。这 313 条的值,全是 "proxy",没有一条例外,而且每条都配着 requestBodyEncoding: "identity"。 哪些请求会带、哪些不带,也挺有规律: | 请求类型 | 数量 | 带 "proxy" | |—|—|—| | 出错的请求 | 41 | 41 | | 成功的请求 | 274 | 272 | | 重试 | 26 | 0 | | 轻量查询 | 326 | 0 | 带这枚标记出门的,全是那些又大又要紧的请求,也就是你真正在干活、贴大段代码和上下文的时候。随手挑一条上传过的记录,看后面几行: { "status": "400", "requestBodyChars": 192786, "requestBodyEncoding": "identity", "gzipSkipReason": "proxy" } 一个十九万字符的请求,没压缩,原因写着 proxy。这条已经躺在人家日志里了。 它是怎么知道的 好奇的话,可以顺着这个字段去翻 Claude Code 的代码,我看的是 2.1.247 这版。逻辑比想象中简单。 它发大请求前,会先决定这个内容要不要压缩。一路判断下来,凡是决定不压的,都会顺手记个原因:运行环境不对、内容太小、被人手动关了压缩,诸如此类。其中有一类原因,专门用来记这条连接外面裹着什么: function 判断连接走法(url) { if (走的是本地 socket) return "unix_socket"; if (配了代理 && 这地址没被 NO_PROXY 放行) return "proxy"; if (配了客户端证书) return "mtls"; if (配了自定义 CA 证书) return "custom_ca"; return; } proxy 只是这里面的一档。旁边还有 mtls、custom_ca、unix_socket。所以它认得的不止代理:你要是配了自签证书、客户端证书,或者走本地 socket,它照样能看出来,照样往上报。这不是防你,更像是给你的连接做了次体检,然后把结果搭着你每一条大请求,一起寄回去。 原因算出来之后,就塞进那条成功或失败的日志,跟着请求发走。你什么都不用做,代理开着就够了。 用代理会不会被封 会。 你可能觉得封号是因为用得太猛,或者账号本身有问题。但前面那件事别忘了:Anthropic 早就知道你在用代理,因为是 Claude Code 一条一条报上去的。而走代理、走中转、不是从正常网络直连,本来就是任何一家做风控的公司最在意的那类信号。你以为躲在代理后面很安全,可代理这件事本身,就是你自己举起来的那面旗子。 那 313 条 "proxy" 也不是"你走了代理"这么轻描淡写,它是在一条一条给你的账号做记号。哪天风控的线一收紧,先被拎出来的,就是这些有记号的账号。 还有一点很多人没想到:这些记录不是匿名的。翻回前面那条样本,里头有个 clientRequestId,边上还跟着响应 requestId。每条请求都有自己的编号,还能一环扣一环串起来。换句话说,那 313 条不是一堆干巴巴的统计数字,而是明确记在你这个账号名下、一条条能倒查回去的东西。你哪天、用哪条连接、走没走代理,全对得上。 而且不光是代理 盯着这个字段看下去,会发现 Claude Code 顺手报上去的东西,远不止代理。 它启动时会把你设过的一批环境变量名收集起来上报(只报名字不报值,而且只挑它自己那类前缀的)。你的证书情况也在报的范围里:用没用系统证书、有没有自定义 CA、加载证书时出没出岔子、丢了几张过期的,都各有各的字段。 一条一条看,好像都不算什么。可拼到一块,就是一张挺完整的画像:你在什么网络里、证书怎么配的、动过哪些设置。你只是想安静用个工具,它却在背后把你的环境摸得差不多了。 所以别再把封号当成运气问题。 风控从来不是掷骰子,它是踩在事实上的。你走过的代理、报出去的字段、留下的那些 "proxy",都好端端记在那儿。等到某天账号没了,那不是意外,是这些东西攒够了。看着突然,其实每一步都有账可查。 gzipSkipReason: "proxy" 只是这本账里最直白的一笔。它一直在替你说话,只是你今天才知道,它到底说了些什么。

资讯来源

LinuxDo

原文链接

打开原文