目录

前言

架构总览

第一部分:安装 Docker 环境

1.1 安装 Docker

1.2 验证 Docker 安装

1.3 配置 Docker 镜像加速器(国内环境)

 第二部分:部署 Ollama 模型服务

2.1 创建 Docker 网络

2.2 运行 Ollama 容器

2.3 下载模型

2.4 验证模型已下载

第三部分:部署 LiteLLM 统一网关

3.1 创建配置文件

3.2 运行 PostgreSQL 数据库

3.3 运行 LiteLLM 容器

3.4 验证 LiteLLM 运行

3.5 登录管理界面

 第四部分:验证 API 调用

4.1 测试聊天接口

4.2 测试 Qwen 模型

第五部分:Claude Code 连接本地模型

5.1 在台式机安装 Claude Code

5.2 配置 Claude Code

5.3 启动 Claude Code

5.4 切换模型

 常用管理命令

Docker 容器管理

Ollama 模型管理

网络检查

 常见问题解决

Q1: LiteLLM 启动报数据库连接错误

Q2: Claude Code 无法连接服务器

Q3: 模型下载速度慢

Q4: 容器端口冲突

结语


前言

本文将带你在一台 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 提供网页聊天界面

  • 配置更精细的权限管理和用量监控

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐