🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

手机网页兼容桥 Def1ce/dsh-lan-bridge

DeepSeek Harness
Def1ce80 天前有提交已提供中文文档扫描:未发现敏感能力

让手机浏览器在纯 HTTP 下正常打开网页界面

26.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Def1ce/dsh-lan-bridge
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · ui
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    bin/dsh-bridge.cjs:58
    const proxy = http.request({
  • 发起网络请求
    bin/dsh-bridge.cjs:93
    const proxy = http.request({
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 纯HTTP局域网访问
  • 免证书免代理

修好手机上 DeepSeek Harness 网页界面:注入 crypto.randomUUID 补丁,局域网里走纯 HTTP 就能用,不用证书、不用代理。dsh 插件加命令行,零依赖。

README

由 DeepSeek 最新模型翻译生成
dsh-lan-bridge 修复手机上 DeepSeek Harness 网页界面打不开的问题:注入 crypto.randomUUID polyfill,让 harness 在纯 HTTP 下也能跑——不用证书、没有警告、不用公网隧道,老 iOS 也能用。零依赖。 两种用法: - dsh 插件(推荐):装进 harness,polyfill 由 dsh 自己提供——手机直接打开 dsh 自己的端口,不用额外进程。 - 独立代理(bin/dsh-bridge.cjs):给局域网内任何本地 Web 应用加 polyfill 代理。 | 简体中文 | English | | 中文说明 | English | 中文说明 为什么会有这个项目 用手机访问 dsh 网页界面时会碰到一个隐蔽的坑: crypto.randomUUID is not a function. (In 'crypto.randomUUID()', 'crypto.randomUUID' is undefined) 原因: 1. dsh 前端代码大量调用 crypto.randomUUID()(生成 RPC 消息 ID)。 2. 这个函数只在 HTTPS(或 localhost)安全上下文中存在,普通 http:// 下是 undefined。
展开完整文档(README 剩余 1 节)
dsh-lan-bridge

修复手机上 DeepSeek Harness 网页界面打不开的问题:注入 crypto.randomUUID polyfill,让 harness 在纯 HTTP 下也能跑——不用证书、没有警告、不用公网隧道,老 iOS 也能用。零依赖。

两种用法:
- dsh 插件(推荐):装进 harness,polyfill 由 dsh 自己提供——手机直接打开 dsh 自己的端口,不用额外进程。
- 独立代理(bin/dsh-bridge.cjs):给局域网内任何本地 Web 应用加 polyfill 代理。

| 简体中文 | English |
| 中文说明 | English |

中文说明

为什么会有这个项目

用手机访问 dsh 网页界面时会碰到一个隐蔽的坑:

crypto.randomUUID is not a function. (In 'crypto.randomUUID()', 'crypto.randomUUID' is undefined)

原因:

1. dsh 前端代码大量调用 crypto.randomUUID()(生成 RPC 消息 ID)。
2. 这个函数只在 HTTPS(或 localhost)安全上下文中存在,普通 http:// 下是 undefined。
3. 更糟的是 iOS 15.4 以下的 Safari/浏览器根本没有这个函数,连 HTTPS 都没用。
4. 想补 HTTPS?自签名证书在 iOS Safari 里会直接拒绝打开,连"继续访问"按钮都没有;正式证书又要域名/公网。

于是手机访问陷入死循环:http 打不开功能,https 打不开网页。

解决办法

crypto.getRandomValues() 是所有浏览器、所有环境(包括 http、老 iOS)都有的 API。本项目在 dsh 返回的页面里注入一段极小的 polyfill,用 getRandomValues 实现 randomUUID:

if (typeof crypto === 'object' && crypto && !crypto.randomUUID && crypto.getRandomValues) {
crypto.randomUUID = function () { /* 用 getRandomValues 生成 UUID v4 */ };
}

于是纯 HTTP 就能完整使用 dsh:零证书、零警告、任何浏览器、任何 iOS 版本。

方式一:作为 dsh 插件安装(推荐)

包内 dsh/index.js 是一个 dsh bundle 插件:它通过 webServer.tapIndex 把 polyfill 注入 dsh 自己返回的 index.html。装进 harness 后不需要任何额外进程,手机直接访问 dsh 端口即可。

安装(0.2.1 起自动把 dsh 绑到 0.0.0.0,手机可直接访问)注意:刚发布的版本有 pnpm 24 小时闸门,请用带版本号的命令:
dsh plugin --profile web add dsh-lan-bridge@0.2.1
24 小时后可简写为:dsh plugin --profile web add dsh-lan-bridge

重启 dsh 后生效,手机(同一 WiFi)打开: http://<电脑局域网IP>:3080

0.2.1 起插件的 bundle patch 会把 dsh webserver 自动绑到 0.0.0.0(所有网卡),局域网 IP 由 dsh 自动加入 /api 信任名单——装完即可用,无需手动改配置。⚠️ dsh 界面无登录认证,请只在可信局域网使用。

方式二:独立 CLI 代理(适用于任何本地 Web 应用)

本地直接运行(无需安装,默认代理 127.0.0.1:3080)
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

例:http://192.168.1.100:8088 —— 直接可用,无需任何设置(WebSocket 实时通道已自动转发)。

获取电脑局域网 IP:Windows 运行 ipconfig,找"IPv4 地址"。

一键启动(Windows,CLI 方式)

解压后双击根目录 start.bat(会自动定位到自身目录,从任何位置双击都不会报"找不到路径")。dsh 需先在 3080 端口运行。

CLI 参数

| 参数 | 说明 | 默认 |
| --backend <url> | 要代理的后端 | http://127.0.0.1:3080 |
| --http-port <n> | 监听端口 | 8088 |
| --host <addr> | 绑定地址 | 0.0.0.0 |
| --help, -h | 帮助 | |

安全提醒

- dsh 网页没有登录认证。本工具只适合在可信局域网内使用。
- 请不要把局域网端口直接暴露到公网(没有认证 = 控制权)。

许可证

MIT

Why this exists

Accessing the DeepSeek Harness web UI from a phone hits a nasty trap:

crypto.randomUUID is not a function

- harness 客户端会调用 crypto.randomUUID() 生成 RPC/消息 id。
- 这个函数只存在于安全上下文(HTTPS 或 localhost);在纯 http:// 下它是 undefined。
- 更糟的是,15.4 之前的 Safari/iOS 根本没有这个函数——即使走 HTTPS 也没有。
- 用自签名证书加 HTTPS 在 iOS Safari 上没用,它会直接拦掉无效证书,连「仍然继续」按钮都不给;要用受信任的证书,得有真实域名/公网环境。

所以手机就卡住了:http 让应用崩,https 让页面打不开。

修复方案

crypto.getRandomValues() 到处都有(http、老 iOS、任何浏览器)。本项目注入一个很小的 polyfill,在它之上实现 randomUUID,这样 UI 在纯 HTTP 下也能跑。

方式 1:作为 dsh 插件安装(推荐)

dsh/index.js 是 dsh bundle 插件,用 webServer.tapIndex 把 polyfill 注入 harness 自己的 index.html——不用额外进程,手机直接开 dsh 自己的端口。

dsh plugin --profile web add dsh-lan-bridge # or: add /path/to/dsh-lan-bridge
restart dsh, then on a phone on the same Wi-Fi:
http://<your-lan-ip>:3080

方式 2:独立命令行代理(任何本地 Web 应用)

node bin/dsh-bridge.cjs # default backend :3080
or
npm install -g dsh-lan-bridge && dsh-lan-bridge
dsh-lan-bridge --backend http://127.0.0.1:3080 --http-port 8088

然后在同一 Wi-Fi 下的手机上打开 http://<your-lan-ip>:8088——完全不用配置。WebSocket 流会自动转发。用 ipconfig / ip addr 查你的局域网 IP。

在 Windows 上,双击 start.bat 进入命令行模式(dsh 必须已经在 3080 上运行)。

安全提示

harness UI 没有身份验证。只在可信局域网里用,不要把局域网端口暴露到公网。

许可证

MIT
预览分享卡片长什么样 ↓Def1ce/dsh-lan-bridge
分享 · DeepSeek Harness Hub
Def1ce/dsh-lan-bridge

让手机浏览器在纯 HTTP 下正常打开网页界面

这是你的仓库?认领条目

回到顶部