Replies: 4 comments
补充证据:WebSocket 层(已深入验证)在代理层做了底层验证,确认网络/代理/DSH 服务端全部正常,问题定位在前端 boot 时的 WebSocket 连接: 验证结果
关键现象
建议排查点(前端)
完整证据链与复现步骤见 dsh-remote 仓库 |
已找到解决方案(供参考)问题已通过网络层方案解决,前端无需改动:
供排查参考:非 loopback 下前端 boot 的 WebSocket( 完整方案与验证脚本见 dsh-remote 仓库( |
补充:DSH 开发版(源码 checkout)insert 插件 inject 丢失在源码 checkout(
环境:macOS、Node 22.22.1、 |
|
Reproduced end-to-end on rc.6. Every observation in the OP checks out. Why (mechanism, not just symptom). The static frontend loads unconditionally ( Fix today. Reach the server at 127.0.0.1 / localhost / [::1]. To detect it: Fix upstream (small). Either (a) inject a warning banner into the served HTML when the request Host is non-loopback, or (b) accept loopback-alias equivalence at the Origin check. (a) is safer. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
问题描述
DeepSeek Harness Web GUI 通过反向代理以非 localhost 地址(如局域网 IP
http://192.168.31.234:4096或公网域名)访问时,前端数据层静默不启动:host.describe从未发出(connection.start()就绪握手缺失);/api/events.mux、/api/events.hostWebSocket 从未建立;session.list/workspace.list等业务 API 全部未发出;dynamicCordisRunner/inventory正常返回,但激活在 runtime 服务(connection.start)之前中止。以
http://localhost:4096或http://127.0.0.1:4096(loopback)访问同一代理、同一 DSH 服务、同一浏览器时完全正常:自动选择工作区、会话列表加载、会话恢复。复现步骤
dsh web,默认127.0.0.1:3080)通过任意反向代理暴露为:http://127.0.0.1:4096/http://<本机局域网IP>:4096/(如http://192.168.31.234:4096/)host.describe与events.mux/events.hostWebSocket 不出现;host.describe与两条 WebSocket 正常建立,应用完整启动。期望行为
--trusted-host(声明远程 authority),浏览器端应相应放行该 authority 的前端数据层。排查补充(供参考)
Host与Origin至 loopback 目标,/apiHost fence、特权方法(settings.describe等)、SSE(/plugins/events)、WebSocket 全部手动验证可达且通过;location.hostname(loopback vs 非 loopback);location.hostname无效(属性不可重定义);connection.isLoopback(isLoopbackHostname(location.hostname))在非 loopback 下为false,其使用方(settings 存 memory、文件打开、deliverables)均为功能降级,未见阻止启动的分支;dsh-cordis-client-runner的激活流程(dynamicCordisRunner/inventory之后)增加错误日志,定位非 loopback 下中断的异步步骤。环境
dsh web(rev 见页面__DSH_BOOT__)目的是通过代理服务支持手机访问DSH
All reactions