N1飞牛NAS部署New-API:把本地Ollama模型变成随时调用的公网接口

0 阅读

折腾动机

手里捏着好几个AI API的人不在少数。DeepSeek一个、通义千问一个、本地还跑着Ollama,每次在不同应用里来回切、反复配密钥,光是管理就已经够烦的了。更现实的问题是:本地跑的大模型,算力再好也只能在家里用,离开路由器就断了,想分享给朋友更是天方夜谭。

New-API就是来解决这个的。它本质上是一个大模型API聚合网关,把各种渠道(云端API + 本地Ollama)统一接管过来,转换成标准OpenAI格式吐给下游应用。自带可视化后台,Token管理、额度限制、调用日志、渠道轮询全在一起,不用再对着散落的接口地址发愁。

这篇文章的目标很明确:用N1飞牛NAS,在五分钟内搭起一套可用的New-API中转站,然后把本地Ollama接进去,最后通过cpolar穿透到公网,让你人在公司也能调用家里的模型。

New-API能做什么

New-API基于One API升级而来,核心功能可以概括为四点:

异构接口自动转换。原生支持将数十种不同格式的大模型API乃至本地运行的Ollama服务,无缝转换成标准的OpenAI接口格式。下游应用零门槛接入,不用改代码。

精细化权限与额度管控。内置可视化管理面板,支持多用户账户隔离。你可以针对每个发出去的Token令牌设定精确的调用额度、并发频率限制及请求有效期,实现算力安全跨网分享。

高可用智能路由调度。允许将多个免费或付费API整合进统一的模型通道池,系统支持按权重动态轮询及故障自动重试,有效规避单点失效。

全透明数字资产监控。配备图表看板,从每一个模型、每一次请求到每一个用户的Token消耗量与延时表现均被记录,资金消耗透明可查。

环境准备与Docker部署

本期教程的折腾主力是N1盒子。为了榨干它的剩余价值,我提前在N1上刷入了ARM版本的飞牛NAS系统。接下来直接利用飞牛自带的Docker环境部署New-API。

首先打开飞牛NAS桌面,点击【Docker】图标,进入后确保【Docker服务】处于开启状态。然后进入【系统设置】,选择【SSH】,将其启用。

电脑按下【Win + X】键,选择【终端(管理员)】打开PowerShell窗口。在终端输入SSH命令远程连接飞牛NAS:

ssh n1@192.168.50.228

连接成功后,执行命令切换至root用户(输入密码时不会显示):

sudo -i

然后执行以下命令,下载一键部署脚本:

curl -L https://gitee.com/jun-wan/script/raw/master/new_api_deploy/deploy_sqlite.sh -o deploy_sqlite.sh && ls

下载完成后,授权并执行脚本:

chmod +x deploy_sqlite.sh && bash deploy_sqlite.sh

执行后会询问选择安装位置。如果外接了扩展硬盘,会有扩展存储选项。这里选择【2】,安装在外置硬盘上,然后回车。

部署完成后,在浏览器中访问测试。成功访问到页面,Docker一键部署的New-API就搞定了。

初始化配置

部署好项目后,访问New-API默认需要进行初始化。在数据库检查页面选择【下一步】,接着创建管理员账号和密码,创建完成后继续点击【下一步】。

来到使用模式部分,根据需要的运行模式进行选择。这里选择【自用模式】,然后继续进行【下一步】。点击【初始化系统】完成初始化。

如果默认没有登录,点击右上角【登录】按钮,输入刚才初始化的管理员账号密码即可进入后台。

本地Ollama安装与测试

网关搭好了,但还需要一个本地AI大模型作为"主力输出"。接下来在Windows电脑上从零安装Ollama,并以通义千问的小参数模型qwen3.5:0.8b为例进行测试。

安装Ollama程序

重新打开一个PowerShell终端,执行以下命令一键安装Ollama:

irm https://ollama.com/install.ps1 | iex

安装完成后,输入以下命令查看Ollama版本信息确认已安装:

ollama --version

下载并运行模型

在Ollama官网搜索想要使用的模型。以qwen3.5:0.8b为例,它体积较小(约1G),适合测试。回到终端执行以下命令下载并运行:

ollama run qwen3.5:0.8b

进行对话测试,输入"你好",观察响应速度。测试成功后,输入以下命令退出对话:

/bye

测试Ollama的API服务

Ollama支持标准的OpenAI兼容格式(/v1/chat/completions),端口默认为11434。在PowerShell终端执行以下命令测试:

Invoke-RestMethod -Method Post -Uri "http://localhost:11434/v1/chat/completions" -ContentType "application/json" -Body '{"model": "qwen3.5:0.8b", "messages": [{"role": "user", "content": "hi"}], "stream": false}'

如果在CMD终端,则执行:

curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d "{\"model\": \"qwen3.5:0.8b\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}], \"stream\": false}"

测试成功,Ollama的API服务运行正常。

在New-API中配置Ollama渠道

登录New-API后台,点击左侧菜单栏的【渠道管理】,然后点击【添加渠道】。

在弹出的侧边栏配置中,类型选择【Ollama】,名称自定义,密钥随机输入一个(Ollama默认不需要密钥连接)。API地址部分填写当前Windows的局域网IP地址,如果不知道可以在终端执行以下命令获取:

ipconfig | findstr "IPv4"

在模型部分,点击【获取模型列表】按钮。如果配置正确,会弹出选择模型的窗口,选择刚才下载的qwen3.5:0.8b,然后确定添加。添加完成后,点击底部的【提交】按钮。

提交后,点击测试按钮或展开按钮进行测试。出现测试成功的提示,代表模型已成功接入。

如果有多台本地AI服务器,都可以按同样方式接入。配置完成后,在模型广场可以看到所有本地AI服务器部署的模型。

创建令牌进行测试

点击左侧菜单栏的【令牌管理】,然后点击【添加令牌】。在弹出的侧边配置区域填写相关信息,点击提交。创建成功后,点击复制令牌。

通过N1部署的New-API就可以访问了。在CMD中测试(注意修改令牌为自己的):

curl http://192.168.50.228:3000/v1/chat/completions ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer sk-MbmNWNXhaGrNlZRe6r1ZxEOoROiE5HpIfU6zL8353FJ4msZO" ^
-d "{\"model\": \"qwen3.5:0.8b\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}], \"stream\": false}"

访问成功。这样就把局域网里的Ollama模型,包装成了带密钥鉴权、标准OpenAI格式的云端接口。

内网穿透实现公网访问

目前接口只能在局域网内调用。如果想在外面随时随地使用,或者把Token发给异地朋友,需要内网穿透。

安装cpolar

回到PowerShell终端窗口,执行以下命令一键安装:

sudo curl https://get.cpolar.sh | sh

安装完成后,执行以下命令查看cpolar服务状态:

sudo systemctl status cpolar

注册及登录cpolar Web UI

访问cpolar官网,点击【免费注册】按钮进行账号注册。注册完成后,在浏览器中输入飞牛NAS的IP地址加9200端口访问Web UI管理界面:

http://192.168.50.228:9200/

输入注册好的cpolar账号登录进入后台页面。

穿透New-API

点击左侧菜单栏的【隧道管理】,展开进入【隧道列表】页面。页面下默认会有2个隧道:ssh隧道(指向22端口,tcp协议)和website隧道(指向8080端口,http协议)。

点击【创建隧道】菜单,在配置区域填写【隧道名称】,本地地址填写【3000】端口,然后点击创建。

创建完成后,来到侧边栏的【状态>在线隧道列表】,可以看到刚创建的隧道。以https为例,复制公网地址访问测试。页面成功加载,大功告成。

现在,无论身处公司、咖啡厅还是高铁上,只要手机或电脑有网,输入这个公网地址就能随时调用家里的模型,甚至直接把API接口和临时Token发给异地好友使用。

配置固定二级子域名

免费随机域名每隔24小时会刷新变脸。如果想作为全天候生产力工具,或者接入了自动处理工作流的微信机器人,建议升级至cpolar基础套餐,配置固定专属的二级子域名。

进入官网的预留页面:

https://dashboard.cpolar.com/reserved

选择【预留】菜单,在【保留二级子域名】项中填写地区、名称、描述(可不填),然后点击【保留】按钮。列表中会显示已保留的二级子域名记录。

保留后,进入侧边菜单栏的【隧道管理】下的【隧道列表】,找到创建的隧道,点击【编辑】按钮。修改域名类型为【二级子域名】,填写前面配置好的子域名,点击更新。

来到【状态】菜单下的【在线隧道列表】,可以看到隧道的公网地址已变更为二级子域名加固定域名主体及后缀的形式。以https访问测试,访问成功。这样一个永久固定不变的地址就设置好了。

首页显示的网站地址可以在【系统设置】>【服务器地址】中修改。

实际使用场景

跑完这套流程,你就得到了一套自己的AI接口枢纽。所有渠道统一管理,一个Token对外分发,还不受局域网限制。算力不在云上,在家里,但随时能用。

几个典型的使用场景:

个人多设备同步。手机、平板、笔记本、台式机,所有设备共用一套API配置,不用每台机器单独配密钥。

团队协作。给团队成员分发带额度限制的Token,既能共享本地算力,又不用担心被刷爆。

自动化工作流。配合n8n、Make等自动化工具,把本地模型接入工作流,处理敏感数据不用走云端。

开发测试。本地调试AI应用时,直接连家里的模型,响应速度比云端API快,还免费。

折腾完设备本身的事情,接下来就是真正用起来的问题了。