住宅机器Ubuntu24.04搭建Ollama+
为什么要在住宅机器上搭建 Ollama + NewAPI
对于个人开发者或隐私敏感的用户,在本地跑大模型既能节省云端费用,又能保障数据安全。
Ollama 降低了模型管理门槛,NewAPI 则提供了统一的 API 出口(兼容 OpenAI 格式),让你可以像调用官方接口一样使用本地模型。
家庭服务器(哪怕是旧台式机或低功耗迷你主机)也可以胜任。
准备工作:检查硬件与系统
- 系统版本:Ubuntu 24.04 LTS(推荐最小安装)。
- 硬件要求:建议 RAM ≥ 8GB(模型 7B 级别),如果使用 GPU 推理需至少 4GB 显存。
- 网络:能访问 GitHub 和 Docker Hub(用于安装和拉取镜像)。
更新现有软件包:
sudo apt update && sudo apt upgrade -y
确认系统版本:
lsb_release -a
输出应包含 Ubuntu 24.04.1 LTS 或类似版本号。
第一步:安装 Ollama
Ollama 官方提供一键安装脚本,适合无特殊需求的用户:
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,启动服务并设置自启动:
sudo systemctl enable ollama
sudo systemctl start ollama
验证服务状态:
sudo systemctl status ollama
出现 active (running) 即代表成功。
默认监听 localhost:11434。
拉取一个测试模型(例如 llama3.2:1b,体积小):
ollama pull llama3.2:1b
使用 curl 测试本地 API:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2:1b",
"prompt": "你好,请简单介绍一下自己。"
}'
返回 JSON 片段即说明 Ollama 工作正常。
第二步:部署 NewAPI(作为 API 管理网关)
NewAPI 是一款开源项目,支持多模型后端聚合,并提供类 OpenAI 的 API 接口。
这里使用 Docker 安装(若未安装 Docker,请先执行 sudo apt install docker.io 并加入用户组)。
创建挂载目录并运行容器:
mkdir -p ~/newapi-data
sudo docker run -d --name newapi \
--restart always \
-p 3000:3000 \
-v ~/newapi-data:/data \
-e TZ=Asia/Shanghai \
ghcr.io/songquanpeng/one-api:latest
注意:镜像名使用了 One API 的项目(功能与 NewAPI 一致),如你有特定 NewAPI 镜像请替换。等待容器启动后,访问http://你的IP:3000进入管理界面,默认账户root/123456,首次登录请修改密码。
在管理后台 → 渠道 → 添加渠道:
- 类型:选择
Ollama。 - 名称:任意(如
本地Ollama)。 - 地址:
http://宿主机IP:11434(容器内不能使用 localhost,应使用宿主机实际内网 IP 或host.docker.internal)。 - 模型列表:手动添加已拉取的模型,如
llama3.2:1b。
保存后,再到 令牌 → 添加令牌,生成一个用于外部调用的 API Key。
常见避坑与排错
- Ollama 端口无法被容器访问:如果 NewAPI 容器无法连接
localhost:11434,改用host.docker.internal:11434(Linux 需添加--add-host host.docker.internal:host-gateway参数启动 NewAPI 容器)。 - 模型下载缓慢:Ollama 默认从外网拉取模型,可配置代理或手动下载模型文件放入
~/.ollama/models。 - 内存不足导致模型加载失败:使用较小型模型(如
llama3.2:1b或qwen2:0.5b),或者开启 swap。 - Docker 权限错误:执行
sudo usermod -aG docker $USER后重新登录。
验证完整链路
使用 curl 测试 NewAPI 提供的 OpenAI 兼容接口:
curl http://localhost:3000/v1/chat/completions \
-H "Authorization: Bearer 你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2:1b",
"messages": [{"role": "user", "content": "Hello!"}]
}'
如果返回带有 choices 字段的 JSON,说明整个链路搭建成功。
现在你可以将任何兼容 OpenAI SDK 的应用指向 http://住宅机器IP:3000,并传入刚才生成的 API Key 来使用本地模型。