issue: Local terminal integration broken

这个报错通常出现在 Open WebUI 升级到 v0.11.4 后,在聊天中启用了个人设置里的本地 Open Terminal 时。核心问题是 Open WebUI 服务端试图从服务器侧访问只在你本机可达的终端地址(如 localhost:9900 ),导致连接失败;优先确认终端是否被配置为“仅本

快速结论:这个报错通常出现在 Open WebUI 升级到 v0.11.4 后,在聊天中启用了个人设置里的本地 Open Terminal 时。核心问题是 Open WebUI 服务端试图从服务器侧访问只在你本机可达的终端地址(如 localhost:9900),导致连接失败;优先确认终端是否被配置为“仅本机可达”,并临时在聊天中关闭该终端集成。

适用环境:Open WebUI v0.11.4(Docker 安装),Windows 操作系统,Chrome / Open WebUI desktop,Open Terminal v0.11.34(在 Windows 上最后一个可用版本),本地终端地址为 http://localhost:9900。Issue 中未提供 Python、CUDA、PyTorch、显卡信息。

最快修复方案:暂无确认的一步修复方案。Issue 中明确给出两个可优先尝试的临时处理:在聊天中保持该终端集成关闭;或者把终端作为管理员连接,配置为服务器可访问的地址。另有用户反馈把 URL 从 http://localhost:8000 改为 http://127.0.0.1:8000 后可正常工作,但该做法并非对所有环境有效,仅可优先尝试。

注意事项:Issue 最终被作为 #30410 的重复问题关闭,修复位于 PR #30423,但 Issue 元数据中未确认该 PR 已合并或发布的版本。把 localhost 换成 127.0.0.1 只对部分用户有效,且有用户反馈换成 127.0.0.1:9900 后仍失败。管理员连接方式会改变终端暴露范围,请自行评估安全影响。

问题场景

用户在 Docker 中运行 Open WebUI v0.11.4,同时在自己的 Windows 桌面机器上本地运行 Open Terminal(http://localhost:9900)。在 Open WebUI 的 Settings > Integrations 或个人设置中配置该终端后,Files 面板可以正常显示文件和目录,但在聊天中向终端发送命令(例如 List files)时失败。用户发现只有在聊天中关闭终端集成时本地终端才能使用,一旦在聊天中启用就报连接错误。

报错原文

Cannot connect to host localhost:9900 ssl:default [Connect call failed ('127.0.0.1', 9900)]

open_webui.main:process_chat:1688 - Error processing chat payload: Cannot connect to host localhost:9900 ssl:default [Connect call failed ('127.0.0.1', 9900)]

Cannot connect to host localhost:8000 ssl:default [Connect call failed ('127.0.0.1', 8000)]

原因分析

根据 Issue 讨论,最可能的原因是 Open WebUI v0.11.4 新增的 terminal-skill discovery(终端技能发现)会从 Open WebUI 服务端发起请求,去加载个人设置中添加的终端技能。当这个终端地址是你本机桌面上的 localhost:9900,只有你自己的机器能访问,外部服务器无法访问该地址,请求就会失败,并连带导致整条消息处理失败。这也解释了为什么在聊天中关闭终端集成后,Files 面板和终端本身仍然可用——因为此时不会再触发服务端对个人终端的技能发现请求。讨论中另有用户反馈,把地址从 localhost 改为 127.0.0.1 后恢复正常,可能与代理或域名解析差异有关,但这属于环境相关现象,并非统一结论。

环境排查

  • 确认 Open WebUI 版本:是否为 v0.11.4(Issue 中确认的故障版本)。
  • 确认安装方式:Docker(Issue 中确认)。
  • 确认操作系统:Windows(Issue 中确认)。
  • 确认浏览器:Chrome / Open WebUI desktop(Issue 中确认)。
  • 确认 Open Terminal 版本:v0.11.34(Issue 中提到的 Windows 最后可用版本)。
  • 确认终端 URL 配置:是 http://localhost:9900 还是 http://127.0.0.1:9900
  • 确认该终端是在聊天中启用,还是仅在 Settings > Integrations 中启用;Issue 中反馈仅后者启用时可以正常使用。
  • 确认 Open WebUI 服务端所在主机能否直接访问该终端地址;若终端只在本机可达,服务端侧访问必然失败。
  • Issue 中未提供 Python、CUDA、PyTorch、显卡版本信息,无需作为排查项。

解决步骤

  1. 临时规避:在聊天中把该终端集成关闭,保留在 Settings > Integrations 中的配置。Issue 中用户反馈这样终端在本机场景下可以正常使用,因为不会触发服务端对个人终端的技能发现请求。
  2. 可优先尝试替换地址:把终端 URL 中的 localhost 改为 127.0.0.1,例如从 http://localhost:8000 改为 http://127.0.0.1:8000。Issue 中有用户通过该改动恢复正常;但另一用户反馈 127.0.0.1:9900 仍失败,因此该方法仅作优先尝试。
  3. 如果终端是供 Open WebUI 服务端访问的,改为以管理员连接方式添加,并使用服务器侧可以访问到的地址,而不是本机 localhost
  4. 跟踪修复进展:Issue 讨论指出修复位于 PR #30423,Issue 本身被作为 #30410 的重复问题关闭。可在该 PR 合并并发布后再升级验证。

验证方法

在聊天中发送一条简单终端命令(例如 List files),确认不再出现 Cannot connect to host localhost:9900 ... [Connect call failed ('127.0.0.1', 9900)] 类错误,且命令能够正常返回结果。同时确认 Files 面板仍然可以正常显示终端上的文件和目录。若采用关闭聊天终端集成的方式规避,则验证聊天中不再触发终端请求且终端在 Settings 中保持可用。

参考来源

open-webui/open-webui #30341

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25197

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注