快速结论:在 Windows 10 上执行 open-computer.cmd up agent 后,SSH 能连上虚拟机,但访问桌面端 http://localhost:9800 报 ERR_CONNECTION_RESET,通常是因为虚拟机内运行的 interface-service 启动时崩溃,导致 9800 端口没有任何进程监听。优先检查该服务是否因缺少 express 模块而启动失败。
适用环境:AnythingLLM 的 open-computer agent;Windows 10 宿主机;VM 内为 Debian(内核 6.12.95+deb13-amd64);Node.js v22.23.1;通过 SSH 端口 2222 访问,桌面端口 9800。
最快修复方案:把 agent 切回 prod(非 dev)模式重建:open-computer destroy agent 后执行 open-computer create agent。
注意事项:Issue 中说明这属于环境相关问题,dev 模式的依赖要求后续会在文档中说明。如果重建后的全新非 dev agent 仍无法在 9800 提供桌面,作者建议带上新 agent 的 journalctl -u open-computer.service -b 输出重新开启 Issue。
问题场景
用户在 Windows 10 宿主机上运行 AnythingLLM 的 open-computer 工具,执行 open-computer.cmd up agent(或日志中显示的 open-computer up agent)启动 agent。启动完成后,使用 ssh -p 2222 agent@localhost 可以正常登录 Debian 虚拟机,但用 Chrome 访问桌面端 http://localhost:9800 时无法打开页面。
报错原文
This site can’t be reached
The connection was reset.
ERR_CONNECTION_RESET
Problems Found: The device or resource (localhost) is not setup to accept connections on port "9800"
[node] app crashed - waiting for file changes before starting...
Error: Cannot find module 'express'
code: 'MODULE_NOT_FOUND',
requireStack: [ '/opt/open-computer/interface-service/index.js' ]
原因分析
根据 Issue 讨论,最可能的原因是:虚拟机在运行原始源码 /opt/open-computer/interface-service/index.js,而不是正常构建产物 interface-service.cjs。这份源码只有在 dev 模式下才会进入虚拟机——在 Windows x64 上,up/create --dev 会通过 SCP 把本地 services/ 目录复制进虚拟机,日志中那批 restarting due to changes 就是这次复制。
如果宿主机上从未在 services/interface-service 目录执行过 npm install,就没有 node_modules,interface service 启动时因找不到 express 模块而崩溃,于是 9800 端口后面没有任何服务监听,浏览器连接被重置并报 ERR_CONNECTION_RESET。此外,这些文件一旦被复制,就会留在 agent 磁盘上,之后即使是非 dev 的 up 也会继续使用它们。
环境排查
- 确认宿主机是 Windows 10 x64,且使用的命令是
up还是up --dev。 - 确认虚拟机内 Node.js 版本(Issue 中为 v22.23.1)以及 open-computer.service 的运行状态。
- 在 VM 内执行
sudo lsof -i -P -n | grep LISTEN,确认 9800 端口是否有进程监听。 - 执行
sudo systemctl status open-computer与journalctl -u open-computer.service -b,查看是否出现Cannot find module 'express'、MODULE_NOT_FOUND或app crashed。 - 确认宿主机
services/interface-service目录下是否存在node_modules(是否跑过npm install)。 - 确认是否曾用 dev 模式启动过 agent,导致源码残留。
解决步骤
- 优先尝试(推荐,prod 模式):销毁并重建 agent,使其使用正常构建产物而不是残留的 dev 源码。
open-computer destroy agent open-computer create agent - 如果确实需要 dev 模式:先在宿主机安装服务依赖,再用
--dev启动。cd services\interface-service npm install cd .... open-computer up agent --dev - 重建或重新启动后,等待服务完成初始化,再访问
http://localhost:9800。 - 若问题依旧,从新 agent 收集日志:
journalctl -u open-computer.service -b,并向项目反馈。
验证方法
重建后的 agent 启动完成后,在 VM 内运行 sudo lsof -i -P -n | grep LISTEN,应能看到有进程在 9800 端口监听;同时在 Windows 10 宿主机用 Chrome 访问 http://localhost:9800,不再出现 ERR_CONNECTION_RESET,桌面可以正常打开。若仍报相同错误,则说明需要按上一步收集日志进一步排查。
参考来源
Mintplex-Labs/anything-llm #6487
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


