教程

Claude Relay Service Docker 部署完整教程:一键搭建 Claude Code 中转服务

CRS(Claude Relay Service)Docker 部署完整指南:服务器选择建议(避开阿里云/腾讯云海外)、Docker Compose 一键部署步骤、环境变量配置(JWT_SECRET/ENCRYPTION_KEY)、管理员密码获取、Claude OAuth 账户添加、API Key 创建,以及 Nginx 反向代理和 HTTPS 配置。

2026/3/164分钟 阅读ClaudeEagle

本教程从零开始,带你用 Docker Compose 部署 CRS, 整个流程约 30 分钟,部署完成后即可多人共享 Claude Code。

第一步:选择合适的服务器

⚠️ 重要:经测试,阿里云、腾讯云的海外主机会被 Cloudflare 拦截,无法直接访问 Claude API。请选择其他云服务商。

推荐服务器配置:

规格说明
CPU1-2 核
内存1-2 GB(512MB 最低)
硬盘30GB+
地区美国 或其他非中国大陆地区(非阿里/腾讯海外)
月费约 30-60 元

推荐服务商:Vultr、DigitalOcean、Hetzner、搬瓦工(BandwagonHOST)、RackNerd

网络建议:选回国线路好(CN2/GIA)的机器,拼车成员用起来速度更快。

第二步:安装 Docker

bash
# Ubuntu/Debian 一键安装 Docker
curl -fsSL https://get.docker.com | sh

# 把当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
newgrp docker

# 验证
docker --version
docker compose version

第三步:Docker Compose 一键部署

bash
# 下载官方 compose 配置脚本
curl -fsSL https://pincc.ai/crs-compose.sh -o crs-compose.sh
chmod +x crs-compose.sh
./crs-compose.sh

脚本会交互式询问配置,生成 docker-compose.yml.env 文件。

手动配置 .env(可选)

如果不用脚本,手动创建 .env

bash
# 生成随机密钥
JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 16)  # 必须 32 字符

cat > .env << EOF
JWT_SECRET=${JWT_SECRET}
ENCRYPTION_KEY=${ENCRYPTION_KEY}

# 可选:预设管理员账号(不填则自动生成)
# ADMIN_USERNAME=my_admin
# ADMIN_PASSWORD=my_secure_password

# Redis 配置(使用 compose 内置 Redis 则不需要改)
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

# 日志级别
LOG_LEVEL=info
EOF

echo "配置已生成"
cat .env

docker-compose.yml 参考

yaml
version: '3.8'
services:
  crs:
    image: ghcr.io/wei-shaw/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
      - REDIS_PORT=6379
      - ADMIN_USERNAME=${ADMIN_USERNAME:-}
      - ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
    volumes:
      - ./data:/app/data
      - ./logs:/app/logs
    depends_on:
      redis:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  redis:
    image: redis:7-alpine
    container_name: crs-redis
    restart: unless-stopped
    volumes:
      - redis-data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  redis-data:

第四步:启动服务

bash
# 启动(后台运行)
docker compose up -d

# 查看启动日志
docker compose logs -f crs

# 确认服务正常
docker compose ps

第五步:获取管理员账号

bash
# 方法 1:查看自动生成的账号
cat ./data/init.json

# 方法 2:查看容器日志
docker logs claude-relay-service | grep -A5 "管理员"

第六步:访问管理面板

浏览器打开:http://你的服务器IP:3000/web

用 init.json 里的账号密码登录。

第七步:添加 Claude OAuth 账户

这是最关键的步骤:

  1. 登录管理面板,点击「Claude 账户」标签
  2. (可选)如果担心多账号共用 IP,先配置静态代理
  3. 点击「添加账户
  4. 点击「生成授权链接」→ 在新标签页完成 Claude 登录授权
  5. 复制返回的 Authorization Code,粘贴完成添加

💡 国内用户这一步需要挂梯子访问 Claude 官方授权页面。

建议添加 2-3 个账户,智能轮换机制会自动处理切换。

第八步:创建 API Key

  1. 点击「API Keys」标签
  2. 点击「创建新 Key」,起个名字(如「张三的 Key」)
  3. 按需配置限制:
    • 速率限制:每分钟最多 N 个请求
    • 并发限制:同时最多 N 个请求
    • 模型限制:只允许使用特定模型
  4. 保存,复制 API Key 发给对应成员

第九步:配置 Claude Code 使用

成员在自己电脑上设置

bash
# 写入 ~/.bashrc 或 ~/.zshrc
export ANTHROPIC_BASE_URL="http://你的服务器IP:3000/api/"
export ANTHROPIC_AUTH_TOKEN="你的API-Key"

# 生效
source ~/.bashrc

# 测试
claude -p "你好"

可选:Nginx 反向代理 + HTTPS

nginx
server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    # 重要:Codex CLI 需要这一行
    underscores_in_headers on;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }
}
bash
# 申请免费 SSL 证书
apt install certbot python3-certbot-nginx
certbot --nginx -d your-domain.com

常见问题

Q:启动后访问不了管理面板 检查服务器防火墙是否开放 3000 端口:ufw allow 3000

Q:添加 Claude 账户时无法授权 需要科学上网,使用代理访问 Claude 授权页面。

Q:Codex CLI 用不了 在 Nginx 配置中添加 underscores_in_headers on;,否则粘性会话头会被丢弃。

Q:提示安全漏洞 立刻执行 docker compose pull && docker compose up -d 更新到最新版本。


来源:CRS GitHub 项目 - https://github.com/Wei-Shaw/claude-relay-service

相关文章推荐

教程CRS 一键脚本部署完整教程:最简单的 Claude Code 中转服务安装方式Claude Relay Service(CRS)一键脚本部署完整指南:manage.sh 脚本安装流程、交互式配置向导(端口/Redis/目录)、crs 命令行工具完整用法(install/start/stop/restart/status/update/uninstall)、首次启动后的账号配置步骤,以及脚本部署与 Docker 部署的对比选择建议。2026/3/16教程CRS 多模型接入指南:Gemini CLI、Codex CLI 和 Droid 统一中转配置Claude Relay Service 多模型接入完整教程:CRS 如何同时支持 Gemini CLI(gemini-2.5-pro/gemini-3)、OpenAI Codex CLI(gpt-5.1-codex-max)、Droid CLI 和 VS Code 插件的环境变量配置方法,以及 Antigravity 账户池的使用和模型选择建议。2026/3/16教程Claude Code Docker 配置指南:容器环境部署与沙箱隔离实战Claude Code 在 Docker 容器环境中的完整配置指南:Dockerfile 构建、docker-compose 配置、环境变量管理、权限隔离、CI/CD 集成、开发/生产环境分离,以及 DevContainer 开发环境配置。2026/3/14教程Claude Code MCP 完整使用指南:安装配置主流 MCP 服务器扩展 AI 能力Claude Code MCP(Model Context Protocol)完整使用指南:MCP 是什么(AI 工具扩展标准)、claude mcp 命令管理服务器(add/remove/list)、主流 MCP 服务器安装配置(文件系统/GitHub/PostgreSQL/Brave Search/Slack)、本地 stdio 与远程 SSE 两种连接方式、MCP 服务器安全配置、在 CLAUDE.md 中声明 MCP 工具使用规范,以及自定义 MCP 服务器的快速开发入门。2026/3/18教程Claude Code 输出格式控制完全指南:JSON、流式、结构化输出使用方法Claude Code 和 Claude API 输出格式完整控制指南:--output-format 参数(text/json/stream-json)、非交互模式(-p)的输出控制、结构化 JSON 输出(--json-schema 字段约束)、流式输出(Server-Sent Events)的处理方式、include-partial-messages 流式渐进显示、以及 CI/CD 管道中解析 JSON 输出的实用技巧。2026/3/18教程Claude Code 项目初始化最佳实践:新项目 5 分钟搭建完美 AI 编程环境Claude Code 新项目最佳初始化流程:CLAUDE.md 标准模板(项目背景/技术栈/代码规范/禁止操作)、.claudeignore 初始配置、.claude/commands/ 常用命令预置、settings.json 权限与模型设置、--init 命令的自动化初始化、项目级 vs 全局配置的优先级说明,以及不同类型项目(Web前端/后端API/全栈/开源库)的专项初始化模板。2026/3/18