快速结论:在 Linux 上将 OLLAMA_HOST 设为 0.0.0.0 后,Ollama 仍可能只监听 IPv6(:::11434),此时通过 IPv4 或 Docker 容器内的 IPv4 地址访问会失败。优先排查系统 IPv6 绑定行为(bindv6only)以及 IPv4 端口是否可达。
适用环境:Issue 已确认:Linux、Nvidia GPU、Ollama 0.1.32;后续评论提到 Ollama 0.5.7、0.3.13(Ubuntu snap 安装)仍有类似现象。
最快修复方案:暂无确认的一步修复方案。Issue 中提出“按 OLLAMA_HOST 解析:0.0.0.0 监听 IPv4、:: 监听 IPv6,或默认同时监听 IPv4/IPv6”仅属于建议,未在该 Issue 中验证为代码修复。可优先尝试显式指定 IPv4 地址,或在系统层面关闭 IPv6 后重启 Ollama(该做法来自评论反馈,并非官方修复)。
注意事项:修改 /proc/sys/net/ipv6/bindv6only、systemd BindIPv6Only 或通过 GRUB 永久禁用 IPv6 都会影响整机网络行为,需自行评估风险;这些方法不代表 Ollama 已修复该绑定问题。
问题场景
用户在 Linux 上通过 systemd(如 systemctl edit ollama.service 或 override.conf)设置 OLLAMA_HOST=0.0.0.0,期望 Ollama API 在 11434 端口对 IPv4 提供服务,但 netstat 显示仅存在 tcp6 :::11434 监听。该现象会导致从 Docker 容器(如 Open WebUI)使用 IPv4 访问宿主机 Ollama 时无响应;评论中还出现容器内 curl --ipv6 http://host.docker.internal:11434/api/tags 报 Could not resolve host 的情况。
报错原文
setting OLLAMA_HOST to 0.0.0.0 could make the API to listen on the port using IPv6 only
# netstat -anp | grep 11434
tcp6 0 0 :::11434 :::* LISTEN 5009/ollama
curl: (6) Could not resolve host: host.docker.internal
原因分析
最可能的原因是 Go 网络栈在特定系统配置下对通配地址 0.0.0.0 的处理方式:Issue 引用了 golang/go#48723,并指出当 systemd.socket 设置了 BindIPv6Only,或 /proc/sys/net/ipv6/bindv6only 为 1 时,监听可能只落在 IPv6 上。Issue 正文后也自我修正称:若正确设置 BindIPv6Only,0.0.0.0:11434 应使用 v4,因此该问题是否由系统配置单独导致尚未完全定论。评论中有人建议修改 Ollama 对 OLLAMA_HOST 的解析逻辑,使 0.0.0.0 对应 IPv4、:: 对应 IPv6,或默认双栈监听,但这只是可优先尝试的方向,并非已确认修复。
环境排查
- 确认 Ollama 版本(Issue 为 0.1.32;评论中出现 0.5.7、0.3.13)与安装方式(二进制、systemd、snap 等)。
- 确认
OLLAMA_HOST实际生效值,检查 systemd override、环境变量和启动日志中的监听地址。 - 检查
/proc/sys/net/ipv6/bindv6only的值,以及 systemd socket 是否配置了BindIPv6Only。 - 使用
netstat -anp | grep 11434或ss -lntp | grep 11434确认监听的是0.0.0.0:11434还是:::11434。 - 若涉及 Docker/Open WebUI,分别用 IPv4 与 IPv6 测试宿主机 11434 端口的可达性。
解决步骤
- 先记录当前监听状态:
netstat -anp | grep 11434,确认是否只有tcp6 :::11434。 - 检查系统 IPv6 绑定设置:查看
/proc/sys/net/ipv6/bindv6only,并检查 systemd socket 单元是否设置了BindIPv6Only。若相关配置被启用,可优先尝试恢复为默认/关闭状态后重启 Ollama;此步骤为排查方向,未在 Issue 中确认可修复。 - 尝试在
OLLAMA_HOST中显式使用具体 IPv4 地址而非0.0.0.0,重启服务后观察监听是否变为0.0.0.0:11434;该方法来自问题讨论中的思路,需结合实际网络访问需求评估。 - 若必须临时恢复 IPv4 访问,评论中有人通过 GRUB 永久禁用 IPv6 后使 Ollama 以 IPv4 模式监听;该操作影响整机,仅作为可优先尝试的临时手段,不建议长期使用。
- 若需要从 Docker 容器访问宿主机 Ollama,先在宿主机确认 IPv4 端口可访问,再在容器内用
curl --ipv4 http://host.docker.internal:11434/api/tags验证;IPv6 容器网络需按 Docker 文档单独配置。
验证方法
重启 Ollama 后再次执行 netstat -anp | grep 11434,确认是否出现 tcp 0.0.0.0:11434 监听;在宿主机和容器内分别用 curl --ipv4 http://127.0.0.1:11434/api/tags(或对应宿主机地址)测试 API 是否返回响应。若仍只有 tcp6 :::11434,说明问题未解决。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


