Ollama 本地部署入门:从安装模型到局域网访问完整流程
本文从 Ollama 安装、模型拉取、Open WebUI Docker 部署到局域网访问,完整演示本地大模型页面搭建流程,并补充临时公网访问方案。
Ollama 本地部署入门:从安装模型到局域网访问完整流程

本地跑大模型这件事,最容易卡住的不是“模型怎么用”,而是链路怎么打通:Ollama 已经跑起来了,命令行也能对话,但手机、平板、另一台电脑就是打不开一个像样的聊天页面。
这篇直接按实操来走:用 Ollama 拉取模型,用 Open WebUI 做网页聊天入口,再把页面开放给局域网设备访问。全程不绕远路,适合放在家用服务器、办公室小主机、NAS 旁边那台 Linux 机器上跑。文章默认你有一台能长期在线的 Linux 机器,想先把本地 AI 页面跑起来,再考虑给其他设备访问。

图1:局域网设备访问 Open WebUI,Open WebUI 再调用宿主机上的 Ollama API 和本地模型。
1 什么是 Ollama 和 Open WebUI?
Ollama 在这套方案里负责两件事:下载模型、提供本地推理服务。安装完成后,它默认在本机的 11434 端口提供 API,命令行里执行 ollama run 就能直接和模型对话。
Open WebUI 负责把这个能力变成网页。它本身不替代 Ollama 推理,而是连到 Ollama API,然后提供账号、聊天记录、模型选择、页面对话这些更顺手的功能。
这篇用的结构很简单:
- Ollama:模型运行层
- Open WebUI:浏览器访问层
- 局域网设备:手机、平板、其他电脑访问 Open WebUI 页面
- cpolar:放在扩展章节,只处理临时公网访问场景
这里先提醒一句:不要一上来就折腾公网访问。先把本机和局域网跑通,后面排错会轻松很多。
2 环境准备:确认系统、Docker 和端口
这篇主线以 Ubuntu / Debian 系 Linux 为例。macOS 和 Windows 也能安装 Ollama,但家用服务器、云桌面旁边的小主机、长期运行的开发机,用 Linux 更稳。
开始前先确认机器上有 curl 和 Docker:
curl --version
docker --version
如果 Docker 没安装,Ubuntu 可以用官方仓库安装。已经装好 Docker 的机器,直接跳过这段。
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
装完后检查 Docker 服务:
sudo systemctl status docker --no-pager
sudo docker run --rm hello-world
执行到 hello-world 时,只要终端能看到 Docker 返回的成功提示,就说明 Docker 引擎已经可以正常拉取镜像并运行容器。
这里别急着改防火墙。后面 Open WebUI 会用到 3000 端口,Ollama 默认用 11434 端口。局域网访问只需要放行 Open WebUI 的 3000,不要把 Ollama API 暴露给不需要访问的设备。
3 安装 Ollama 并启动本地服务
Ollama 官方 Linux 安装命令是一行脚本:
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,查看版本:
ollama -v
Linux 安装脚本会配置系统服务。确认服务状态:
sudo systemctl status ollama --no-pager
如果状态里看到 active (running),说明 Ollama 服务已经在后台运行。再用本机 API 测一下:
curl http://127.0.0.1:11434/api/tags
新机器还没拉模型时,返回的模型列表是空的,这个结果正常。这里的目的不是测试回答质量,而是确认 11434 端口已经有服务响应。
确认服务状态时,重点看 Active: active (running) 和监听端口是否正常;如果服务没有启动,再回到安装日志排查。
3.1 让 Docker 容器能访问 Ollama
Open WebUI 运行在 Docker 容器里,它要访问宿主机上的 Ollama。Linux 环境下建议把 Ollama 监听地址改成 0.0.0.0:11434,再用 Docker 的 host.docker.internal 指向宿主机。
执行:
sudo systemctl edit ollama
在打开的编辑器里写入下面内容:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
保存退出后重载并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl status ollama --no-pager
这一步容易填错。Environment 这一行要放在 [Service] 下面,双引号不要漏。如果重启失败,先执行下面命令看日志:
journalctl -e -u ollama
安全提醒也放在这里:11434 是 Ollama API 端口,局域网里自己用够了,不要把它直接映射到公网。后面给外部设备访问时,只开放 Open WebUI 页面。
4 拉取模型并在命令行完成第一次对话
Ollama 模型库里有很多模型。入门建议先选体积较小、下载更快的模型,例如 llama3.2。先把链路跑通,比一上来追求大模型更省时间。
拉取并运行:
ollama run llama3.2
第一次执行会自动下载模型文件。下载完成后,终端会进入对话界面,可以直接输入一句中文测试:
用三句话介绍一下 Ollama 适合做什么。
退出对话界面输入:
/bye
查看本机已经下载的模型:
ollama list
查看正在内存中的模型:
ollama ps
ollama list 能看到 llama3.2 后,说明模型文件已经下载到本机;后续 Open WebUI 也会从这里读取可用模型。
如果 ollama run llama3.2 下载很慢,先检查当前机器能不能正常访问模型源。不要反复删除重装 Ollama,安装成功和模型下载速度是两件事。
5 使用 Docker 部署 Open WebUI
命令行能对话之后,就可以加网页入口了。Open WebUI 官方提供 Docker 镜像,标准容器内部端口是 8080,这里映射到宿主机的 3000。
执行下面命令启动:
sudo docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
这条命令使用了 sudo docker,适合刚装好 Docker、还没把当前用户加入 docker 用户组的机器。如果你的账号已经能直接执行 docker ps,也可以去掉 sudo。
这条命令里有几个点别填错:
-p 3000:8080:浏览器访问宿主机的3000,容器内部仍然是8080OLLAMA_BASE_URL:告诉 Open WebUI 去哪里找 Ollama-v open-webui:/app/backend/data:保存账号、配置和聊天数据,删容器后数据还在--restart always:机器重启后自动拉起容器
启动后看容器状态:
sudo docker ps --filter name=open-webui
再看日志:
sudo docker logs --tail 80 open-webui
本机浏览器打开:
http://127.0.0.1:3000
第一次进入页面会创建管理员账号。这个账号是本地 Open WebUI 的管理账号,建议密码别用简单字符串,尤其后面要做局域网或临时公网访问时更要认真设置。
第一次打开 Open WebUI 时会进入管理员账号创建页面,完成后再选择模型开始对话测试。
5.1 重启和更新 Open WebUI
日常使用时,Open WebUI 不需要每次手动启动。前面加了 --restart always,机器重启后 Docker 会自动拉起容器。想手动重启,执行:
sudo docker restart open-webui
想更新到最新镜像,可以先拉取新镜像,再重建容器。注意,这里不要删除 open-webui 数据卷,聊天记录和本地配置都在这个卷里。
sudo docker pull ghcr.io/open-webui/open-webui:main
sudo docker rm -f open-webui
sudo docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
这里别顺手执行 docker volume rm open-webui。那是清空数据卷的命令,只有确定要重置 Open WebUI 时才用。
如果页面打不开,按这个顺序查:
sudo docker ps --filter name=open-webui
sudo ss -lntp | grep 3000
curl -I http://127.0.0.1:3000
docker ps 看容器是否运行,ss 看端口是否监听,curl 看本机能不能访问页面。三步分开查,比盲目重启容器更快。
6 在 Open WebUI 中连接模型并完成页面测试
进入 Open WebUI 后,页面里应该能看到 Ollama 中已经拉取的模型,比如 llama3.2。选择模型,发一条简单消息:
请用项目 README 的口吻,写一段 80 字以内的 Ollama 本地部署说明。
这一步不是为了测试模型文采,而是确认 Open WebUI → Ollama → 模型推理 → Open WebUI 返回结果这条链路已经打通。

图2:Open WebUI 容器通过 OLLAMA_BASE_URL 连接宿主机 Ollama,页面里选择 llama3.2 后即可完成对话测试。
如果页面能打开,但模型列表为空,优先查 Open WebUI 到 Ollama 的连接:
sudo docker exec open-webui sh -c 'wget -qO- http://host.docker.internal:11434/api/tags || true'
能看到 JSON 返回,说明容器能访问 Ollama。看不到返回时,回到第 3 节检查 OLLAMA_HOST 和服务重启情况。
如果命令提示容器里没有 wget,换成看 Open WebUI 日志:
sudo docker logs --tail 120 open-webui
日志里出现连接 Ollama 失败时,重点检查 OLLAMA_BASE_URL 是否写成了 http://host.docker.internal:11434。这里别写 localhost,容器里的 localhost 指的是容器自己,不是宿主机。
7 开启局域网访问:手机和平板也能打开
本机页面跑通后,再开放给局域网设备。先查这台机器的局域网 IP:
ip addr show
常见地址长这样:
192.168.1.23
10.0.0.15
在同一个 Wi-Fi 下,用手机或另一台电脑访问:
http://192.168.1.23:3000
把这里的 IP 换成你自己机器的局域网地址。这里测手机很有价值,因为它能帮你确认“不是只有本机能打开”。如果手机页面能进、也能正常对话,说明 Open WebUI 端口、防火墙、Ollama 连接都已经过了一遍。
手机或平板访问时,地址栏使用 http://局域网IP:3000。如果本机能打开但手机打不开,优先检查防火墙和是否在同一个 Wi-Fi 网段。
如果本机能打开,手机打不开,按这个顺序查:
sudo ss -lntp | grep 3000
sudo ufw status
Ubuntu 开了 UFW 防火墙时,放行 3000/tcp:
sudo ufw allow 3000/tcp
sudo ufw reload
sudo ufw status
还有一个很常见的坑:手机和服务器不在同一个网段。比如手机连了访客 Wi-Fi,服务器在主 Wi-Fi,页面就访问不到。先确认两个设备拿到的 IP 前三段一致,比如都是 192.168.1.x。
如果你只是自己在家里用,到这里就够了。Open WebUI 页面在局域网内访问,模型和聊天数据都留在自己的机器上,日常测试、写代码辅助、资料整理都能覆盖。
8 可选扩展:没有公网 IP 时临时访问 Open WebUI
人在外面想临时打开家里 Open WebUI 页面时,很多家庭宽带没有公网 IP,路由器端口转发也不好维护。这种场景可以用 cpolar 临时生成一个 HTTPS 访问地址,把本机 3000 端口映射出去。
注意,这一节是扩展方案,不影响前面的本地部署。建议只在临时演示、短时间远程访问时开启,并且给 Open WebUI 设置强密码。
Linux 安装 cpolar:
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
macOS 可以用 Homebrew:
brew tap probezy/core && brew install cpolar
sudo cpolar service install
sudo cpolar service start
安装后打开本地管理页面:
http://127.0.0.1:9200
登录账号后,创建一个 HTTP 隧道指向 Open WebUI 的 3000 端口。也可以直接用命令行启动临时隧道:
cpolar http 3000
运行后,终端会显示公网访问地址。把生成的 HTTPS 地址复制到浏览器,就能访问本机 Open WebUI 页面。
cpolar 隧道创建完成后,列表里会出现指向本机 3000 端口的公网 HTTPS 地址;只在临时演示或短时间远程访问时开启即可。
这里有两条提醒:
- 免费随机地址会变化,适合临时访问和演示;固定二级子域名需要基础套餐或以上
- 不要把没有密码保护的管理后台长期暴露出去,用完就关闭隧道
如果公网地址打开后页面能显示,但对话没有返回,先回服务器本机确认 http://127.0.0.1:3000 正常,再检查 Open WebUI 容器日志。公网访问只是多了一层入口,核心链路仍然是 Open WebUI 连接本机 Ollama。
9 总结
到这里,一套能实际使用的本地大模型页面已经搭起来了:Ollama 负责下载和运行模型,Open WebUI 提供网页聊天入口,同一个局域网里的手机、平板、电脑都能通过 http://局域网IP:3000 访问。
这套流程里最关键的是三步:
- 先用
ollama run llama3.2确认模型能在命令行跑起来 - 再用 Docker 启动 Open WebUI,并把
OLLAMA_BASE_URL指向宿主机 Ollama - 本机页面跑通后,再开放局域网端口;有临时远程访问需求时,再映射
3000端口
后面要扩展也很顺:想换模型,就继续 ollama run 拉取新模型;想给家里多台设备用,就保持 Open WebUI 容器常驻;想临时在外面访问,就短时间开启隧道。别一开始就把所有功能堆上去,先让链路稳定,比什么都重要。
更多推荐




所有评论(0)