Claude API 用了几天就发现 Key 到处贴、调用计数乱七八糟、网络一抖就 500 错误?本资源给你一个零依赖的本地中转服务,跑在 127.0.0.1:8787,所有客户端统一从这里走,再由它把请求转发到 Anthropic 官方接口。优势:本地延迟从 300ms 降到 50ms 以内、统一鉴权、自动重试、实时日志、限流可配置。
[判断标准] 你的 Claude 调用是否需要中转
符合任意两项就该上:
同时跑 3+ 个客户端(IDE 插件 + 终端 + 网页)
每次都要把 API Key 复制到新工具里
遇到过 "Connection reset" 或 TLS 握手失败
想看每次调用的耗时和 token 数
需要给团队同事复用同一个 Key
[关键参数] server.js 里的核心配置
RELAY_PORT(默认 8787):本地服务端口,可改 9000 等
UPSTREAM_BASE(默认 api.anthropic.com):上游地址,可换成第三方中转
UPSTREAM_KEY:Anthropic 官方 Key,存环境变量
RELAY_KEY:本地鉴权密码,客户端必须带 "Authorization: Bearer 你的密码"
requestTimeoutMs:上游超时,默认 60s
maxBodyMB:单次请求体上限,默认 50MB
[避坑点] 不要把 relay_key 设成空字符串
默认启用了本地鉴权(防止本机其他进程误连),如果你只在 localhost 跑可以注释掉那 5 行检查代码。需要远程访问的,永远不要把 8787 直接暴露在公网,前面套 Nginx + Basic Auth。
[易踩坑] upstream_key 是怎么读取的
优先级:环境变量 > 脚本里硬编码。生产环境务必用环境变量,Windows 设:setx UPSTREAM_KEY "sk-ant-...",Linux/Mac 设:export UPSTREAM_KEY="sk-ant-..."。永远不要把 Key 写进代码仓库。
[场景建议] 三个高频配置组合
①个人本地:端口 8787 + relay_key=local-…2026 + 日志输出到控制台
②家庭局域网:端口 8787 + relay_key=随机长串 + 绑定 0.0.0.0 + Nginx 反代
③公司服务器:端口 9000 + relay_key=64 位随机 + systemd 守护进程 + 鉴权改 JWT
总结:资源包包含 server.js(主服务)、start-relay.bat(Windows 一键启动)、client-test.js(连通测试)、config.example.json(配置模板)。下载后编辑 start-relay.bat 填入 Key,双击运行即可。完整使用文档见包内 readme.txt。