Linux本地AI助手:Ollama + Open WebUI完全离线方案

📘 教程 2026-08-07 · 更新于 2026-10-26 约 3 分钟阅读

Linux 上的本地AI助手:Ollama 跑模型、Open WebUI 做界面、LocalAI 补 API,含 systemd 与 Docker 完整配置。

📜 目录

Linux本地AI助手:Ollama + Open WebUI完全离线方案

一台闲置的 Linux 机器、一张中端显卡,就能搭出一个不联网也能用的私人 AI 助手:聊天、问自己文档、给脚本提供 API。Linux 做这件事比 Windows 省心,驱动、Docker、systemd 都是现成的。下面是从装系统到能用的完整走法,全部命令可直接复制。

一、技术栈分工

组件 星数 角色
Ollama 184,835 跑模型,提供本地 API(默认 11434)
Open WebUI 156,799 浏览器界面,多用户、文档问答、模型切换
LocalAI 49,969 纯 OpenAI 兼容端点,给老应用做替身
llama.cpp 132,405 底层推理引擎,Ollama 内部也用它

大多数场景只需要前两个。LocalAI 的用处是"某个软件只认 OpenAI 的接口格式,又不想改代码",它把接口层做得更贴规范。

二、装 Ollama

curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama

脚本会装成 systemd 服务并自动启动,模型默认存放在 /usr/share/ollama/.ollama/models。

让它监听内网,方便局域网其他机器访问:

sudo systemctl edit ollama.service

写入:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="OLLAMA_KEEP_ALIVE=30m"
sudo systemctl daemon-reload && sudo systemctl restart ollama

几个参数的实际含义:OLLAMA_NUM_PARALLEL 是并发请求数,调大要相应加显存;OLLAMA_KEEP_ALIVE 是模型驻留时间,设长一点能避免每次请求都重新加载(首次加载十几秒到几十秒)。

注意:0.0.0.0 会把服务暴露到整个网络,Ollama 本身没有鉴权。只在内网用,或者前面套一层 nginx 加 basic auth,或者干脆只监听 127.0.0.1 让 Open WebUI 走 Docker 内网访问。

三、拉模型

# 通用对话,8B 大约需 6GB 显存(Q4 量化)
ollama pull qwen3:8b

# 强推理,7B 蒸馏版,16GB 内存可跑
ollama pull deepseek-r1:7b

# 中文写作与长文,质量更稳,24GB 显存更舒服
ollama pull qwen3:14b

# 给文档问答用的嵌入模型
ollama pull bge-m3

跑起来看速度:

ollama run qwen3:8b --verbose
>>> 用三句话解释什么是向量检索

输出末尾会给 eval rate(每秒生成多少 token)。7B 到 8B 模型在消费级显卡上通常几十 token/s,纯 CPU 往往只有个位数,这个数字决定了你的实际体验,值得先测。

四、装 Open WebUI

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

浏览器打开 http://服务器IP:3000,第一个注册的账号默认成为管理员。容器里访问宿主机的 Ollama 用 http://host.docker.internal:11434;如果 Ollama 只监听 127.0.0.1,就在同一个 docker 网络里跑,或者用 --network host。

装完值得打开的几项:

五、真正的"完全离线"要处理三件事

  1. 模型权重要预下载。断网之后 ollama pull 会失败,所有要用的模型和嵌入模型提前拉完。
  2. 关掉联网搜索和外部工具。Open WebUI 的搜索、网页抓取功能默认可能开启,在设置里逐个确认。
  3. 嵌入模型走本地。文档问答默认可能调用云端 embedding,改成 bge-m3 或 nomic-embed-text 本地模型,否则上传的文档内容会发出去。

做完这三步,把网线拔掉,聊天和文档问答应该照常工作。这就是验证是否真离线的唯一方法。

六、什么时候需要 LocalAI

需求 用谁
自己聊天、内部知识库 Ollama + Open WebUI 足够
老应用只支持 OpenAI 接口,要改 base_url 就走 LocalAI 或 Ollama 的 /v1 兼容层
需要图像生成、语音转写统一进一个端点 LocalAI 覆盖面更广
要按模型做细粒度显存控制 llama.cpp 直接调参

Ollama 自带 http://localhost:11434/v1 的 OpenAI 兼容接口,多数情况不用再上 LocalAI。

七、加一层访问控制

内网也要防手滑。最省事的是 nginx 反代加 basic auth:

server {
    listen 80;
    server_name ai.local;

    auth_basic "restricted";
    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;
    }
}
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd yourname
sudo systemctl reload nginx

要接公网,再加 TLS(certbot 一条命令),并把 Ollama 的 11434 端口在防火墙上关掉,只留 80/443。

八、硬件与模型对照

硬件 能跑 体验
16GB 内存,无独显 7B 到 8B(Q4) 能用,个位数 token/s
8GB 显存 7B 到 8B(Q4) 日常对话流畅
12GB 到 16GB 显存 14B(Q4) 质量明显上一档
24GB 显存 32B(Q4)或 14B(Q8) 接近商用体验
48GB 以上或 Mac 大内存 70B(Q4) 慢但可用,适合批处理

显存不够时的第一招不是换卡,是把量化档从 Q8 降到 Q4_K_M,体积差不多减半,质量损失通常可接受。

常见问题

Q:一定要显卡吗? A:不一定。llama.cpp 的 CPU 推理很成熟,7B 模型在 8 核以上的 CPU 能跑到可用速度,只是长回答要等。

Q:Open WebUI 打开很慢或白屏? A:多半是容器里连不上 Ollama。进容器 docker exec -it open-webui curl http://host.docker.internal:11434 测一下,通不通一眼就知道。

Q:多人同时用会排队吗? A:会。Ollama 默认并发有限,OLLAMA_NUM_PARALLEL 调大需要更多显存,几个人同时用 8B 模型,16GB 显存比较稳。

Q:怎么备份? A:Open WebUI 的数据都在 open-webui 这个 docker volume 里,模型在 OLLAMA_MODELS 目录,两处一起打包即可。数据库是 SQLite,停机复制最安全。

注:安装命令与端口默认值以 Ollama、Open WebUI 官方文档为准,版本升级后可能有变化。

相关文章

延伸阅读 · 含推广链接

自己配环境的时间往往比写代码还长。现成镜像装好就能起,省下的是反复调试的那几个小时。

看现成镜像 →

相关文章
2026-08-07
AI会议内容摘要器:没参加的演讲也不再错过
2026-08-12
AI推理2026:它是什么、为什么烧钱、怎么变便宜
2026-08-01
AI模型部署教程:从Notebook到生产API的7个步骤
2026-08-07
AI PDF翻译:保留版式的开源全文翻译
2026-08-05
2026年编程用本地大模型:Ollama(17.8万星)+ Continue + Cline,私密AI结对编程
2026-08-11
边缘AI 2026:在手机、摄像头和IoT设备上跑模型

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论