open-webui无法链接ollama 报错ERROR:apps.ollama.main:Connection error: Cannot connect
一个问题找了很久,网上没有现成的答案,我来写一个,方便再遇到的人
一、问题
1. ollama是使用官方 curl -fsSL https://ollama.com/install.sh | sh 安装的
2. open-webui是docker启动,docker正常启动,使用github推荐的
# WebUI与ollama在同一台机器:
sudo 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
# WebUI与ollama不在同一台机器:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
# 访问方法:
http://localhost:3000
3. open-webui正常可以访问,但是无法找ollama的的model也无法下载模型,查看open-webui的日志,发现
open-webui无法链接ollama 报错ERROR:apps.ollama.main:Connection error: Cannot connect 127.0.0.1无法访问
二、 问题的原因
ollama服务默认配置启动,只允许127.0.0.1:11434访问,其他跨IP都拒绝
docker里面使用127.0.0.1是访问自己的IP是不会访问到宿主机上来的,所以,怎么改配置都没有用
三、解决办法
1. open-webui使用主机网络,即可
sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
2. 修改启动配置
默认ollama绑定在127.0.0.1的11434端口,修改/etc/systemd/system/ollama.service,在[Service]下添加如下内容,使ollama绑定到0.0.0.0的11434端口
Environment="OLLAMA_HOST=0.0.0.0"
sudo systemctl daemon-reload
sudo systemctl restart ollama