DeepSeek Harness 远程控制插件

前言

DSH(DeepSeek Harness)采用插件化架构,默认以本地模式运行。在开发调试或演示场景下,有时需要在手机端预览 WebUI 效果。由于 DSH 默认不开放局域网访问,直接通过浏览器访问本地端口通常受限于安全策略或网络隔离。下面介绍 hw-cola/dsh-remote-control 插件,它通过反向代理和二维码授权机制,将本地 DSH WebUI 暴露给局域网设备。

简介

这是一个 DSH 客户端插件,用于手机远程控制。

由 hw-cola 维护,基于 MIT 协议开源。插件通过启动一个独立的 Node 子进程监听局域网端口,将流量转发到本地 DSH 服务。核心功能是在设置面板增加「远程控制」页,支持自动探测局域网 IP、生成二维码、扫码验签以及设备白名单管理。

核心功能

设置面板与局域网探测

安装后,DSH 设置面板会新增「远程控制」页(仅电脑端显示)。

  1. 开启开关:点击「允许局域网访问」开关,插件会自动探测并列出本机的局域网 IPv4 地址。
  2. 多网卡切换:当存在多个网卡时,用户可以在列表中切换选中的 IP 地址。
  3. 二维码生成:二维码随选中地址实时生成。插件内置纯 JS QR 编码器(Byte 模式、ECC-M、版本 1~10),无第三方依赖,支持离线使用。
  4. 自动刷新:二维码每 60 秒自动刷新,旧码立即失效,防止中间人重放攻击。

扫码验签与安全拦截

为了防止未授权的局域网访问,插件实现了严格的验签机制。

  1. 扫码授权:非本机来源(非 127.0.0.1 或 localhost)访问必须先扫码。二维码 URL 携带一次性验签 token(?rcnt_t=<token>)。Token 校验通过后,服务端会签发 rcnt_auth Cookie 并跳转到干净地址。
  2. Cookie 有效期:已授权设备凭 Cookie 持续访问,最长有效期为 7 天。
  3. 403 拦截:未授权直接访问会返回 403 提示页,且插件会拦截 WebSocket 握手,确保无法建立连接。
  4. 本机访问:本机使用 localhost 或 127.0.0.1 访问不受影响,直连 DSH;本机使用局域网 IP 访问同样需要扫码(因为来源非回环,属于「非本机」访问)。
  5. 白名单机制:支持最多 32 台设备的白名单管理。白名单持久化在 ~/.dsh/remote-control/devices.json。显示设备名(按 User-Agent 解析)、IP、授权与最近活跃时间,支持单独移除。

代理与兼容性处理

  1. 反向代理:独立 Node 子进程监听 0.0.0.0:<端口>,将请求转发到 127.0.0.1:<端口>,并将 Host/Origin 头改写为回环地址,以绕过 DSH 的浏览器信任篱笆。
  2. 非安全上下文:手机访问通常处于非安全上下文(HTTP),crypto.randomUUID 不可用。代理会在 HTML 响应中自动注入 polyfill。
  3. Windows 防火墙:在 Windows 下,开启时会自动创建并复用名为「DSH Remote Control」的入站 TCP 规则,无需手动配置。

安装与启用

安装命令

安装依赖 pnpm 和 DSH 后,执行以下命令:

dsh plugin --profile web add "git+https://github.com/hw-cola/dsh-remote-control.git"

若需钉到指定版本:

dsh plugin --profile web add "git+https://github.com/hw-cola/dsh-remote-control.git#v1.0.0"

本地开发模式:

dsh plugin --profile web add "link:${PATH}/dsh-remote-control"

启动与刷新

安装完成后,必须重启 dsh web 以便插件的 cordis 补丁层生效。随后刷新浏览器页面,设置面板中即可看到「远程控制」页。

注意事项

  1. 安全性:通信仍是 HTTP 明文,同网段可嗅探 token 或 Cookie。已授权设备之间等价共享访问权。DSH WebUI 本身无登录认证,请仅在可信网络中使用,用毕务必关闭开关。
  2. 数据持久化:开关状态仅存于宿主进程内存,重启 dsh 后默认关闭;但设备白名单持久化在 ~/.dsh/remote-control/devices.json,重启后已授权设备免重新扫码。
  3. 卸载清理:卸载会终止代理子进程。设备白名单文件不会自动删除,需要时请手动清理该文件。
  4. 兼容性:插件在 DSH 0.1.1-rc.2 上开发测试。客户端 API 仍在迭代,大版本升级后若功能异常,请检查仓库是否有适配版本。

总结

该插件解决了 DSH 本地开发中无法在手机端直接访问的问题。通过扫码授权和二维码刷新机制,在提供便利的同时限制了未授权访问。使用时需注意网络环境的安全性与白名单文件的管理。

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

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

小夜