API 中转站 — 技术底座与商业逻辑 / API Relay Services, Technical Foundations, and Business Logic
📅 创建时间:2026-05-19 🏷️ 标签:#中转站 #API #One-API #New-API #Relay 📚 前置知识:[[00-ai-channel-overview]]
📋 本章目标
- 理解 API 中转站解决的核心问题与适用人群
- 掌握 One-API / New-API 的技术架构原理
- 能够独立部署一套最小可用的中转服务
- 理解中转站的利润来源与商业可持续性
- 识别 IP 封禁的触发条件并掌握防封策略
第1部分:什么是 API 中转站?
1.1 解决的核心问题
API 中转站本质上是协议转换 + 请求转发的中间层,解决国内用户访问海外 AI API 的三大障碍:
┌─────────────────────────────────────────────────────────────────────────────┐
│ 中转站解决的三重障碍 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 问题一:支付问题 │
│ 官方 OpenAI API 仅支持 Visa/MasterCard,国内信用卡无法直接充值 │
│ → 中转站用自有海外账户充值,用户人民币付款 │
│ │
│ 问题二:访问限制 │
│ OpenAI API 对部分 IP 有限制,国内直连可能被限速或阻断 │
│ → 中转站服务器部署在海外,走专用代理线路 │
│ │
│ 问题三:接口不统一 │
│ OpenAI / Claude / Gemini 各有不同的 API 格式 │
│ → 中转站统一转换为 OpenAI 兼容格式,代码零改动切换模型 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘1.2 适用人群
| 用户类型 | 使用场景 | 中转站的优势 |
|---|---|---|
| 个人开发者 | 调用 GPT-4 / Claude API 做应用开发 | 人民币充值,无需信用卡 |
| 小微企业 | 内部 AI 工具,团队共用 | 统一额度管理,成本可控 |
| AI 应用创业者 | SaaS 产品接入多模型 | 多模型聚合,一站式解决 |
| 技术爱好者 | 学习和测试不同模型 | 低成本试用,按量计费 |
第2部分:技术架构详解
2.1 整体架构图
┌─────────────────────────────────────────────────────────────────────────────┐
│ API 中转站完整架构图 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 用户应用 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Claude Desktop / Cherry Studio / 你的代码 │ │
│ │ (使用 OpenAI 兼容格式,baseURL 指向中转站) │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ One-API 网关 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 端口 3000 │ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ │ 认证模块 │ │ 限流模块 │ │ 渠道管理 │ │ 计费模块 │ │ │
│ │ │ Token │ │ Redis │ │ 模型路由 │ │ 余额记录 │ │ │
│ │ │ 验证 │ │ QPS 限制 │ │ 负载均衡 │ │ 用量统计 │ │ │
│ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 海外代理层 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 代理池(HTTP/SOCKS5) — 多个 IP 轮询,防止单点封禁 │ │
│ │ 独享带宽服务器 — 香港/日本/美国节点 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 上游 AI 厂商 │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────┐ │
│ │ OpenAI │ │ Anthropic │ │ Google │ │ DeepSeek │ │
│ │ (GPT-4/4o) │ │ (Claude) │ │ (Gemini) │ │ (国产) │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ └───────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘2.2 One-API 工作原理
One-API 是整个中转站的核心,它充当"智能适配器"的角色:
┌─────────────────────────────────────────────────────────────────────────────┐
│ One-API 核心工作流程 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Step 1:接收请求 │
│ 用户 POST /v1/chat/completions │
│ { │
│ "model": "claude-3-5-sonnet", ← 映射到 Anthropic │
│ "messages": [...], │
│ "api_key": "sk-xxx" ← 中转站 Token,不是官方 Key │
│ } │
│ │
│ Step 2:Token 验证 │
│ 验证 Token 有效性 → 检查余额 → 检查限流 → 记录用量 │
│ │
│ Step 3:模型路由 │
│ 根据 model 名称匹配上游渠道: │
│ "claude-3-5-sonnet" → Anthropic 渠道 │
│ "gpt-4o" → OpenAI 渠道 │
│ "gemini-1.5-pro" → Google 渠道 │
│ │
│ Step 4:协议转换 │
│ 将 OpenAI 格式请求 → 转换为目标厂商格式 → 发送至真实 API │
│ │
│ Step 5:响应回传 │
│ 真实 API 响应 → One-API 转换为 OpenAI 格式 → 返回给用户 │
│ (流式响应和非流式响应均支持) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘2.3 One-API vs New-API 核心对比
| 对比维度 | One-API | New-API |
|---|---|---|
| 定位 | 轻量 API 网关 | 企业级管理平台 |
| 多模型支持 | 纯 LLM(OpenAI 格式) | LLM + 多模态(Midjourney、VLM) |
| 权限管理 | 基础 Token | RBAC 角色 + 组织管理 |
| 支付集成 | 无 | 支付宝 / 微信支付在线购买 |
| 监控面板 | 基础统计 | 实时仪表盘 + 日志审计 |
| UI 界面 | 经典简洁 | 美化优化 |
| 部署难度 | 极简(SQLite 即可) | 简单(推荐 MySQL + Redis) |
| 适合规模 | 个人 / 小团队 | 中小型商业运营 |
第3部分:部署实战
3.1 服务器准备
最低配置推荐:
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 1 核 | 2 核+ |
| 内存 | 1 GB | 2 GB+ |
| 带宽 | 1 Mbps | 5 Mbps+ |
| 地区 | 海外(香港/日本/美国) | 香港或日本(延迟低) |
| 系统 | Ubuntu 22.04 / Debian | Ubuntu 22.04 |
⚠️ 关键点:服务器必须位于海外(OpenAI/Claude 支持的地区),且网络能稳定访问 AI 厂商 API。
3.2 Docker 快速部署
One-API 极简版(SQLite):
bash
# 拉取镜像
docker pull justsong/one-api
# 启动容器(SQLite 版,适合个人/测试)
docker run -d --name one-api \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /data/one-api:/data \
--restart always \
justsong/one-apiNew-API 生产版(MySQL + Redis):
bash
# 创建目录
mkdir -p /opt/new-api && cd /opt/new-api
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
- DB_URL=mysql://user:password@mysql:3306/newapi
- REDIS_URL=redis://redis:6379/0
volumes:
- ./data:/data
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
container_name: new-api-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: newapi
volumes:
- ./mysql:/var/lib/mysql
redis:
image: redis:7-alpine
container_name: new-api-redis
restart: always
volumes:
- ./redis:/data
EOF
# 启动
docker-compose up -d部署完成后:
- 访问
http://你的服务器IP:3000 - 默认管理员账号:
root - 默认密码:
123456 - ⚠️ 首次登录后立即修改密码
3.3 Nginx HTTPS 反向代理(生产环境)
nginx
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
client_max_body_size 10M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 支持 WebSocket(流式响应必需)
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_buffering off;
proxy_read_timeout 300s;
}
}3.4 渠道配置流程
┌─────────────────────────────────────────────────────────────────────────────┐
│ One-API / New-API 渠道配置步骤 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Step 1:登录管理后台 │
│ 访问 http://你的IP:3000 ,使用 root/123456 登录 │
│ │
│ Step 2:添加上游渠道 │
│ 渠道管理 → 添加渠道 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 渠道类型: [OpenAI ▼] │ │
│ │ 名称: [My-OpenAI-Key] │ │
│ │ API Key: [sk-...] ← 填写官方 API Key │ │
│ │ 模型列表: [gpt-4o,gpt-4,gpt-3.5-turbo] │ │
│ │ 代理: [http://proxy:port] ← 海外代理(可选) │ │
│ │ 权重: [1] │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ Step 3:创建分发 Token │
│ 令牌管理 → 创建令牌 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 名称: [我的应用] │ │
│ │ 额度: [100000] ← 单位:颗(积分制) │ │
│ │ 过期时间: [2025-12-31] │ │
│ │ 额度用完处理: [禁止使用] │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ → 生成 Token:sk-xxx-xxx-xxx (妥善保存) │
│ │
│ Step 4:客户端配置调用 │
│ 将官方 API 的 baseURL 替换为你的中转站地址: │
│ │
└─────────────────────────────────────────────────────────────────────────────┘3.5 客户端调用示例
Python 调用:
python
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx-xxx-xxx", # ← 中转站 Token
base_url="http://你的服务器IP:3000/v1" # ← 中转站地址
)
# 兼容 OpenAI 格式调用,无需修改任何代码
response = client.chat.completions.create(
model="gpt-4o", # ← 支持 OpenAI 模型名
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)Claude Desktop 配置(通过 New-API 兼容 OpenAI 格式):
json
{
"mcpServers": {
"claude-code": {
"command": "npx",
"args": ["-y", "@anthropic-ai/claude-code"],
"env": {
"ANTHROPIC_BASE_URL": "http://你的服务器IP:3000/v1",
"ANTHROPIC_API_KEY": "sk-xxx-xxx-xxx"
}
}
}
}第4部分:代理层配置
4.1 为什么需要代理
中转站的服务器虽然部署在海外,但如果服务器 IP 被 OpenAI/Claude 识别为数据中心 IP 或可疑 IP,仍可能被限速或封禁。代理的作用是:
- IP 多样化:多个代理 IP 轮询使用,降低单 IP 请求密度
- IP 信誉:住宅代理 IP 比数据中心 IP 更不易被风控
- 地区覆盖:不同地区的代理可用于访问对应地区的 AI 服务
4.2 代理类型对比
| 类型 | 优点 | 缺点 | 价格 | 适用场景 |
|---|---|---|---|---|
| 住宅代理 | IP 信誉高,不易被封 | 贵 | $8-15/GB | 生产环境,必选 |
| 数据中心代理 | 便宜,速度快 | IP 信誉差,易被识别 | $2-5/GB | 测试/小规模 |
| 4G 移动代理 | 真人行为特征,难被识别 | 极贵,IP 少 | $50-200/月 | 高风险操作 |
| VPN / 翻墙线路 | 简单 | IP 固定,易被标记 | $5-20/月 | 个人使用 |
4.3 代理配置示例
在 One-API 渠道配置中填写代理地址:
bash
# 住宅代理格式(HTTP)
http://username:password@gateway.luminati.io:22225
# SOCKS5 格式
socks5://username:password@proxy.example.com:1080或者通过环境变量全局配置:
bash
# 在 Docker 启动时设置全局代理
docker run -d --name one-api \
-p 3000:3000 \
-e HTTP_PROXY=http://proxy:port \
-e HTTPS_PROXY=http://proxy:port \
-v /data/one-api:/data \
--restart always \
justsong/one-api第5部分:利润来源分析
5.1 商业模型
┌─────────────────────────────────────────────────────────────────────────────┐
│ 中转站利润来源拆解 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 💰 收入来源一:汇率差 │
│ 官方 OpenAI API $20 ≈ ¥145(汇率 7.25) │
│ 用户充值 ¥1 = 100 积分 ≈ $0.138 │
│ 实际给用户折算 $0.12-0.13,净赚 5-10% 汇率差 │
│ │
│ 💰 收入来源二:服务费抽成 │
│ 官方 $20/月 → 用户实付 ¥158-180/月 │
│ 服务费溢价约 ¥8-35/月/账号 │
│ │
│ 💰 收入来源三:API 调用差价 │
│ 官方 GPT-4 $0.03/千token → 中转站售 ¥0.15-0.30/千token │
│ 差价约 5-10 倍(主要用于覆盖代理和运营成本) │
│ │
│ 💰 收入来源四:额度销售(New-API 支持在线支付) │
│ 用户支付宝/微信充值 → 平台自动发放积分 │
│ 无需人工干预,可规模化运营 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘5.2 定价参考
| 模型 | 官方价格 | 中转站常见定价 | 加价倍数 |
|---|---|---|---|
| GPT-4o | $0.005/1K in | ¥0.03-0.08/1K | 4-8x |
| GPT-4 | $0.03/1K in | ¥0.15-0.30/1K | 4-6x |
| GPT-3.5 | $0.0015/1K in | ¥0.008-0.02/1K | 4-8x |
| Claude 3.5 Sonnet | $0.003/1K in | ¥0.02-0.05/1K | 4-8x |
| Gemini 1.5 Pro | $0.00125/1K in | ¥0.008-0.015/1K | 4-8x |
第6部分:封禁风险与防封策略
6.1 最容易触发封禁的原因
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🔴 常见封禁原因分析 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 🔴 IP 被 OpenAI 标记 │
│ · 数据中心 IP(VPS/云服务器 IP 段)容易被识别 │
│ · 同一 IP 大量请求,触发速率限制 │
│ · 代理 IP 被 OpenAI 列入黑名单 │
│ │
│ 🔴 请求模式异常 │
│ · 高并发请求(远超人类打字速度) │
│ · 24/7 不间断请求(无正常休眠期) │
│ · 请求间隔过于规律(机器人特征) │
│ │
│ 🔴 Key 被滥用 │
│ · 公开泄露的 Token 被他人大量使用 │
│ · 触发官方用量异常告警 │
│ │
│ 🔴 信用卡/支付问题 │
│ · 绑定的信用卡被拒付(Chargeback) │
│ · 预付费卡余额耗尽导致欠费 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘6.2 防封策略
| 策略 | 实施方法 | 优先级 |
|---|---|---|
| 住宅代理 | 使用 Luminati / Oxylabs 住宅代理池 | ⭐⭐⭐ 必须 |
| 请求限速 | 在 Nginx / 应用层设置 QPS 上限 | ⭐⭐⭐ 必须 |
| IP 轮询 | 多个代理 IP 轮询使用,不集中在一个 IP | ⭐⭐ 重要 |
| 请求随机化 | 添加随机延迟(0.5-3s),模拟人类行为 | ⭐⭐ 重要 |
| 多账号分散 | 申请多个官方 API Key,分散请求量 | ⭐⭐ 重要 |
| Key 安全 | Token 仅服务端使用,不暴露在前端 | ⭐ 必须 |
| 监控告警 | 设置用量异常告警,第一时间发现封禁 | ⭐ 建议 |
6.3 Redis 限流配置
bash
# 在 docker-compose.yml 中配置 Redis 限流
environment:
- REDIS_URL=redis://redis:6379/0
- RATE_LIMIT_ENABLED=true
- RATE_LIMIT_REQUESTS=100 # 每分钟最大请求数
- RATE_LIMIT_TOKENS=10000 # 每分钟最大 Token 数第7部分:常见问题
Q1:国内可以直接访问 OpenAI API 吗?
技术上可以,但存在以下问题:
- OpenAI 对部分地区的 IP 限速或阻断
- 网络不稳定,延迟高(300-800ms)
- 无人民币支付渠道
建议:有海外服务器和代理能力的使用中转站;无技术能力的直接使用官方 API(需要信用卡)。
Q2:One-API 和 New-API 哪个更适合我?
- 个人学习 / 小规模使用:One-API SQLite 版足够
- 商业运营 / 多用户:New-API + MySQL + 支付集成
Q3:代理费用大概多少?
以每月 100 万 Token 调用量估算:
- 代理成本:$10-30/月(约 ¥70-200/月)
- 如果纯做转发利润空间有限,需靠规模化和高定价取胜
Q4:中转站会被查封吗?
存在以下风险:
- 代理节点被识别 → 换节点
- 官方 Key 被封 → 申请新 Key(但信用卡可能被标记)
- 政策监管 → 这是最大的不确定因素
🎯 学习目标检验
完成本章学习后,你应该能够:
- [ ] 画出 API 中转站的完整技术架构图(用户 → 网关 → 代理 → 厂商)
- [ ] 说出 One-API 的 5 个核心模块及其作用
- [ ] 独立完成 One-API 的 Docker 部署(SQLite 版)
- [ ] 配置至少一个上游渠道(OpenAI 或 Claude)
- [ ] 生成 Token 并用 Python 代码成功调用
- [ ] 解释中转站的 3 种主要利润来源
- [ ] 列举 5 种以上可能导致封禁的原因
- [ ] 制定至少 3 条针对自己使用场景的防封策略
🚀 下一步
下一步:阅读 02 - Plus 共享账号(拼车)
相关笔记
- [[00 - AI 渠道生态总览]] - 五大类型的全景对比
- [[02 - Plus 共享账号]] - 终端用户的另一种获取方式
- [[04 - 批量注册]] - 中转站上游的账号来源
学习状态:🟡 开始学习