· Jeff · 教程 · 9 分钟阅读
用 New API 搭建 API 中转站:密钥安全分发与变现完整指南
从公益共享到小商业分发,用 New API(one-api 社区增强版)搭建自己的 API 中转平台。原始 Key 锁后台、子令牌分发,额度可控、权限可管、用量可追溯,附 Docker 部署五步走、安全加固清单与套餐定价参考。
用 New API 搭建 API 中转站:密钥安全分发与变现完整指南
你有没有过这样的场景:搞到一个不错的模型 API Key,想分享给朋友、同事,或者干脆做一个小生意,把额度分发出去——但直接发 Key 是灾难:别人拿着你的原始 Key,能看额度、能到处转发、甚至能刷爆你的账单。
New API 就是为解决这个问题而生的:它是开源 API 网关 one-api 的社区增强版,GitHub 30K+ stars,核心思路一句话——原始 Key 锁后台,子令牌分发,额度可控、权限可管、用量可追溯。
这篇文章从部署到变现给你完整走一遍。
适用:个人 / 公益共享 / 小站点运营 | 更新:2026-08-25
一、为什么不能直接发 Key
| 对比 | 直接发 Key | New API 中转 |
|---|---|---|
| 密钥安全 | 原始 Key 公开,无法收回 | 原始 Key 锁在后台,只发子令牌 |
| 额度控制 | 无法限制 | 每人精确额度,用完自动停 |
| 有效期 | 靠自觉回收 | 精确到秒,到点失效 |
| 滥用止损 | 发现也无法中途停 | 后台点一下吊销,零延迟 |
| 用量追溯 | 不知道谁用了多少 | 全量记录每次调用、模型、消耗 |
| 多资源整合 | 发一堆 Key | 统一入口,一个令牌调用所有 |
简单说:直接发 Key 是把保险箱钥匙给别人,中转是给每个人一张限额的购物卡。
二、选型:New API 还是 LiteLLM
| 场景 | 推荐 | 理由 |
|---|---|---|
| 个人 / 公益共享 / 小站点运营 | New API | 自带 Web 管理面板、额度/令牌管理开箱即用 |
| 企业高并发 / 复杂路由 | LiteLLM | 更偏基础设施,路由策略强大但上手门槛高 |
如果你的目标是「分给几十上百人用 + 看得见谁用了多少」,New API 是成本最低的选择。
三、部署五步走
第 1 步:环境准备
- 一台云服务器:2C2G 起步(建议 2C4G),Linux(Ubuntu/Debian/CentOS 均可)
- 安装 Docker(≥ 20.10)与 Docker Compose
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker第 2 步:docker-compose.yml
New API 官方推荐 MySQL 8.0 + Redis 7 + New API 三件套。下面是最小可用配置:
services:
mysql:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: 改成强密码
MYSQL_DATABASE: new_api
volumes:
- mysql_data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
redis:
image: redis:7
restart: always
volumes:
- redis_data:/data
new-api:
image: calciumion/new-api:latest
restart: always
depends_on:
- mysql
- redis
ports:
- "3000:3000"
environment:
SQL_DSN: root:改成强密码@tcp(mysql:3306)/new_api
REDIS_CONN_STRING: redis://redis:6379
SESSION_SECRET: 用 openssl rand -hex 16 生成
CRYPTO_SECRET: 用 openssl rand -hex 16 生成
volumes:
- new_api_data:/data
volumes:
mysql_data:
redis_data:
new_api_data:三个必须改的地方:
MYSQL_ROOT_PASSWORD和SQL_DSN里的密码——改成你的强密码(两处一致)SESSION_SECRET——会话签名密钥CRYPTO_SECRET——令牌加密密钥
后两个用一条命令生成即可:
openssl rand -hex 16启动:
docker compose up -d
docker compose logs -f new-api # 看到监听 3000 即成功第 3 步:初始化
浏览器访问 http://你的IP:3000:
- 注册并设置管理员账号
- 模式选择**「自用模式」**(公益共享也选这个,不要开放注册)
- 在「令牌」页创建子令牌,设置额度与有效期
第 4 步:HTTPS + 反代(必须做)
直接裸奔 3000 端口等于把管理员后台暴露给全网。用 Nginx + Certbot 反代:
server {
listen 443 ssl;
server_name api.你的域名.com;
ssl_certificate /etc/letsencrypt/live/api.你的域名.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.你的域名.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 80;
server_name api.你的域名.com;
return 301 https://$host$request_uri;
}证书签发:
certbot --nginx -d api.你的域名.com关键安全动作:安全组/防火墙关闭 3000 端口,只留 80/443。这样别人只能走 HTTPS 域名访问,摸不到原始端口。
第 5 步:对外分享
只给两样东西,永远不要给后台地址和管理员账号:
- 接口地址:
https://api.你的域名.com/v1 - 子令牌:
sk-xxxxx
用户在任意 OpenAI 兼容客户端里填这两个就能用,跟官方 API 完全兼容。
四、安全加固 Checklist
| 等级 | 项目 |
|---|---|
| 🔴 必须 | 关闭 3000 端口,仅留 80/443 |
| 🔴 必须 | 全站 HTTPS(Certbot 免费证书) |
| 🔴 必须 | 修改默认管理员密码、关闭开放注册 |
| 🟡 建议 | 管理员账号启用 2FA |
| 🟡 建议 | 改 SSH 端口、禁止 root 密码登录 |
| 🟡 建议 | 数据库定期备份(mysqldump + 定时任务) |
| 🟡 建议 | 每个用户单独建令牌,不用一个令牌通吃 |
⚠️ 红线:子令牌只对用户展示一次,后台不存明文;用户跑路/滥用,后台吊销对应令牌即可,原始 Key 全程不落地。
五、小商业套餐参考(2024 年末行情)
如果打算做小生意,常见定价:
| 套餐 | 月费 | 目标客户 |
|---|---|---|
| 体验版 | ¥15-20 | 轻度个人用户 |
| 标准版 | ¥30-50 | 日常高频使用者 |
| 畅享版 | ¥80-120 | 重度开发调用 |
成本侧:月运维成本约 ¥55-80/月(云服务器 ¥50-70 + 域名摊销 ¥3-5)。也就是说,拉到 2-3 个标准版用户即可回本,之后就是纯利。
建议:先公益跑 1-2 个月攒口碑,再逐步转付费;定价参考官方渠道价差的 50%-70% 更有竞争力。
六、常见问题
New API 和 one-api 有什么区别?
one-api 是上游,New API 是社区增强版,持续跟进新模型、修复更快,中文文档和社区更活跃。新项目直接用 New API。
用户报错 401 / 余额不足?
去后台「日志」页查该令牌的实际调用记录——多半是额度用尽或过期,后台续期即可。
想加新模型源?
后台「渠道」页添加上游渠道(DeepSeek / OpenAI / 各家中转),填原始 Key,之后所有子令牌自动可用,无需重新分发。
会不会有法律风险?
中转本身是中性技术。做公益共享没问题;商业化务必:只转自己有合法使用权的渠道、不碰违规内容、按用户实名/协议留痕,参照国内 IDC 与内容合规要求。
总结
New API 的价值一句话:把「发 Key」变成「发令牌」——原始 Key 永远锁在后台,对外只暴露额度可控、可吊销、可追溯的子令牌。
部署五步走回顾:环境 → docker-compose(三件套)→ 初始化选自用模式 → HTTPS 反代 + 关 3000 → 只发接口地址 + 子令牌。
如果你正好有闲置的模型 Key 或者一台小服务器,这套方案是成本最低的「共享 → 变现」路径。也欢迎看看站内其他文章:
☕ 如果这篇文章对你有帮助
欢迎请 Jeff 喝杯咖啡,支持我持续分享更多软件技巧~
打赏功能即将上线,先点个赞也是支持 ❤️