📌 摘要
每个月付了200刀Claude订阅费,却只能自己在终端里一问一答,10个AI Agent眼巴巴等着调用,难道还要再花80刀买API?本文为你拆解一套防封中转方案:通过CLI子进程把Claude订阅转化为标准API,让多Agent随意调用,而Anthropic后台看到的只是一个正常用户在终端里使用Claude Code。文章对比了四条技术路线,详解指纹最干净的CLI方案设计与实现,并给出可一键复刻的提示词。weelinking中转服务能帮你国内直连Claude,按量付费免翻墙,搭配本文方案,既能复用订阅又降低风险。读完你就能从零搭建自己的中转服务,实现Claude订阅能力复用,省下双份钱。
📋 目录
🔴 🔴 🔴 国内丝滑使用Claude? 👉 本文全程使用weelinking,按量付费,全系模型支持 👈
一、什么是中转
你买了Claude订阅,每个月200刀,可以在Claude Code终端里随便用。但这个「随便用」有个前提——你得亲自在终端里一问一答地用。
翔宇的OpenClaw有10个AI Agent需要调Claude。它们不是人,不会打开终端敲键盘。它们需要的是一个标准接口——发一个请求过去,拿一个响应回来。
中转就是:把你的Claude订阅能力,转换成一个标准接口,让程序能调用。
翔宇踩过一个坑:最早没做中转,直接花钱买Anthropic的API额度。200刀订阅之外又花了80刀API费——等于交了两次钱。中转的意义就是把订阅复用到程序调用场景,避免双重付费。
1.1 但中转有个核心风险:API指纹
Anthropic的后台不只看你发了什么请求——它还能看到你用的是什么工具发的、请求头长什么样、调用频率是什么模式。这些「行为特征」加起来,就是你的API指纹。
不同方式发出的请求,指纹全不一样。用Claude Code命令行发的、用开发包发的、用第三方工具发的——Anthropic一眼就能分辨。
指纹不同 = 有被检测的风险。 所以选中转方案时,指纹是否「正常」就成了最关键的考量。
二、四条路,该走哪条
翔宇把GitHub上的方案全翻了一遍,逐个拆解。每个方案用同一套标准评估:10个维度,从功能覆盖到指纹风险,逐项对比。
2.1 方案A:OAuth Token → weelinking API
原理: 你用Claude Code登录的时候,Anthropic会给你的终端颁发一个OAuth Token(格式为sk-ant-oat-...)。这个方案就是通过PKCE流程获取这串Token,然后绕过Claude Code,自己写代码直接POST到Anthropic的开发者接口api.anthropic.com/v1/messages。
代表项目: CLIProxyAPI(15,900+ stars,Go实现)——伪装请求头为claude-cli/2.1.63,支持多账号轮换。
| 维度 | 表现 |
|---|---|
| System Prompt | 直接通过API的system参数传入 |
| Tool Calling | 透传tools数组,返回tool_use指令 |
| 流式输出 | SSE直接转发 |
| 多模态 | 直接支持(走开发者API) |
| 并发 | 单Token串行,多账号轮换 |
| 部署难度 | 中等(需理解PKCE,首次浏览器授权) |
| 模型覆盖 | Sonnet、Haiku完整,Opus可能403 |
| 凭证维护 | Token几小时到几天过期,内置自动刷新 |
| 社区成熟度 | 最成熟(15.9k stars) |
| API指纹 | 高危 ——请求头自称Node.js,TLS指纹却伪装Chrome,两者矛盾 |
2.2 方案B:Web Cookie → 网页聊天接口
原理: 复制浏览器登录claude.ai后的Cookie,模拟浏览器直接访问网页版的聊天接口。
代表项目: clewdr(989 stars,Rust) / clove(626 stars,Python)
| 维度 | 表现 |
|---|---|
| System Prompt | 合并到消息内容中 |
| Tool Calling | 支持,但需暂停流等待工具结果 |
| 流式输出 | SSE转发,需格式转换 |
| 多模态 | 支持图片附件 |
| 并发 | 需要维护对话状态,并发受限 |
| 部署难度 | 较高(需手动复制Cookie) |
| 模型覆盖 | 最全(包括Opus) |
| 凭证维护 | Cookie几天到几周过期,需手动续期 |
| 社区成熟度 | 中等 |
| API指纹 | 中高危 ——模拟浏览器指纹,但仍非真实浏览器 |
2.3 方案C:SDK封装
原理: 使用Anthropic官方Agent SDK,接收OpenAI格式请求,内部转成Claude格式调用,再转回OpenAI格式返回。
代表项目: claude-code-openai-wrapper(441 stars,Python) / ccproxy-api(195 stars,Python)
| 维度 | 表现 |
|---|---|
| System Prompt | SDK直接传入systemPrompt |
| Tool Calling | SDK内置,返回结构化调用结果 |
| 流式输出 | SDK异步生成器转成OpenAI delta格式 |
| 多模态 | SDK只支持文本,开源项目普遍无多模态 |
| 并发 | 速率限制或会话池管理 |
| 部署难度 | 最低(本机已装Claude Code即可) |
| 模型覆盖 | 取决于CLI登录账户权限 |
| 凭证维护 | 零维护(复用本地CLI登录状态) |
| 社区成熟度 | 中等 |
| API指纹 | 中危 ——SDK调用时传递的参数组合(空工具、空配置)在正常用户中几乎不会出现 |
2.4 方案D:CLI子进程(本文方案)
原理: 每来一个请求,启动一个真实的Claude Code命令行进程,让它去和Anthropic通信。Anthropic后台看到的,就是一个正常用户在终端里用Claude Code。
代表项目: claudex(Go) / claude-max-api-proxy-rs(Rust)——均为个位数stars,本文方案在此基础上做了大量工程优化。
| 维度 | 表现 |
|---|---|
| System Prompt | 两种注入模式自动切换(普通聊天追加,带工具替换) |
| Tool Calling | 非原生,通过System Prompt注入工具定义,从文本中正则提取 |
| 流式输出 | 非原生,通过标点和换行分块模拟流式 |
| 多模态 | 自动检测,有图片/音频/视频则走Gemini API |
| 并发 | p-queue队列管理,默认4路并发 |
| 部署难度 | 最低(本机装Claude Code + Node.js即可) |
| 模型覆盖 | 取决于CLI登录账户权限 |
| 凭证维护 | 零维护(子进程复用本地CLI登录状态) |
| 社区成熟度 | 最低(无成熟实现,需自己排查) |
| API指纹 | 指纹最干净 ——每个请求都是真实CLI进程,携带完整CLI元数据,与手动使用无异 |
2.5 小冯的选择
翔宇选方案A的理由就一个:最安全好用、稳定。OpenClaw需要的System Prompt、Tool Calling、流式、多模态全部能覆盖,原生实现,非常好用。
⚠️ 重要提醒:方案A/B/C/D都不在Anthropic官方授权范围内。Anthropic的服务条款、速率策略、检测机制随时可能调整,任何中转方案都存在账号被限制或封禁的风险。翔宇在本地跑了两周没出问题,但这不代表方案本身没有风险——只是目前还没触发而已。账号风险自担。
三、CLI方案:设计与实现
核心思路: 每个请求进来,在本机启动一个真实的Claude Code命令行进程,让它去和Anthropic通信。进程拿到回答后,翻译成OpenAI标准格式返回。OpenClaw的10个Agent只需要像调OpenAI一样发请求,完全不用关心背后是Claude。
整个系统拆成五层,每层只干一件事:
| 层级 | 职责 | 具体做什么 |
|---|---|---|
| CLI层 | 启动命令行进程 | 每收到一个请求,执行claude -p "问题内容" --model sonnet --output-format stream-json,在临时沙箱目录中运行,超时5分钟自动强杀 |
| Bridge层 | 格式互相翻译 | 把OpenAI的messages数组拼成prompt文本传给命令行,再把命令行返回的NDJSON解析成OpenAI的choices响应格式 |
| Server层 | 对外暴露接口 | Express服务器,提供/v1/chat/completions(主接口)、/health、/metrics |
| Infra层 | 运维保障 | p-queue并发队列(默认4路)、JSONL日志按日轮转、请求计数、统一错误码 |
| Types层 | 类型定义 | TypeScript类型文件,保证代码有类型检查 |
数据流: 客户端发请求 → Server接收 → Bridge转换 → CLI启动命令行 → 拿到回答 → Bridge转回 → 返回客户端。遇到图片?整条请求不走命令行,改走Gemini API。纯文本保指纹,图片保功能。
三个关键设计决策:
- 沙箱隔离:每个请求创建一个临时目录,结束立刻删除,防止并发请求互相干扰。
- 双模式指纹:普通聊天不加任何自定义参数,指纹与正常用户一致;带工具的请求把工具定义注入系统指令,同时禁用命令行自带工具,两种模式自动切换。
- 文本分块:命令行一次性返回完整回答,分块模块在中文标点(。?!,)和换行处自然断开,模拟流式效果。
运维保障: Watchdog守护进程——服务异常崩溃自动重启,5分钟内连续崩5次则停止排查,日志超10MB自动截断。翔宇的Mac Mini 24小时开机,配了macOS开机自启,中转服务开机就跑。
四、实战验证:从启动到OpenClaw跑通
启动服务: 执行启动脚本,Watchdog拉起服务,健康检查确认端口3457就绪。
OpenClaw配置: 在OpenClaw的Provider设置里填上本机地址和端口,模型选Claude Sonnet。10个Agent的请求全部走这个中转服务。
实际运行数据(翔宇最近7天的统计):
| 指标 | 数据 |
|---|---|
| 总请求数 | 2,431次 |
| 成功率 | 99.2% |
| 平均响应时间 | 8.3秒 |
| 日均Token消耗 | ~180K |
| 额外API费用 | 0刀 |
| 服务崩溃次数 | 3次(Watchdog全部自动恢复) |
我在本地跑了两周多,目前没有收到Anthropic的警告或封号通知。但这不代表方案没有风险——Anthropic的检测策略随时可能更新,翔宇的经验仅供参考。
🔧 实操技巧:并发数设成4,不是不能更高,而是故意控制节奏。同时跑10个命令行进程,调用频率太密集反而容易触发异常检测。4路并发+排队等待,既保证了10个Agent的基本需求,又不会在调用频率上太显眼。
五、一键复刻
准备两样东西:一台装了Claude Code的电脑(已登录订阅账号)、Node.js 20以上。然后把下面这段提示词复制给Claude Code:
「帮我搭建一个Claude CLI Proxy中转服务,通过
claude -p命令行子进程中转请求,对外暴露OpenAI兼容API。TypeScript + Express,ES Modules,端口3457。五层架构,每层只干一件事:
CLI层——启动
claude -p子进程,真正跟Claude通信。每个请求创建临时沙箱目录,结束立刻删除,防止并发请求互相干扰。进程超时强杀(默认5分钟)。环境变量清理,防止子进程套娃启动新的代理。双模式指纹策略:普通聊天不加任何自定义参数,指纹和正常用户一致;带工具的请求把工具定义注入到系统指令里,同时用--allowedTools ""禁用命令行自带工具。Bridge层——OpenAI格式和Claude格式互相翻译。消息转换:把OpenAI的messages数组转成Claude能理解的格式。工具注入:如果请求带了tools参数,把工具定义写进System Prompt,指示Claude用特定文本格式输出工具调用。工具解析:从Claude的文本回复中提取工具调用,解析成OpenAI标准的tool_calls格式返回。
Server层——Express服务器,暴露三个端点:
/v1/chat/completions(主接口,接收OpenAI格式请求)、/health(健康检查)、/metrics(运行统计)。Infra层——并发队列管理(p-queue,默认4路并发,满载排队,超载返回429)。JSONL格式日志,按日期轮转。请求计数、成功率、平均响应时间等运行指标统计。统一错误处理。
Types层——定义OpenAI请求/响应格式和内部数据格式的TypeScript类型。
多模态路由:自动检测请求中的图片、音频、视频内容,整条请求不走命令行,改走Gemini API(环境变量GEMINI_API_KEY配置密钥,GEMINI_MODEL配置模型)。纯文本保指纹,多媒体保功能。
流式输出:命令行一次性返回完整回答,用文本分块模块模拟逐段输出——在中文标点(句号、问号、感叹号、逗号)和换行处自然断开,发送SSE格式的Server-Sent Events。
启动脚本start.sh内置Watchdog守护:服务异常崩溃自动重启,5分钟内连续崩5次停止重启并报警(防抖动),日志超10MB自动截断。支持start/stop/restart/status四个命令。
macOS开机自启:生成LaunchAgents plist文件,开机自动拉起服务。
环境变量(均有默认值):
PROXY_PORT(端口,默认3457)、PROXY_CONCURRENCY(并发数,默认4)、PROXY_TIMEOUT_MS(超时,默认300000)、GEMINI_API_KEY(多模态密钥)、GEMINI_MODEL(多模态模型)。」
Claude Code会自动生成全部代码。搭建完成后验证:访问127.0.0.1:3457/health确认服务就绪,然后在OpenClaw或任何OpenAI兼容客户端填入Base URL 127.0.0.1:3457/v1,Model填claude,即可使用。
六、常见问题
| 问题 | 解决方法 |
|---|---|
| 使用方案D会不会被封号? | 方案D指纹最接近正常用户,但任何中转都有风险。建议控制并发(4路以内),避免异常高频调用。 |
| 多模态图片怎么处理? | CLI子进程本身不支持多模态,方案D自动检测到图片后走Gemini API,需配置GEMINI_API_KEY。 |
| Tool Calling解析失败怎么办? | 偶尔解析失败可让客户端重试。若频繁失败,可考虑切换到方案C(SDK封装),Tool Calling原生支持。 |
| 服务启动后无法访问? | 检查防火墙、端口是否被占用,查看日志排查错误。 |
| 需要weelinking做什么? | weelinking提供国内直连Claude的API,按量付费,免翻墙。本文方案可搭配weelinking作为备选或测试通道。 |
七、配套资源
- weelinking注册:
https://api.weelinking.com/register?aff=sSdbJ5cV - 翔宇工作流AI编程实操课:获取完整源码 + 多Agent自动化工作流
- Claude Code安装指南:详见官方文档
- Gemini API申请:Google AI Studio
🔴 🔴 🔴 国内廉价稳定使用Claude? 👉 本文丝滑使用weelinking,高性价比,全系模型支持 👈