离线部署OneAPI无网络家用住宅服务器完整教程
在无网络的家用住宅服务器上离线部署OneAPI,核心思路是借助一台联网电脑提前准备好镜像或程序包,再通过U盘或移动硬盘拷贝到服务器导入运行。
本文以 Docker 方式为例,逐步说明镜像下载、离线安装、容器启动和访问验证全过程,适合没有内网源、只有家用主机的零基础用户直接照做。
离线部署前要准备好哪些东西
开始前需要准备三样东西:一台能上外网的电脑、一台目标家用服务器(Linux 系统,比如 Ubuntu/Debian/CentOS)、一个用于拷贝文件的 U 盘或移动硬盘。
OneAPI 是一个开源的 AI API 网关管理工具,通常用 Docker 容器运行。
离线部署最常见的路径是“联网电脑拉镜像 → 导出成 tar 包 → 拷贝到服务器 → docker load 导入”。
服务器上已经装好 Docker 会省很多事;
如果没装,需要先离线安装 Docker,这不在本文展开,但建议在联网电脑上提前下载好对应系统架构的 Docker 安装包一起带过去。
需要注意架构问题:家用服务器如果是 ARM 架构(树莓派、部分 NAS),联网电脑拉镜像时要指定 linux/arm64 架构,否则导入后可能无法启动。
联网电脑上准备 OneAPI 镜像
在能联网的电脑上操作,先确认 Docker 已安装并能正常运行。
然后拉取 OneAPI 官方镜像:
docker pull justsong/one-api
如果服务器和电脑架构不同,先创建对应平台镜像再导出。
比如服务器是 arm64,可以这样拉取:
docker pull --platform linux/arm64 justsong/one-api
拉取完成后,用 docker save 把镜像保存为 tar 文件:
docker save -o one-api.tar justsong/one-api
执行后当前目录会出现 one-api.tar。
这个文件大小一般在几十 MB 到上百 MB,确认文件完整后复制到 U 盘。
建议同时记录一下镜像名称和版本,后面导入时用得上。
家用服务器离线导入并启动 OneAPI
把 U 盘插到家用服务器上,挂载并拷贝 tar 包到服务器磁盘。
以常见路径为例:
sudo mount /dev/sdb1 /mnt
cp /mnt/one-api.tar /opt/
接着导入镜像:
sudo docker load -i /opt/one-api.tar
导入后可以查看镜像是否已存在:
sudo docker images
确认镜像列表里出现 justsong/one-api 后,启动容器。
OneAPI 默认监听 3000 端口,同时需要保存数据,所以建议把数据目录挂载到宿主机。
先创建数据目录并设置权限:
sudo mkdir -p /opt/one-api/data
sudo chown -R 1000:1000 /opt/one-api/data
然后运行容器:
sudo docker run -d --name one-api --restart always -p 3000:3000 -v /opt/one-api/data:/data justsong/one-api
如果服务器自己有固定内网 IP,也可以在启动时通过环境变量调整端口,比如对外使用 8080:
sudo docker run -d --name one-api --restart always -p 8080:3000 -v /opt/one-api/data:/data justsong/one-api
这里 --restart always 能让容器在服务器重启或进程异常退出后自动拉起,家用服务器偶尔断电重启非常实用。
验证 OneAPI 是否正常运行
启动后先看容器状态:
sudo docker ps
确保 STATUS 是 Up,不是 Exited。
然后在本机测试访问:
curl http://localhost:3000/
如果返回 HTML 页面内容,说明服务已经在监听。
接着用局域网内另一台设备访问:
http://服务器内网IP:3000
正常会出现 OneAPI 的登录界面。
首次访问需要注册账号并登录,之后在后台完成渠道配置和令牌创建,就可以通过 OneAPI 转发各类 AI 模型请求了。
如果其他设备访问不了,先确认服务器防火墙是否放行对应端口。
Ubuntu 常用 ufw,可执行:
sudo ufw allow 3000/tcp
CentOS 系统则检查 firewalld。
还要确认无线路由器或交换机没有启用 AP 隔离,否则内网设备之间可能互相屏蔽。
避坑提醒与常见排查
离线部署最常见的坑是镜像架构不匹配。
在联网电脑上拉镜像时如果不指定平台,默认按电脑架构拉取;
服务器是 ARM 时,导入后容易报 exec format error。
解决方法是重新在联网电脑上用 --platform 拉取再导入。
另一个问题是数据卷权限。
OneAPI 容器内进程以 UID 1000 运行,宿主机挂载目录权限不对会导致写库失败或启动后自动退出。
如果发现容器反复重启,先查看日志:
sudo docker logs one-api
看到权限相关的报错,就把目录 owner 改成 1000:
sudo chown -R 1000:1000 /opt/one-api/data
还有一点:offline 环境没有外网,OneAPI 运行后如果需要连接外部的模型 API(如 OpenAI、Anthropic),那部分请求仍需要能联网。
如果整条链路都隔离,则需要在内网提前部署模型服务,并把 OneAPI 的渠道地址指向内网模型服务地址。
最后建议把 one-api.tar 和 Docker 安装包一起留档保存,后续另一台机器需要部署时可以直接复用,省去再次下载的时间。
如果你正在处理离线部署OneAPI无网络家用住宅服务器的问题,按本文流程走一遍基本能完成;
遇到异常时优先回看日志和端口访问这两处,大多数问题都出在这里。