超详细教程:VMware NAT 模式下 OpenWebUI + Ollama + Docker 完整部署流程(宿主机可访问)
·
VMware NAT 模式下 OpenWebUI + Ollama 完整部署教程
(含国内镜像 + Xftp 上传 + 宿主机下载文件)
一、环境说明
- 宿主机:Windows 10/11
- 虚拟机:Ubuntu 20.04 / 22.04
- 虚拟机网络:NAT 模式
- 连接工具:Xshell + Xftp
- Ollama 实际路径:
/home/bxq/ai-ollama - 目标:宿主机浏览器访问 OpenWebUI,对接本地 Ollama
二、宿主机(Windows)下载所需文件
在 Windows 下好所有包,再用 Xftp 传入虚拟机,速度更快更稳定。
1. OpenWebUI 离线 Docker 镜像
国内加速下载方式:
- 借助 GH Proxy 加速:https://ghproxy.net/
- 或直接下载官方镜像并导出为
open-webui.tar
最终下载到本地的文件:
open-webui.tar
2. Ollama 离线压缩包
Windows 浏览器下载:
https://ollama.com/install/linux/ollama-linux-amd64.tgz
保存为:
ollama-linux-amd64.tgz
三、使用 Xftp 上传文件到虚拟机
- 打开 Xftp,连接虚拟机(IP + 端口 22)
- 在虚拟机端创建目录:
mkdir -p /home/bxq/ai-ollama
- 将 Windows 上的以下文件拖拽上传到
/home/bxq/ai-ollama:open-webui.tarollama-linux-amd64.tgz
四、Ubuntu 更换国内镜像源(可选,强烈推荐)
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑源
sudo nano /etc/apt/sources.list
替换为 阿里云镜像源:
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
保存退出:Ctrl+O → 回车 → Ctrl+X
更新软件源:
sudo apt update
五、安装 Docker + 配置国内镜像加速
1. 安装 Docker
sudo apt install -y docker.io
2. 配置 Docker 国内镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
EOF
3. 重启 Docker 并设置开机自启
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
六、进入目录并解压 Ollama
cd /home/bxq/ai-ollama
tar -zxvf ollama-linux-amd64.tgz
七、解压并导入 OpenWebUI 镜像
cd /home/bxq/ai-ollama
docker load -i open-webui.tar
八、启动 Ollama 服务
cd /home/bxq/ai-ollama/bin
./ollama serve &
拉取轻量模型(必拉,否则 WebUI 无法使用):
./ollama pull qwen:0.5b
九、清理旧容器(避免端口/配置冲突)
docker stop openwebui
docker rm openwebui
十、最终启动 OpenWebUI(宿主机可访问)
docker run -d \
--name openwebui \
-p 3000:3000 \
-e HOST=0.0.0.0 \
-e PORT=3000 \
-e OLLAMA_BASE_URL=http://172.17.0.1:11434 \
--restart always \
ghcr.io/open-webui/open-webui:main
关键参数说明
-p 3000:3000:Docker 端口映射,宿主机才能访问HOST=0.0.0.0:允许外部所有 IP 访问OLLAMA_BASE_URL=http://172.17.0.1:11434:Docker 容器访问虚拟机 Ollama 的固定地址
十一、查看虚拟机 IP
ip a
示例 IP:
192.168.146.131
十二、宿主机浏览器访问
打开 Windows 浏览器输入:
http://192.168.146.131:3000
- 注册账号 → 登录
- 选择模型
qwen:0.5b - 开始对话
十三、虚拟机重启后恢复流程(最重要)
cd /home/bxq/ai-ollama/bin
./ollama serve &
docker start openwebui
查看模型:
./ollama list
下载新模型:
./ollama pull qwen:1.8b
./ollama pull llama3:8b
./ollama pull gemma:2b
./ollama pull chatglm3:6b
十四、完整一键执行脚本
cd /home/bxq/ai-ollama
# 解压 Ollama
tar -zxvf ollama-linux-amd64.tgz
# 换国内源(可选)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo tee /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
sudo apt update
# 安装 Docker
sudo apt install -y docker.io
# Docker 国内镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
# 导入 OpenWebUI 镜像
docker load -i open-webui.tar
# 启动 Ollama
cd /home/bxq/ai-ollama/bin
./ollama serve &
./ollama pull qwen:0.5b
# 清理旧容器
docker stop openwebui
docker rm openwebui
# 启动 OpenWebUI
docker run -d \
--name openwebui \
-p 3000:3000 \
-e HOST=0.0.0.0 \
-e PORT=3000 \
-e OLLAMA_BASE_URL=http://172.17.0.1:11434 \
--restart always \
ghcr.io/open-webui/open-webui:main
# 查看虚拟机IP
ip a
十五、Ollama 常用模型下载命令速查
# 国产通用
./ollama pull qwen:0.5b
./ollama pull qwen:1.8b
./ollama pull qwen:7b
./ollama pull chatglm3:6b
./ollama pull baichuan:7b
# Llama 系列
./ollama pull llama3:8b
# Google Gemma
./ollama pull gemma:2b
./ollama pull gemma:7b
# 微软 Phi
./ollama pull phi3:3.8b
十六、Ollama 常用命令
./ollama list # 查看已下载模型
./ollama pull 名称 # 下载模型
./ollama run 名称 # 命令行对话
./ollama rm 名称 # 删除模型
./ollama serve & # 启动服务
十七、常见问题
-
宿主机访问失败
- 检查虚拟机网络为 NAT 模式
- 检查
-p 3000:3000是否配置 - 临时关闭虚拟机防火墙:
sudo ufw disable
-
WebUI 连不上 Ollama
- 必须使用
172.17.0.1:11434 - 确认
ollama serve正在运行
- 必须使用
-
Docker 镜像下载慢
- 本文已配置国内加速
- 优先使用 Xftp 上传离线镜像 方式
整体部署流程图


图中 IP / 地址详细说明
192.168.146.131
Ubuntu 虚拟机的 IP 地址
作用:宿主机用来访问虚拟机 的唯一地址
3000 端口(宿主机 → 虚拟机)
作用:将宿主机发来的请求,转发到 Docker 容器内
172.17.0.1(内部通信地址,图外补充)
Docker 容器访问虚拟机的固定内部网关
作用:OpenWebUI 用来连接虚拟机上的 Ollama 服务
127.0.0.1 在三个环境里的含义
一、核心结论
127.0.0.1 永远只代表:当前设备自己。
换一个环境,它就指向另一个“自己”,互不认识。
二、分别解释
1)在 Windows 宿主机 上
127.0.0.1 = Windows 自己
- 你在 Windows 浏览器访问
127.0.0.1:3000 - 指向的是 Windows 自己的 3000 端口
- 根本找不到虚拟机,更找不到 Docker
2)在 Ubuntu 虚拟机 上
127.0.0.1 = Ubuntu 虚拟机自己
- Ollama 监听
127.0.0.1:11434 - 意思是:只允许虚拟机内部访问
- 你在虚拟机里可以访问,但 Docker 容器不能直接用它
3)在 Docker 容器(OpenWebUI) 里
127.0.0.1 = Docker 容器自己
- 容器里的
127.0.0.1和虚拟机、Windows 完全无关 - 所以容器里写
127.0.0.1:11434一定连不上 Ollama - 因为 Ollama 不在容器里,在虚拟机上
三、一张表看懂区别
| 所在环境 | 127.0.0.1 指向谁 | 能访问 Ollama? |
|---|---|---|
| Windows 宿主机 | Windows 自己 | 不能 |
| Ubuntu 虚拟机 | 虚拟机自己 | 能(Ollama 本地) |
| Docker 容器 | 容器自己 | 不能 |
四、所以最终正确地址是这样的
-
宿主机 → 虚拟机
→192.168.146.131(虚拟机对外 IP) -
Docker 容器 → 虚拟机 Ollama
→172.17.0.1:11434(Docker 访问宿主机固定网关) -
谁都不能跨环境用 127.0.0.1
虚拟机重启后,一键重启 OpenWebUI 完整命令(超简单,直接复制)
我给你写最稳妥、开机必成功的流程,你虚拟机开机后,直接按顺序执行:
1. 启动虚拟机,Xshell 连接上
2. 直接运行下面 3 条命令,OpenWebUI 就复活了
# 1. 后台启动 Ollama(必须先开)
ollama serve &
# 2. 启动 OpenWebUI 容器
docker start openwebui
# 3. 查看是否运行成功
docker ps
3. 然后浏览器直接访问
http://192.168.146.131:3000
如果上面不行,用这个终极重启命令(最保险)
ollama serve &
docker stop openwebui
docker rm openwebui
docker run -d \
--name openwebui \
-p 3000:3000 \
-e HOST=0.0.0.0 \
-e PORT=3000 \
-e OLLAMA_BASE_URL=http://172.17.0.1:11434 \
--restart always \
ghcr.io/open-webui/open-webui:main
超级简短记忆版(关机重启只需要这两句)
ollama serve &
docker start openwebui
虚拟机重启后 OpenWebUI + Ollama 完整操作总结(含常用模型大全)
适用于:压缩包绿色版 Ollama,每次重启虚拟机后使用
一、虚拟机重启后完整启动流程
1. 进入 Ollama 程序目录
cd ~/ai-ollama/bin
2. 启动 Ollama 服务
./ollama serve &
提示 bind: address already in use → 说明已启动,直接跳过。
3. 查看已下载模型
./ollama list
4. 下载新模型(见下方模型库)
./ollama pull 模型名
5. 启动 OpenWebUI
docker start openwebui
6. 宿主机浏览器访问
http://192.168.146.131:3000
二、Ollama 常用模型大全(直接复制下载)
1)通义千问(Qwen)国产首选
./ollama pull qwen:0.5b # 极小快速
./ollama pull qwen:1.8b # 轻量推荐
./ollama pull qwen:4b
./ollama pull qwen:7b
./ollama pull qwen:14b
2)Llama 3(Meta 效果强)
./ollama pull llama3:8b
./ollama pull llama3:70b
3)Phi(微软轻量高性能)
./ollama pull phi3:3.8b
4)Gemma(Google 开源)
./ollama pull gemma:2b
./ollama pull gemma:7b
5)百川(Baichuan)国产
./ollama pull baichuan:7b
6)ChatGLM(清华)
./ollama pull chatglm3:6b
7)Moonshot(月之暗面)
./ollama pull moonshot-chat:8b
三、Ollama 常用命令速查
./ollama list # 查看已安装模型
./ollama pull 名称 # 下载模型
./ollama run 名称 # 命令行直接对话
./ollama rm 名称 # 删除模型
./ollama serve & # 启动服务
四、一句话重启脚本
cd ~/ai-ollama/bin && ./ollama serve & && docker start openwebui
更多推荐
所有评论(0)