Модуль 4.2 · Урок 3
Relay-сервисы и мульти-аккаунт
Содержание
- Зачем нужны relay-сервисы
- Claude Relay Service (CRS)
- Архитектура
- Компоненты
- Поддерживаемые провайдеры
- Установка
- Настройка после установки
- Безопасность
- Sub2API (CRS 2.0) — рекомендуемая замена
- Отличия от CRS v1
- Установка Sub2API
- Antigravity Manager — десктопная альтернатива
- Ключевые отличия
- CLIProxyAPI — обёртка CLI-инструментов
- Особенности
- Выбор решения
- Сравнительная таблица решений
- Практический сценарий: команда из 5 разработчиков
- Задача
- Решение с Sub2API
- Стоимость
- Когда использовать relay
- Заключение
Зачем нужны relay-сервисы
Relay-сервис — прокси между вашими клиентами (Claude Code, Cherry Studio, IDE) и API провайдера (Anthropic, OpenAI, Gemini). Он решает три инфраструктурные задачи:
- Пул аккаунтов — объединение нескольких подписок в единую точку доступа
- Балансировка — автоматическая ротация аккаунтов для обхода rate limits
- Географический доступ — работа из регионов с ограниченной доступностью
Предупреждение: Использование relay-сервисов может нарушать ToS провайдеров. Для легитимного командного доступа Anthropic предлагает корпоративные планы (Claude for Teams / Enterprise). Материал представлен в образовательных целях.
Claude Relay Service (CRS)
GitHub: https://github.com/Wei-Shaw/claude-relay-service
Архитектура
graph TD
CL[Клиент<br/>Claude Code / IDE] -->|Запрос| CRS[CRS-сервер]
subgraph CRS_INNER [CRS-сервер]
AUTH[Аутентификация] --> SCHED[Unified Scheduler]
SCHED --> RL[Rate Limiter]
end
CRS --> POOL
subgraph POOL [Пул аккаунтов]
A1[Аккаунт 1]
A2[Аккаунт 2]
A3[Аккаунт 3]
end
A1 --> UP[Upstream API<br/>Anthropic / OpenAI / Gemini]
A2 --> UP
A3 --> UP
style CL fill:#f8fafc,stroke:#1e293b,stroke-width:2px
style CRS fill:#f8fafc,stroke:#4f46e5,stroke-width:2px
style AUTH fill:#f8fafc,stroke:#64748b,stroke-width:1px
style SCHED fill:#f8fafc,stroke:#64748b,stroke-width:1px
style RL fill:#f8fafc,stroke:#64748b,stroke-width:1px
style A1 fill:#f8fafc,stroke:#059669,stroke-width:1px
style A2 fill:#f8fafc,stroke:#059669,stroke-width:1px
style A3 fill:#f8fafc,stroke:#059669,stroke-width:1px
style UP fill:#f8fafc,stroke:#dc2626,stroke-width:2px
Компоненты
| Компонент | Функция |
|---|---|
| Пул аккаунтов | Несколько Claude/OpenAI/Gemini аккаунтов, добавленных через OAuth |
| Unified Scheduler | Ротация, обход ошибок (503, 5xx), sticky sessions |
| API Key Distribution | Пользовательские ключи с лимитами (RPS, параллельность, модели) |
| Веб-панель | Администрирование через http://server:3000/web |
| Redis | Кэширование, сессии, управление состоянием |
Поддерживаемые провайдеры
Claude (Official/Console), OpenAI (Codex), Gemini, AWS Bedrock, Azure OpenAI, Factory.ai (Antigravity).
Установка
Требования: 1 CPU / 512MB RAM (рекомендуется 2 CPU / 4GB), Node.js 18+, Redis 6+, Linux. Сервер в US-регионе.
Способ 1 — автоматический скрипт (рекомендуемый):
curl -fsSL https://pincc.ai/manage.sh -o manage.sh
chmod +x manage.sh
./manage.sh install
Способ 2 — Docker Compose:
Скрипт автоматически генерирует docker-compose.yml с Redis, health checks и переменными окружения.
Способ 3 — ручная установка:
git clone https://github.com/Wei-Shaw/claude-relay-service.git
cd claude-relay-service
npm install
# Настройте .env
cp .env.example .env
# Отредактируйте REDIS_URL, ENCRYPTION_KEY, JWT_SECRET
npm run setup # Инициализация
npm run service:start:daemon
Настройка после установки
- Войдите в веб-панель (учетные данные в
data/init.json) - Добавьте аккаунты Claude через OAuth (ссылка авторизации -> код -> панель)
- Создайте API-ключи для пользователей с лимитами
- Настройте клиент:
export ANTHROPIC_BASE_URL="http://server-ip:3000/api/"
export ANTHROPIC_AUTH_TOKEN="сгенерированный-ключ"
Безопасность
Критическая уязвимость: Версии v1.1.248 и ниже содержат обход аутентификации администратора. Обновляйтесь до v1.1.249+ или мигрируйте на Sub2API.
Обязательные меры:
- Reverse proxy с SSL (HTTP передаёт токены в открытом виде)
- Сильный ENCRYPTION_KEY для шифрования ключей
- Ограничение типа клиента (можно разрешить только Claude Code)
- Rate limiting на уровне пользовательских ключей
Риски:
- Компрометация сервера = утрата всех аккаунтов
- OAuth-токены могут истекать, требуя повторной авторизации
- Нетипичное использование может привести к бану аккаунтов провайдером
Sub2API (CRS 2.0) — рекомендуемая замена
GitHub: https://github.com/Wei-Shaw/sub2api
Полная переработка CRS от того же автора. Стек: Go + Vue 3 + PostgreSQL (вместо Node.js + Redis).
Отличия от CRS v1
| Критерий | CRS v1 | Sub2API |
|---|---|---|
| Стек | Node.js + Redis | Go + PostgreSQL |
| Биллинг | Нет | Token-level учёт |
| UI | Базовая панель | Vue 3 дашборд |
| Провайдеры | 5+ | Гибридное смешивание |
| Безопасность | Базовая | Улучшенная |
| Статус | Заморожен | Активная разработка |
Установка Sub2API
# Docker-compose (рекомендуемый способ)
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api
cp .env.example .env
# Отредактируйте .env: DATABASE_URL, ADMIN_PASSWORD
docker compose up -d
Antigravity Manager — десктопная альтернатива
GitHub: https://github.com/lbjlaq/Antigravity-Manager
Локальный relay без сервера. Десктопное приложение на Rust (Tauri) + React.
Ключевые отличия
- Работает на вашей машине, не на удалённом сервере
- Поддержка Gemini, Claude, OpenAI
- Мульти-аккаунт с авто-балансировкой по квотам
- Поддержка мультимодальности (изображения, файлы)
- Не требует настройки сервера, Redis, домена
Когда выбрать: Для индивидуального использования или малой команды (2-3 человека), когда не хочется поднимать сервер.
CLIProxyAPI — обёртка CLI-инструментов
GitHub: https://github.com/router-for-me/CLIProxyAPI
Обёртка CLI-инструментов (Gemini CLI, Claude Code, Codex, Qwen) в OpenAI-совместимый API. Стек: Go.
Особенности
- Round-robin балансировка нескольких аккаунтов
- Не требует API-ключей провайдеров (использует OAuth CLI-инструментов)
- OpenAI-совместимый эндпоинт для любых клиентов
- Поддержка: Claude Code, Gemini CLI, Codex CLI, Qwen
Когда выбрать: Если у вас несколько CLI-аккаунтов (например, 3 подписки Gemini) и вы хотите объединить их в один API-эндпоинт.
Выбор решения
flowchart TD
START{Размер команды?} -->|1-2 человека| LOCAL{Нужен сервер?}
START -->|3+ человек| SERVER{Нужен биллинг?}
LOCAL -->|Нет| AM[Antigravity Manager<br/>десктопный relay]
LOCAL -->|Да| CLIP[CLIProxyAPI<br/>CLI-обёртка]
SERVER -->|Да| S2A[Sub2API<br/>Go + PostgreSQL]
SERVER -->|Нет| CRS[CRS v1<br/>Node.js + Redis]
style START fill:#f8fafc,stroke:#4f46e5,stroke-width:2px
style LOCAL fill:#f8fafc,stroke:#4f46e5,stroke-width:2px
style SERVER fill:#f8fafc,stroke:#4f46e5,stroke-width:2px
style AM fill:#f0fdf4,stroke:#059669,stroke-width:2px
style CLIP fill:#f0fdf4,stroke:#059669,stroke-width:2px
style S2A fill:#f0fdf4,stroke:#059669,stroke-width:2px
style CRS fill:#f0fdf4,stroke:#059669,stroke-width:2px
Сравнительная таблица решений
| Критерий | CRS / Sub2API | Antigravity Manager | CLIProxyAPI |
|---|---|---|---|
| Развёртывание | Удалённый сервер | Локальный десктоп | Сервер или локальный |
| Мульти-аккаунт | Да (пул) | Да (локальный пул) | Да (round-robin) |
| Мульти-провайдер | Claude, OpenAI, Gemini | Gemini, Claude | Claude, Gemini, OpenAI, Qwen |
| Веб-панель | Да | Да (встроенная) | Ограниченная |
| Биллинг/квоты | Да (Sub2API) | Мониторинг квот | Нет |
| Приватность | Свой сервер | Локальная машина | Свой сервер |
| Сложность настройки | Средняя | Низкая | Средняя |
Практический сценарий: команда из 5 разработчиков
Задача
5 разработчиков работают с Claude Code. У каждого своя подписка ($20/мес). Хотят объединить аккаунты для лучшей доступности и обхода rate limits.
Решение с Sub2API
# 1. Поднимите Sub2API на сервере (DigitalOcean, Hetzner)
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api && docker compose up -d
# 2. Добавьте 5 аккаунтов через веб-панель
# 3. Создайте 5 пользовательских API-ключей с лимитами
# 4. Каждый разработчик настраивает свой Claude Code:
export ANTHROPIC_BASE_URL="https://relay.yourteam.dev/api/"
export ANTHROPIC_AUTH_TOKEN="personal-key-xxx"
Результат: Если один аккаунт достигает rate limit, запрос автоматически перенаправляется на другой. Простой любого отдельного аккаунта не влияет на работу команды.
Стоимость
- VPS: $5-10/мес (1 CPU, 1GB RAM достаточно для Sub2API)
- Подписки: 5 x $20 = $100/мес (делятся между участниками)
- Итого на человека: ~$21-22/мес
Когда использовать relay
Используйте если:
- Команда из 3+ человек работает с Claude Code
- Нужна высокая доступность (fallback при сбоях)
- Работаете из региона с ограничениями
- Хотите централизованный мониторинг использования
Не используйте если:
- Работаете один с обычными нагрузками
- Корпоративный план Claude for Teams доступен
- Не готовы к рискам нарушения ToS
Заключение
Relay-сервисы — это инфраструктурный паттерн (API gateway + account pooling + load balancing), полезный для понимания архитектуры распределённых систем. Выбор между серверным решением (Sub2API) и десктопным (Antigravity Manager) зависит от размера команды и готовности администрировать сервер.
Для легитимного командного использования всегда рассматривайте официальные корпоративные планы провайдеров в первую очередь.