dsh-plugin-qr-connect:为 DSH Web 添加扫码连接入口

前言

DSH 的理念是「一切皆插件」,Web 端能力也可以通过插件接入。dsh-plugin-qr-connect 是一个 DSH Web 插件:它在侧边栏 Settings 按钮上方添加一个 QR-code 按钮,点击后展示本地网络和公共互联网两个二维码,并通过一个认证反向代理让扫描设备打开 DSH Web UI。

它解决的问题比较具体:当手机端或其他设备需要访问运行在本地的 DSH Web UI 时,可以用扫码方式进入,而不需要直接在网络上暴露无鉴权端口。下面介绍它的功能、安装方式和注意事项。

这是什么

dsh-plugin-qr-connectmervyn-teo 维护的 DSH Web 插件,许可证为 MIT。

它作为持久 bundle 插件包含 host half 与 browser half,并在每次启动时加载。运行后会启动一个认证反向代理子进程,验证 auth secret、发放 session cookie,并转发到 loopback Web UI;WebSocket 升级也被支持,因此手机端可以看到 live updates。

核心功能

下面列出插件提供的能力:

  • 在侧边栏 Settings 按钮上方添加 idqr-connect 的全宽 QR-code 按钮。
  • 打开一个包含本地网络和公共互联网两个二维码的面板,链接中包含 auth secret。
  • 运行认证反向代理子进程,验证 secret、发放会话 cookie,并转发到 loopback Web UI。
  • 支持 secret 自动轮换和 QR 刷新,默认 30 秒;配置为 0 可禁用自动刷新。
  • 点击二维码可复制链接,公共 QR 带有 info tooltip。
  • Settings → Plugins 下提供 QR connect 卡片,用于配置代理端口、会话长度和刷新间隔。
  • 通过 DSH locale service 提供英文和中文 UI。

安装与启用

先安装插件:

dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect

安装后重启 dsh web,因为 host bundles 在启动时加载。

dsh web

典型用法

安装并重启后,可以从界面或配置文件调整行为。

1、从 Settings → Plugins 的 QR connect 卡片调整:

port
sessionDays
refreshSeconds

2、也可以修改 cordis.patch.yml 后重启:

cordis.patch.yml

可修改的配置项包括:

port
sessionDays
refreshSeconds
publicHost

publicHost 可填 hosthost:port 或完整 https:// origin;留空则自动检测。

使用前需要确认网络可达性:

  • 扫描设备必须能访问代理端口。
  • 使用公共 QR 时,还需要 internet reachability,可能需要端口转发。
  • 公共 IP 查找需要 DSH 主机可访问 https://api.ipify.org

适用场景与注意

这个插件适合作为可信网络内的便利工具,不适合当作加固的远程访问层。

需要特别注意:反向代理会向可达该端口的任何人暴露完整 agent shell,仅由 30 秒 secret 和 session cookie 保护。因此建议使用较短会话时长,并只在你信任的网络中使用。

运行要求:

  • DSH 需要挂载 subprocessfswebServer 服务。
  • Settings → Plugins 卡片需要 settings 服务;如果没有该服务,卡片会隐藏,并且编辑仅运行时有效。
  • host half 支持 Windows、macOS 和 Linux。

安装前,建议检查源码和许可证;该插件以当前 dsh 进程权限运行。许可证为 MIT。

相关链接

社区目录页是独立站点,与 DeepSeek / 幻方无官方从属关系,不要把它理解为官方应用商店。

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

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

Xiaoye