饮墨

子安饮墨馀三斗,留与卿儿作赋来

5 步用 Ollama + Open WebUI 在内网部署私有大模型,运维团队 AI 助手落地指南

想给团队用上 AI 助手,但数据不能出内网?SaaS 大模型 API 按 Token 收费,跑日志分析一天就烧几百块?Ollama + Open WebUI 是目前本地部署开源大模型最轻量的方案——一台 Linux 服务器 + Docker,30 分钟跑起来。本文从真实运维场景出发,给出完整部署流程和 3 个常踩的坑。

痛点:运维团队用 AI 的两难

越来越多运维团队想用大模型辅助日志分析、告警摘要、文档生成。但现实很骨感:

  • 数据合规:生产日志含敏感信息,不能往 OpenAI / Claude API 传
  • 成本失控:用 API 跑自动化脚本,Token 费一个月轻松破万
  • 网络限制:内网环境压根访问不了外部 API

解决方案很清晰:本地部署开源大模型。2026 年,Qwen3、Llama 4、Gemma 3 等开源模型能力已经够用,关键是部署门槛要低。

方案:Ollama + Open WebUI

组件 作用 资源要求
Ollama 本地模型推理引擎,一条命令拉模型、跑推理 CPU 可跑,GPU 加速可选
Open WebUI Web 界面,支持多模型切换、对话管理、RAG Docker 部署,占用极小

核心优势:不依赖云 API、数据不出内网、部署维护成本极低

实操步骤

第 1 步:安装 Ollama

# Linux 一键安装
curl -fsSL https://ollama.com/install.sh | sh

# 验证安装
ollama --version

# 设置为系统服务(安装脚本默认已配置 systemd)
systemctl status ollama

第 2 步:拉取模型

# 拉取 Qwen3 8B — 中英双语,运维场景表现优秀
ollama pull qwen3:8b

# 如果服务器有 24GB+ 显存,可以上 32B 版本
# ollama pull qwen3:32b

# 快速测试模型是否正常
ollama run qwen3:8b "用一句话解释什么是 OOM Killer"

模型选型参考

模型 参数量 内存需求 适用场景
qwen3:8b 8B 8GB RAM / 6GB VRAM 日常问答、日志摘要、脚本生成
qwen3:32b 32B 24GB RAM / 20GB VRAM 复杂分析、长文本理解
llama4-scout 17Bx16E 32GB RAM / 24GB VRAM 多语言、代码生成
codestral 25B 16GB RAM / 14GB VRAM 纯代码场景

第 3 步:用 Docker 部署 Open WebUI

# 创建数据持久化目录
mkdir -p /opt/open-webui/data

# 启动 Open WebUI(自动连接本机 Ollama)
docker run -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  -v /opt/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  --add-host=host.docker.internal:host-gateway \
  ghcr.io/open-webui/open-webui:main

# 检查容器状态
docker logs -f open-webui --tail 50

启动后访问 http://<服务器IP>:3000,首次注册的用户自动成为管理员。

第 4 步:配置 Ollama 监听地址(关键)

默认 Ollama 只监听 127.0.0.1,如果 Open WebUI 和 Ollama 不在同一台机器,需要改监听地址:

# 编辑 systemd 配置
sudo systemctl edit ollama

# 添加以下内容
[Service]
Environment="OLLAMA_HOST=0.0.0.0"

# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart ollama

# 验证监听
ss -tlnp | grep 11434
# 应该看到 0.0.0.0:11434

第 5 步:配置 Nginx 反代 + 基础鉴权

内网部署也要有基本的访问控制:

server {
    listen 443 ssl;
    server_name ai.internal.example.com;

    ssl_certificate     /etc/nginx/ssl/internal.crt;
    ssl_certificate_key /etc/nginx/ssl/internal.key;

    # 基础认证
    auth_basic "AI Platform";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        # 流式输出需要关闭缓冲
        proxy_buffering off;
    }
}
# 生成 htpasswd 文件
htpasswd -c /etc/nginx/.htpasswd ops-team
nginx -t && systemctl reload nginx

避坑指南

坑 1:CPU 推理慢到不可用

现象:8B 模型在纯 CPU 上响应 30 秒以上,体验极差。

解法: - 确认 Ollama 是否检测到 GPU:ollama ps 查看推理设备 - 没有 GPU 的服务器,选 4B 以下小模型(如 qwen3:4b),或用 q4_0 量化版本 - 终极方案:加一张 RTX 4060(8GB VRAM,二手 1500 元),8B 模型推理速度提升 10 倍以上

坑 2:Docker 容器连不上宿主机 Ollama

现象:Open WebUI 页面显示 "Connection refused" 或模型列表为空。

解法

# 方案 A:使用 host 网络模式(最简单)
docker run -d --network host --name open-webui \
  -v /opt/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  ghcr.io/open-webui/open-webui:main

# 方案 B:确认 host.docker.internal 解析正常
docker exec open-webui curl -s http://host.docker.internal:11434/api/tags

坑 3:模型文件占满磁盘

现象:拉了几个模型后 / 分区满了,系统告警。

解法

# Ollama 模型默认存储路径
ls -lh ~/.ollama/models/

# 修改存储路径到大容量磁盘
sudo systemctl edit ollama
# 添加:
# [Service]
# Environment="OLLAMA_MODELS=/data/ollama/models"

# 清理不用的模型
ollama list
ollama rm <不需要的模型>

运维场景实战示例

部署完成后,团队可以直接在 Open WebUI 里这样用:

Prompt: 分析以下 Nginx 错误日志找出 5xx 错误的根因并给出修复建议

[error] 2026/05/01 03:22:15 [emerg] 1234#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
[error] 2026/05/01 03:22:16 [crit] 1234#0: *567 connect() to 10.0.1.5:8080 failed (111: Connection refused)

也可以通过 Ollama 的 API 接口接入自动化脚本:

# 调用本地模型 API 做日志摘要
curl -s http://localhost:11434/api/generate \
  -d '{
    "model": "qwen3:8b",
    "prompt": "概括以下告警信息的核心问题:CPU usage 95%, disk /data 98%, OOM killed 3 processes",
    "stream": false
  }' | jq -r '.response'

总结

  • 最低门槛方案:一台 8GB 内存的 Linux 服务器 + Docker,跑 Qwen3 4B/8B 足够覆盖日志分析、脚本生成、文档问答场景
  • 数据安全:所有推理在本地完成,零数据外泄风险
  • 成本:除硬件外零运营成本,不按 Token 计费
  • 建议路径:先在内网跑 PoC → 团队试用 → 接入自动化流水线(告警摘要、日志分析、变更审核)

本地大模型不是要替代云端 API,而是解决"数据不能出去、成本不能失控"这两个硬约束。Ollama + Open WebUI 让部署门槛降到最低,运维团队值得一试。

您还没有登录,请登录后发表评论。