dsh-lan-bridge:为 DeepSeek Harness 手机网页补上 crypto.randomUUID

前言

在 DSH 的插件思路下,一些手机浏览器访问网页 UI 的问题可以通过小插件解决。dsh-lan-bridge 针对的是手机浏览器访问 DeepSeek Harness 网页 UI 时的一个具体报错:

crypto.randomUUID is not a function.

它通过在页面中注入 polyfill,让 DSH 网页 UI 在纯 HTTP 下可用,不要求证书、不要求警告处理、也不要求公网隧道。

这是什么

dsh-lan-bridge 是 Def1ce 维护的 DSH 插件与 LAN bridge,包名为 dsh-lan-bridge,已核实资料给出的版本为 0.2.1,许可证为 MIT,README 说明零依赖。

它解决的问题可以概括为:让手机通过 http:// 访问 DSH 网页时,不再因为 crypto.randomUUID 缺失而无法使用。

核心功能

  1. 作为 DSH 插件安装:插件会把 crypto.randomUUID polyfill 注入 dsh 返回的 index.html,手机可以直接访问 dsh 自身端口,不需要额外进程。
  2. 用更通用的 API 实现补全:基于 crypto.getRandomValues 实现 randomUUID,使纯 HTTP 场景可用。
  3. 降低局域网访问配置成本:0.2.1 起会把 dsh webserver 自动绑定到 0.0.0.0,并将局域网 IP 加入 /api 信任名单。
  4. 提供独立 CLI 代理:bin/dsh-bridge.cjs 可以代理本地 Web 应用,并自动转发 WebSocket 实时通道。
  5. 面向老 iOS 场景:README 说明可在老 iOS 上使用,适合没有 randomUUID 或纯 HTTP 下不可用的浏览器环境。

安装与启用

插件方式推荐先使用带版本号的安装命令,因为资料说明刚发布版本有 pnpm 24 小时闸门:

dsh plugin --profile web add dsh-lan-bridge@0.2.1

如果版本发布超过 24 小时,也可以使用不带版本号的命令:

dsh plugin --profile web add dsh-lan-bridge

安装后重启 dsh,让插件进入 dsh 的页面链路。手机连到同一 WiFi 后,打开 DSH 的本地端口:

http://<电脑局域网IP>:3080

典型用法

插件方式

先安装插件,再重启 DSH,最后从手机浏览器访问 DSH 的 3080 端口。这个方式不需要额外进程,适合只想让 DSH 网页在手机浏览器上正常打开的场景。

独立 CLI 代理

如果你希望代理本地 Web 应用,而不仅是 DSH,可以直接运行项目中的 CLI:

node bin/dsh-bridge.cjs

也可以安装为全局命令:

npm install -g dsh-lan-bridge && dsh-lan-bridge

需要自定义后端或端口时,可以显式指定参数:

dsh-lan-bridge --backend http://127.0.0.1:3080 --http-port 8088

启动后,手机连同一 WiFi,打开:

http://<电脑局域网IP>:8088

在 Windows 下,资料提到可以双击 start.bat 启动 CLI 方式;此时 dsh 需要先在 3080 端口运行。

适用场景与注意

这个插件比较适合在可信局域网内使用:手机、平板和电脑在同一 WiFi 下访问 DSH 网页 UI,尤其是老 iOS 或纯 HTTP 环境。

使用插件方式时,polyfill 注入发生在 dsh 返回页面的链路中;由于 dsh 网页没有登录认证,安装前应检查源码与许可证,并不要把局域网端口直接暴露到公网。

项目资料中说明 package.json 声明 node >= 18。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,可按独立插件来源理解。

结尾

dsh-lan-bridge 的价值比较集中:用一个小的 crypto.randomUUID polyfill,解决 DSH 手机网页在纯 HTTP 下不可用的问题。

GitHub 仓库:

https://github.com/Def1ce/dsh-lan-bridge

已核实资料未提供具体目录页 URL;如需在 DSH 社区目录查找,可按插件名 dsh-lan-bridge 搜索。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye