从零搭建局域网大模型服务器:Ubuntu Server + Ollama + LiteLLM + Claude Code 完整指南
目录
前言
本文将带你在一台 Ubuntu Server 服务器上,从零开始搭建一套完整的本地大模型服务,并让局域网内的 Claude Code 能够调用这些模型。无论你是想拥有一个私有的 AI 编程助手,还是想在团队内共享模型能力,这篇指南都能帮到你。
推荐硬件配置:
-
16 核以上 CPU
-
64GB 以上内存(推荐 128GB+)
-
100GB 以上可用磁盘空间
最终效果:
-
✅ 服务器本地运行 DeepSeek-R1 32B、Qwen3.5 27B 等模型
-
✅ 通过 LiteLLM 提供 OpenAI 兼容的统一 API
-
✅ 局域网内任意设备可通过 Claude Code 调用本地模型
架构总览
┌─────────────────────────────────────────────────────────────┐
│ Ubuntu Server (服务器 IP) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Docker Network │ │
│ │ ┌───────────┐ ┌───────────┐ ┌─────────────────┐ │ │
│ │ │ Ollama │ │ PostgreSQL│ │ LiteLLM │ │ │
│ │ │ :11434 │ │ :5432 │ │ :4000 │ │ │
│ │ │ │◄─┼───────────┼──│ │ │ │
│ │ └─────┬─────┘ └───────────┘ └────────┬────────┘ │ │
│ │ │ │ │ │
│ │ └──────────────┬───────────────────┘ │ │
│ │ │ │ │
│ │ 模型文件 (ollama volume) │ │
│ │ deepseek-r1:32b (19GB) │ │
│ │ qwen3.5:27b (17GB) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
│ HTTP API (端口 4000)
│
┌─────────────────────────────┼─────────────────────────────┐
│ ▼ │
│ 局域网台式机 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Claude Code │ │
│ │ settings.json: │ │
│ │ ANTHROPIC_BASE_URL=http://服务器IP:4000 │ │
│ │ ANTHROPIC_AUTH_TOKEN=sk-ai-gateway │ │
│ │ ANTHROPIC_MODEL=deepseek-r1-32b │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
第一部分:安装 Docker 环境
1.1 安装 Docker
# 更新软件包
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install -y ca-certificates curl
# 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 将当前用户加入 docker 组(避免每次输入 sudo)
sudo usermod -aG docker $USER
newgrp docker
1.2 验证 Docker 安装
docker --version
# 输出示例: Docker version 27.5.1, build 9f9e405
1.3 配置 Docker 镜像加速器(国内环境)
创建 /etc/docker/daemon.json 文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
# 重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
第二部分:部署 Ollama 模型服务
2.1 创建 Docker 网络
# 创建专用网络,方便后续容器互通
docker network create ai-network
2.2 运行 Ollama 容器
docker run -d \
--name ollama \
--restart always \
--network ai-network \
-p 11434:11434 \
-v ollama:/root/.ollama \
ollama/ollama
参数说明:
-
-d:后台运行 -
--name ollama:容器命名 -
--restart always:服务器重启后自动启动 -
--network ai-network:加入自定义网络 -
-p 11434:11434:端口映射 -
-v ollama:/root/.ollama:数据持久化(模型存储
2.3 下载模型
# 下载 DeepSeek-R1 32B 模型(约 19GB)
docker exec -it ollama ollama pull deepseek-r1:32b
# 下载 Qwen3.5 27B 模型(约 17GB)
docker exec -it ollama ollama pull qwen3.5:27b
模型选择建议:
| 模型 | 大小 | 内存需求 | 适用场景 |
|---|---|---|---|
| deepseek-r1:7b | 4.7GB | 16GB+ | 轻量级,响应快 |
| deepseek-r1:14b | 9GB | 32GB+ | 性能和资源均衡 |
| deepseek-r1:32b | 19GB | 64GB+ | 复杂推理任务 |
| qwen3.5:27b | 17GB | 64GB+ | 通用对话 |
2.4 验证模型已下载
docker exec -it ollama ollama list
输出示例:
NAME ID SIZE MODIFIED
deepseek-r1:32b edba8017331d 19 GB 2 days ago
qwen3.5:27b 7653528ba5cb 17 GB 2 days ago
第三部分:部署 LiteLLM 统一网关
LiteLLM 提供 OpenAI 兼容的 API 接口,统一管理所有模型。
3.1 创建配置文件
# 创建配置目录
mkdir -p /home/$USER/litellm_config
# 创建配置文件
cat > /home/$USER/litellm_config/config.yaml << 'EOF'
model_list:
# DeepSeek-R1 32B 模型
- model_name: deepseek-r1-32b
litellm_params:
model: ollama/deepseek-r1:32b
api_base: http://ollama:11434 # 容器名,在 ai-network 中互通
model_info:
description: "DeepSeek-R1 32B 推理模型"
# Qwen3.5 27B 模型
- model_name: qwen3.5-27b
litellm_params:
model: ollama/qwen3.5:27b
api_base: http://ollama:11434
model_info:
description: "Qwen3.5 27B 通用对话模型"
general_settings:
master_key: sk-ai-gateway # 主密钥,登录和API调用使用
allowed_models:
- deepseek-r1-32b
- qwen3.5-27b
EOF
3.2 运行 PostgreSQL 数据库
LiteLLM 需要数据库存储配置和密钥,使用 PostgreSQL:
# 启动 PostgreSQL 容器
docker run -d \
--name postgres \
--restart always \
--network ai-network \
-e POSTGRES_USER=litellm \
-e POSTGRES_PASSWORD=litellm123 \
-e POSTGRES_DB=litellm \
-v postgres_data:/var/lib/postgresql/data \
postgres:15
3.3 运行 LiteLLM 容器
# 创建数据目录
mkdir -p /home/$USER/litellm_data
# 启动 LiteLLM
docker run -d \
--name litellm \
--restart always \
--network ai-network \
-p 4000:4000 \
-v /home/$USER/litellm_config:/app/config \
-v /home/$USER/litellm_data:/app/data \
-e LITELLM_MASTER_KEY="sk-ai-gateway" \
-e DATABASE_URL="postgresql://litellm:litellm123@postgres:5432/litellm" \
ghcr.io/berriai/litellm:main-latest \
--config /app/config/config.yaml
3.4 验证 LiteLLM
# 查看容器状态
docker ps | grep -E "(ollama|postgres|litellm)"
# 测试健康检查
curl http://localhost:4000/health
# 返回 {"status":"ok","version":"..."}
# 测试模型列表
curl -H "Authorization: Bearer sk-ai-gateway" \
http://localhost:4000/v1/models
3.5创建网络两容器互通
docker network create ai-network
docker network connect ai-network postgres
3.6 登录管理界面
浏览器访问:
http://服务器IP:4000/ui
-
用户名:
admin -
密码:
sk-ai-gateway
登录后可以查看模型列表、创建 API 密钥、监控使用情况。
第四部分:验证 API 调用
4.1 测试聊天接口
curl -X POST http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer sk-ai-gateway" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1-32b",
"messages": [
{"role": "user", "content": "你好,请用一句话介绍自己"}
]
}'
成功会返回模型生成的回复。
4.2 测试 Qwen 模型
curl -X POST http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer sk-ai-gateway" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-27b",
"messages": [
{"role": "user", "content": "什么是大语言模型?"}
]
}'
第五部分:Claude Code 连接本地模型
5.1 在台式机安装 Claude Code
安装claude可查看上一篇文章,此处不在介绍;
5.2 配置 Claude Code
创建配置文件 ~/.claude/settings.json(Windows 路径为 %USERPROFILE%\.claude\settings.json):
{
"env": {
"ANTHROPIC_BASE_URL": "http://服务器IP:4000",
"ANTHROPIC_AUTH_TOKEN": "sk-ai-gateway",
"ANTHROPIC_MODEL": "deepseek-r1-32b"
}
}
参数说明:
-
ANTHROPIC_BASE_URL:你的 Ubuntu Server 服务器 LiteLLM 地址 -
ANTHROPIC_AUTH_TOKEN:主密钥(与 LiteLLM 配置一致) -
ANTHROPIC_MODEL:默认使用的模型
5.3 启动 Claude Code
claude
如果配置正确,Claude Code 会启动并加载本地模型,你可以开始提问了!
5.4 切换模型
在 Claude Code 对话中输入 /model qwen3.5-27b 即可切换模型。
常用管理命令
Docker 容器管理
# 查看所有容器
docker ps -a
# 查看容器日志
docker logs ollama --tail 50
docker logs litellm --tail 50
# 重启容器
docker restart ollama
docker restart litellm
# 停止容器
docker stop ollama
docker stop litellm
# 启动容器
docker start ollama
docker start litellm
Ollama 模型管理
# 列出已下载模型
docker exec -it ollama ollama list
# 下载新模型
docker exec -it ollama ollama pull qwen3.5:32b
# 删除模型
docker exec -it ollama ollama rm qwen3.5:27b
# 测试模型对话
docker exec -it ollama ollama run deepseek-r1:32b
网络检查
# 查看 Docker 网络
docker network inspect ai-network
# 测试容器间连通性
docker exec litellm curl http://ollama:11434/api/tags
常见问题解决
Q1: LiteLLM 启动报数据库连接错误
原因:PostgreSQL 容器未完全启动或网络不通。
解决:
# 检查 PostgreSQL 状态
docker logs postgres --tail 20
# 等待 10 秒后重启 LiteLLM
sleep 10
docker restart litellm
Q2: Claude Code 无法连接服务器
原因:网络不通或端口被防火墙阻止。
解决:
# 在 Ubuntu Server 上测试端口
sudo netstat -tlnp | grep 4000
# 开放防火墙端口
sudo ufw allow 4000/tcp
# 从台式机测试连通性
ping 服务器IP
curl http://服务器IP:4000/health
Q3: 模型下载速度慢
解决:使用镜像源或手动导入模型文件。
Q4: 容器端口冲突
解决:检查端口是否被占用,修改映射端口。
结语
至此,你已经成功搭建了一套完整的本地大模型服务器:
-
✅ Ubuntu Server 运行 Ollama 承载模型
-
✅ LiteLLM 提供统一 API 网关
-
✅ 局域网内 Claude Code 可以调用本地模型
这套方案完全运行在本地网络,数据不外传,响应速度快,且完全免费。你可以根据需要随时添加新模型,或为团队成员创建独立的 API 密钥。
下一步可以探索:
-
添加更多模型(如 Llama 3、Mistral 等)
-
部署 Open WebUI 提供网页聊天界面
-
配置更精细的权限管理和用量监控
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)