2025年8月5日火曜日

Claude Relay Service 部署指南

 

引言

当你的团队想一起使用 Anthropic 的 Claude AI,却苦于账号无法多人共享、或因地区限制而无法直接访问Claude时,该怎么办?小李和小王就遇到了这样的难题:他们合伙开通了价值不菲的 Claude 高级账号,但如何安全高效地让大家共同使用却让人犯愁。更糟的是,市面上一些第三方Claude镜像服务常常不稳定、甚至存在隐私风险。所幸,开源项目 Claude Relay Service 横空出世,让团队自建Claude中转服务成为可能!它支持将多人的Claude账号集中在一处,由团队成员共同使用,并通过OpenAI兼容接口方便地接入各种应用。本文将深入介绍这个项目的核心特点和使用方法,带你一步步搭建属于自己的Claude中转站,实现团队高效共享Claude账号的愿望。相信阅读完本文,你会发现:原来和小伙伴们拼车Claude,就像合租一台“AI超跑”,既省钱又放心!🚗💨

核心功能与特点

Claude Relay Service 能够充当你自己部署的Claude “中转服务器”,它像一个管家,替你管理多个Claude账户,并提供统一的API接口供团队调用。以下是它的几项核心能力:

  • • 团队账号池 & 多账户轮询:支持添加多个Claude账号组成账号池,服务会自动轮换使用它们处理请求。这意味着如果一个账号达到使用上限或出现问题,系统会智能切换到下一个账号,保证服务不断档。团队合租Claude账号时,每个人的请求将被均匀分配到不同账号上处理,大幅降低了单账号被封禁的风险。
  • • OpenAI API接口兼容:Claude Relay Service 同时提供Claude原生接口OpenAI兼容接口。也就是说,你可以用OpenAI API的格式来调用Claude!例如,将第三方应用的API端点指向 http://<你的服务器>:3000/openai/claude/v1/,就能像调用OpenAI一样使用Claude模型 。这一特性让已有的各种AI工具无缝对接Claude成为可能,再也不用费力修改代码适配新接口。
  • • 自定义API密钥:为了方便团队内部管理,管理员可以为每个用户生成独立的API Key。每位成员用各自的Key访问Claude Relay Service,中转服务会统计每个Key用了多少请求和Token。管理员可以设置访问权限和速率限制,例如每分钟请求次数上限、每月最大Token用量,甚至限定哪些模型可用等。通过这种方式,团队共享Claude账号的同时也能做到各用各的、不抢道,清晰掌握每个人的使用情况。
  • • OAuth快捷添加账号:添加Claude账号进入账号池非常简单。Claude Relay Service 集成了Anthropic的OAuth授权流程:管理员在Web界面点击“添加账户”,生成授权链接,然后登录Claude账号授权即可将该账号接入服务。整个过程无需手动输入密码,安全又便捷。需要注意的是,如果服务器在国内,完成OAuth授权可能需要科学上网配合。有了OAuth集成功能,哪怕团队里不断有新人加入或更换Claude账号,管理员都能几分钟内完成配置,无缝衔接。

以上这些功能组合在一起,就打造出了一个安全高效、灵活可控的Claude共享平台。对于无法直接访问Claude官方服务、又希望和朋友拼车Claude订阅的小团队而言,这无疑是个福音!Claude Relay Service让你们远离第三方镜像的不稳定,自己掌控数据和成本。正如官方README所说:数据安全、性能可控、成本透明 – 自建服务的好处一目了然。

Docker Compose 部署指南

Claude Relay Service 提供了多种部署方式,其中Docker Compose 部署无疑是最简单高效的选择之一。下面我们以Docker Compose为例,从零开始搭建你的Claude中转服务。

1. 环境准备:确保服务器已安装好 Docker 和 docker-compose 工具。由于使用Docker容器,基本不挑操作系统,只要能跑Docker即可。官方推荐使用国外云服务器(美国节点)以直接访问Anthropic的Claude服务。部署前,你需要注册至少一个Claude账号并订阅相应套餐(团队共享通常选择Claude Pro或Max套餐,大家平摊费用)。此外,准备两个安全密钥:JWT_SECRET 和 ENCRYPTION_KEY,分别用于签发JWT和加密敏感数据,必须是随机字符串且加足长度(32字符以上)。

2. 获取项目镜像:项目提供了预构建的Docker镜像,直接拉取即可使用:

docker pull weishaw/claude-relay-service:latest

镜像支持 AMD64 和 ARM64 架构,拉取完成后,我们就可以通过Docker Compose来运行它。

3. 编写配置:在部署目录中新建一个 .env 文件,写入我们准备好的环境变量:

# .env 文件内容示例
JWT_SECRET=your-random-secret-key-at-least-32-chars  
ENCRYPTION_KEY=your-32-character-encryption-key  

# 可选:预设管理员账号(不设则随机生成)
ADMIN_USERNAME=cr_admin  
ADMIN_PASSWORD=your-secure-password  

以上,JWT_SECRETENCRYPTION_KEY是必填项,请务必替换为你自己的随机密钥。ADMIN_USERNAMEADMIN_PASSWORD可选填;若不设置,系统首次启动会自动生成默认的管理员账户和密码并存储在挂载的数据卷中供查阅。

接着,创建 docker-compose.yml 配置文件,内容如下:

version: '3.8'
services:
claude-relay:
    image:weishaw/claude-relay-service:latest
    container_name:claude-relay-service
    restart:unless-stopped
    ports:
      -"3000:3000"
    environment:
      -JWT_SECRET=${JWT_SECRET}
      -ENCRYPTION_KEY=${ENCRYPTION_KEY}
      -REDIS_HOST=redis
      -ADMIN_USERNAME=${ADMIN_USERNAME:-}
      -ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
    volumes:
      -./logs:/app/logs
      -./data:/app/data
    depends_on:
      -redis

redis:
    image:redis:7-alpine
    container_name:claude-relay-redis
    restart:unless-stopped
    volumes:
      -redis_data:/data

volumes:
  redis_data:

上面的Compose文件定义了两个服务:claude-relay 和 redis。让我们逐项解释每个字段的含义:

  • • 镜像与容器claude-relay服务使用了我们拉取的官方镜像 weishaw/claude-relay-service:latest,并命名容器为claude-relay-service,方便识别。redis服务使用官方的 redis:7-alpine 轻量镜像作为后端数据库。两个服务均设置了restart: unless-stopped,确保容器异常退出时能自动重启,保证高可用。
  • • 网络端口ports 将容器内部的3000端口映射到主机的3000端口,即服务启动后可通过 http://<服务器IP>:3000 访问Claude Relay Service的接口和Web管理界面。
  • • 环境变量environment 列出了Claude Relay Service所需的环境变量。其中 ${JWT_SECRET} 和 ${ENCRYPTION_KEY} 会从我们刚才的 .env 文件中读取对应的值。REDIS_HOST=redis 指定服务应连接名为redis的容器作为数据库。ADMIN_USERNAMEADMIN_PASSWORD使用了${VAR:-}语法,表示如果.env中提供了这些变量就用提供的值,否则留空让系统自动创建管理员账号。通过环境变量集中配置,所有敏感信息不硬编码在镜像内,修改配置也非常方便。
  • • 数据卷挂载:Claude Relay Service会将日志和数据分别写入容器内的/app/logs/app/data目录。我们通过volumes将宿主机的./logs./data目录挂载到容器对应路径,实现日志和数据持久化。这样即使容器重启或升级,之前的对话内容、账号配置等数据也不会丢失。
  • • 服务依赖depends_on: - redis 表示Claude Relay服务在启动时需要等待Redis服务就绪。这确保了应用在启动时能成功连接到数据库。不用担心启动顺序的问题。
  • • 命名卷:底部的volumes: redis_data:定义了一个持久化卷用于存储Redis的数据文件。Redis容器将其挂载到/data路径下。如此一来,Redis的数据也能在容器之间共享/持久。

配置文件准备就绪后,可以看到它已经涵盖了管理员账号初始化、数据持久化、内置Redis、健康重启等方方面面。Docker Compose 帮我们把这些部署杂事一网打尽,省心又省力。

4. 启动服务:在包含上述文件的目录下,执行:

docker-compose up -d

Docker会拉取Redis镜像并启动两个容器。第一次启动时,Claude Relay Service会自动初始化管理员账号和密码。如果之前我们没有在.env中预设管理员凭据,可以通过查看日志或文件获取默认账号:

docker logs claude-relay-service    # 从容器日志中查找初始管理员账号  
# 或查看挂载的数据文件  
cat ./data/init.json  

日志或文件中会显示管理员用户名(一般默认为cr_admin)和随机生成的密码。拿到管理员账号后,我们在浏览器访问 http://<服务器IP>:3000/web 打开Web管理界面。输入管理员账户登录,即可开始配置我们的Claude Relay Service啦!

5. 添加Claude账号:登陆管理后台后,首先要将Claude官方账号接入系统。在“Claude账户”标签页点击“添加账户”,然后点击“生成授权链接”。系统会跳转到Anthropic的官网OAuth页面,提示你登录并授权。使用需要共享的Claude账号完成授权后,会返回一个授权码,将其粘贴回Claude Relay Service的添加账户页面,即可成功绑定账号。整个过程类似于用第三方应用登录Google,安全方便

6. 分发API Key:账号池准备就绪后,就可以为团队成员创建各自的API Key了。在管理后台进入“API Keys”页签,点击“创建新Key”,为其命名(例如“张三的Key”),然后生成。你也可以在创建时设置该Key的权限和配额,如每分钟最大请求数、并发数、可用模型、绑定客户端等。保存后系统会生成一串随机API密钥。今后团队成员只需使用这个密钥调用Claude Relay Service提供的API接口,就会由中转服务代他们向Claude提问了。

完成以上步骤后,一个功能完备的Claude团队共享中转服务就部署成功!整个流程下来是不是相当简洁?借助Docker Compose,我们几乎不用手动配置复杂环境,一条命令拉起所有服务。官方也贴心地在Compose模板中考虑到了自动初始化和数据持久化,开箱即用。

实战建议

要让Claude Relay Service在团队协作中发挥最大效用,这里有一些经验之谈与大家分享:

  • • 合理规划账号池:尽量使用多几个Claude账号来构建账号池,并确保它们套餐相同(例如都订阅Claude Pro/Max),这样轮询时不会因为单个账号性能不足而拖后腿。账号数量可以根据团队规模和请求频率调整,人越多账号越多更稳定。不用担心账号闲置,正所谓“多个Claude账号走镖,不怕封号扰”——哪怕个别账号被风控暂停,后备账号也能顶上,服务不中断。
  • • 充分利用使用统计:管理员应定期查看Claude Relay后台的使用统计功能,了解每个API Key的请求量和Token消耗。这有助于团队内部透明化账目:大家平摊Claude订阅费时,心里都有本“明白账”。如果发现某段时间请求量异常增高,可以及时沟通或调整速率限制,避免某个人“独占”资源影响他人。
  • • 设置访问控制:Claude Relay Service支持为每个API Key设置丰富的使用限制。善用这些功能,例如限制单用户每分钟请求不超过N次,或者仅允许特定客户端/应用使用,能够防止误用滥用。特别是在开放给更多人使用或集成到第三方应用时,务必配置好速率限制和并发控制,既保护后端Claude账号不被过载,也防止团队内部因资源抢占产生矛盾。
  • • 关注网络和延迟:建议将服务部署在能快速访问Claude服务器的地区(如北美地区)。如果你的团队主要在国内使用,可以考虑选择对国内用户友好的中转线路。例如部署在美国但走优化过的回国网络,减少API调用过程中的延迟。根据实践,部分国内云厂商的海外机器可能会被Claude的Cloudflare防火墙拦截,要多加留意官方频道公告或社区反馈。
  • • 保持更新:该项目十分活跃,功能在不断改进(例如近期新增了Claude-1.2模型支持等等)。建议定期关注项目的GitHub主页或Telegram公告频道。Docker用户可以通过定期docker pull获取最新镜像,然后重启服务升级。保持版本最新,可以享受更稳定的性能和最新的功能特性。

最后提醒一句:使用Claude Relay Service相当于非官方方式调用Claude,请务必遵守Anthropic的服务条款,避免滥用造成账号风险。自建服务给了我们更大自由,也意味着需要自行对安全合规负责。在团队内部制定好使用规范,才能长长久久地“开开心心用Claude”~


结语

通过 Claude Relay Service,我们再也不用为团队共享Claude账号而绞尽脑汁了。无论你是因为地区限制无法直连Claude,还是想和小伙伴拼车昂贵的Claude Max套餐,这个开源项目都提供了一个灵活可靠、安全私有的解决方案。我们详细讲解了它的核心功能:多账户池、OpenAI接口兼容、自定义API密钥、OAuth添加账户等,让你清楚它如何满足团队协作需求。同时,我们一步步演示了Docker Compose部署,从配置环境变量到启动服务,相信即使不是DevOps高手的读者也能跟随操作,快速搭建起自己的Claude中转站。

可以想见,有了Claude Relay Service,加班写代码时再也不怕Claude账号额度见底,同事们也不必各自开账户重复花钱。大家共享一个“Claude大水池”,各取所需又明明白白,真正做到省钱又省心!

0 件のコメント:

コメントを投稿