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 上传文件到虚拟机

  1. 打开 Xftp,连接虚拟机(IP + 端口 22)
  2. 在虚拟机端创建目录:
mkdir -p /home/bxq/ai-ollama
  1. 将 Windows 上的以下文件拖拽上传/home/bxq/ai-ollama
    • open-webui.tar
    • ollama-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 &      # 启动服务

十七、常见问题

  1. 宿主机访问失败

    • 检查虚拟机网络为 NAT 模式
    • 检查 -p 3000:3000 是否配置
    • 临时关闭虚拟机防火墙:sudo ufw disable
  2. WebUI 连不上 Ollama

    • 必须使用 172.17.0.1:11434
    • 确认 ollama serve 正在运行
  3. 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
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐