ragflow连接ollama出现failed to connect to ollama问题解决
·
问题描述截图:

在服务器上部署ragflow后,尝试添加ollama模型,输入url后却显示failed to connect to ollama.
背景描述:
ollama是部署在服务器的主机上了,未通过docker容器部署。而ragflow则是通过docker容器进行部署的。(此处加深自己对docker容器的理解,docker容器实际上可以看作一个“被隔离的进程组”,它在用户体验上非常像一台独立主机,但本质上仍然是共享主机内核的进程集合,而不是真正独立的操作系统实例。)
问题在于,Ollama 默认只绑定到 127.0.0.1(本地回环接口),容器无法从 Docker 网络访问(即使解析对了,也会拒绝连接)。
查看ollama监听的所有地址,发现其实只监听了自己:只有主机上的进程可以访问,其他从 Docker 容器、从局域网其他电脑、甚至从主机上的其他网络接口都连不上

所以
- 主机上你自己 curl http://127.0.0.1:11434 → 成功(因为是本机)。
- RAGFlow 容器里 curl http://host.docker.internal:11434 或网关 IP → 失败(Connection refused),因为容器不是“本机回环”,Ollama 直接拒绝。
另外,ragflow官网教程上部署ollama连接中使用到了,host.docker.internal ,但这个域名在原生 Linux Docker 中默认不工作(它主要是 Mac/Windows Docker Desktop 的特性)。
解决方法:
明确了问题,最直接简单的解决方法则是让ollama绑定到所有接口(0.0.0.0)
export OLLAMA_HOST=0.0.0.0:11434 # 让它监听所有 IP
ollama serve # 前台运行,或者后台 &
xxx:~$ ss -tunlp | grep 11434
tcp LISTEN 0 4096 *:11434 *:*
之后可以看到监听接口已经有所变化。
之后再进入ragflow容器内部,在容器内部找到主机的网关 IP
docker exec -it ragflow-server bash
ip route | grep default
输出类似:
default via 172.17.0.1 dev eth0 ...
之后再返回ragflow页面设置ollama base url即可。
更多推荐


所有评论(0)