前言¶
在 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 缺失而无法使用。
核心功能¶
- 作为 DSH 插件安装:插件会把
crypto.randomUUIDpolyfill 注入 dsh 返回的index.html,手机可以直接访问 dsh 自身端口,不需要额外进程。 - 用更通用的 API 实现补全:基于
crypto.getRandomValues实现randomUUID,使纯 HTTP 场景可用。 - 降低局域网访问配置成本:0.2.1 起会把 dsh webserver 自动绑定到
0.0.0.0,并将局域网 IP 加入/api信任名单。 - 提供独立 CLI 代理:
bin/dsh-bridge.cjs可以代理本地 Web 应用,并自动转发 WebSocket 实时通道。 - 面向老 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 搜索。