月省几百刀!飞牛NAS搭建AI网关:订阅秒变通用API

一句话结论:纯本地部署,不花一分钱,零额外 API 成本。把客户端订阅一键转化为标准 OpenAI 接口,全家设备内网直连,凭据 100% 留在自己的 NAS 里。
一、 为什么我要在飞牛 NAS 上折腾这套网关?
上周写代码和改文章时,我又被气笑了。
明明电脑里订阅了带 Pro 配额的 AI 编程客户端(如 Google Antigravity / Claude / Codex),但官方把它死死锁在指定的桌面 IDE 里。只要换到终端敲命令、或者想在手机 Chatbox 里问个问题,它就两手一摊:“对不起,请走按量计费的官方 API”。更让人头疼的是,单账号一遇到高强度任务,5 小时配额瞬间见底,只能干瞪眼等冷却。
手头明明有 24 小时开机的飞牛 NAS,凭什么还要为通用 API 反复掏钱?
折腾了一个周末,我在自家的飞牛 NAS(fnOS)上通过 Docker 部署了 CLI Proxy API (CPA) 与 New API,彻底解决了这个痛点: 1. 订阅转通用 API:把桌面客户端订阅无缝转换成标准的 /v1/chat/completions 接口; 2. 双号自动轮询:两个账号自动负载均衡、自动刷新 OAuth 续期,配额翻倍不断流; 3. 全屋设备共享:局域网内的 Mac 终端、Windows 主机、手机端软件直接调用 NAS 的统一接口。
方案对比 传统按量付费 API 单机客户端直接使用 飞牛 NAS (CPA + New API) 方案 每月额外开销 动辄几十~上百美金 无额外开销 0 元(直接复用已有客户端订阅) 可用软件范围 任意支持 OpenAI 接口软件 仅限官方绑定的单一 IDE 全平台通用(Cursor / 终端 / 手机) 配额上限与防封 按 Token 扣费无上限 单号 5 小时限额易见底 多账号自动轮询 + 30分钟自动续期 局域网共享 需每台设备单独配 Key 无法跨设备共享 NAS 统一分发,全屋设备即插即用
二、 整体调用架构与核心组件

整套架构在飞牛 NAS 内部由两个超轻量 Docker 容器组成:
服务组件 典型访问路径 核心职责说明 飞牛 NAS 宿主机 ssh <用户名>@192.168.0.116 底层 Debian Linux x86_64 宿主,7×24小时在线 CPAMC 管理控制台 http://192.168.0.116:8317/management.html 负责 OAuth 账号登录、凭据热加载与配额监控 CPA 内部转换接口 http://192.168.0.116:8317/v1 将客户端协议转换为 OpenAI 协议,供 New API 调用 New API 聚合网关 http://192.168.0.116:3000/v1 渠道聚合、模型重命名映射、向下游颁发统一无限令牌
三、 飞牛 OS 环境前置准备(两项必做避坑)
在正式拉起容器前,有两个飞牛 OS 系统级细节必须提前打通:
1. 配置 Docker 守护进程代理(解决拉取镜像超时)
如果你的网络拉取 Docker 镜像超时,可在局域网代理机开启「允许局域网连接(Allow LAN)」(假设代理机 IP 为 192.168.0.102,端口 7897),然后在飞牛 NAS 终端执行:
sudo tee /etc/docker/daemon.json << 'EOF'
{
"data-root": "/vol1/docker",
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-file": "5",
"max-size": "100m"
},
"proxies": {
"http-proxy": "http://192.168.0.102:7897",
"https-proxy": "http://192.168.0.102:7897",
"no-proxy": "127.0.0.1,localhost,::1"
}
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker
2. 开启 SSH 端口转发权限(90% 的人卡在这里!)
飞牛 OS 默认在 /etc/ssh/sshd_config.d/trim_sshd.conf 中设置了 AllowTcpForwarding no。如果不改,后续用 SSH 隧道打通 OAuth 登录回调时,浏览器会直接报错 ERR_CONNECTION_RESET。
执行以下命令一键开启并热重载:
sudo sed -i 's/AllowTcpForwarding no/AllowTcpForwarding yes/' /etc/ssh/sshd_config.d/trim_sshd.conf
sudo systemctl reload ssh
四、 部署 CLI Proxy API (CPA 核心服务)
1. 创建工作目录与 config.yaml
mkdir -p /vol1/1000/Docker/cliproxyapi/{auth,plugins}
cd /vol1/1000/Docker/cliproxyapi
新建 config.yaml:
config-version: 8
server:
host: ""
port: 8317
management:
allow-remote: true
secret-key: "Your_Secure_Password"
disable-control-panel: false
access:
api-keys:
- "sk-cpa-internal-secret-key"
requests:
proxy-url: "http://192.168.0.102:7897"
2. 编写 docker-compose.yml(必须用 Host 网络模式)
services:
cliproxyapi:
image: eceasy/cli-proxy-api:latest
container_name: cliproxyapi
restart: unless-stopped
network_mode: "host"
environment:
- HTTP_PROXY=http://192.168.0.102:7897
- HTTPS_PROXY=http://192.168.0.102:7897
- NO_PROXY=127.0.0.1,localhost,::1
volumes:
- ./config.yaml:/CLIProxyAPI/config.yaml
- ./auth:/root/.cli-proxy-api
- ./plugins:/CLIProxyAPI/plugins
为什么要用 Host 模式? 因为 OAuth 授权时容器会临时动态监听特定回调端口(如
51121),Host 模式让容器直接共享 NAS 网络栈,省去繁琐的动态端口映射。
执行启动:
docker compose pull && docker compose up -d
五、 账号纳管:双流派实战指南
流派一:标准 SSH 隧道 + 浏览器授权
在本地电脑终端建立一条指向飞牛 NAS 的本地端口转发隧道:
ssh -N -L 51121:127.0.0.1:51121 -L 8317:127.0.0.1:8317 <用户名>@192.168.0.116
随后在浏览器打开 http://192.168.0.116:8317/management.html,点击 「OAuth 登录」 完成授权。若要实现双号轮询,只需再次点击并在账号页选择“使用其他账号”登录第二个号,CPA 会自动将多个凭据纳入负载均衡池。
流派二:极客免密热迁移(直接提取本机活跃凭据)
如果你早已在本地电脑登录过客户端,不想再输密码走网页验证,可以直接把本地系统凭据库(Windows 凭据管理器 gemini:antigravity 或 macOS Keychain)中的 access_token 与 refresh_token 导出为 JSON,放入 NAS 的 /vol1/1000/Docker/cliproxyapi/auth/ 目录下。
CPA 容器内部通过 fsnotify 实时监听该目录,文件写入后1 秒内自动热加载并开启每 30 分钟自动续期。

上图为 NAS 实机部署后的 CPAMC 控制台状态:成功纳管多个 Pro 账号,双号自动轮询负载均衡,请求成功率 100%,实时监控 5 小时与每周配额,彻底告别单号限额焦虑。
六、 接入 New API:统一模型映射与全屋分发
为了让所有下游软件无缝调用,我们在飞牛 NAS 上再部署一个 New API(端口 3000):
拉起容器:使用官方镜像
calciumion/new-api:latest,映射端口3000:3000。配置上游渠道:
登录
http://192.168.0.116:3000,进入「渠道」->「添加渠道」;类型选择
OpenAI,代理地址填http://127.0.0.1:8317;密钥填入前面
config.yaml设置的sk-cpa-internal-secret-key;配置「模型重定向」,将上游模型名映射为自己习惯的标准名。
生成通用令牌:在「令牌」菜单新建一个无限额度的 Key(
sk-xxx)。

上图为 New API 渠道配置实测:
#1 NAS-CPA-Antigravity渠道连通性测试通过,内网响应延迟低至 1.74 秒,聚合后可稳定分发。
至此,你的私有 AI 网关就大功告成了!无论是在 Mac 终端跑 Pi Agent、在 Cursor 里写代码,还是在手机上用 Chatbox,只需填入 http://192.168.0.116:3000/v1 和这枚令牌,就能流畅白嫖双号轮询的旗舰算力。
📌 部署命令和配置文件较多,建议先点个「收藏」,等周末折腾 NAS 时翻出来对照着抄作业。 如果你在拉取镜像、SSH 转发或凭据配置时遇到报错,直接在评论区留言你的具体环境,看到都会回。
相关开源项目: - CLI Proxy API:github.com/eceasy/cli-proxy-api - New API 聚合网关:github.com/Calcium-Ion/new-api
