tttnny/my-dsh--plugins-dsh-qr-access4

@lynn123411/dsh-qr-access

DSH 扫码访问:设置页实时生成当前实例(DSH Desktop / 任意 dsh)带 token 的访问地址二维码,手机扫码直连,免复制粘贴;Desktop 另附局域网 HTTPS 与本地 CA 证书码,地址实时跟随 DSH 重启后的 token 轮换。

包名
@lynn123411/dsh-qr-access
版本
0.2.0
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:tttnny/my-dsh#46eb212fa958c3fccd76ab644ed83d68bda6fd60&path:plugins/dsh-qr-access

@lynn123411/dsh-qr-access

当前 DSH 实例的浏览器访问地址变成二维码。在设置页新增「扫码访问」分区,实时生成带 token 的访问地址大尺寸二维码——手机相机一扫直达,免复制粘贴、免发消息传 URL。DSH Desktop 与任意 dsh --profile web 实例通用。

访问 token 随每次宿主重启(换代)轮换,本插件不做任何缓存:二维码每次都从当前实例现取,重启后扫到的永远是当前代的最新地址。

特性

  • 扫码直连:二维码编码带 token 的完整访问 URL,手机相机一扫即打开 DSH,免去「电脑复制 → 传到手机」两步。
  • 双数据源,自动选择
    • DSH Desktop(优先):读桌面同源接口 /api/desktop/settings,拿到局域网 HTTPS 地址、局域网状态四态与本地 CA 证书信息;
    • 任意 dsh 实例(兜底):读本插件宿主半区的 GET /api/qr-access/urls,拿到本机回环、局域网(绑定 0.0.0.0 时)、--trusted-host 受信主机与当前页面地址
  • 地址清单点选:当前页面地址 / 本机回环 / 局域网 / 受信主机(隧道·反代)逐条列出,点哪个生成哪个的码;不做网卡猜测,--trusted-host 声明什么就列什么。
  • CA 证书码(Desktop):一键切到「CA 证书」页,扫码直达 .well-known/dsh-desktop-ca.crt 下载页;证书地址按所选主机自动配对,附 SHA-256 指纹与 iOS / Android 信任引导。通用实例无 CA 数据,该页自动隐藏。
  • 实时跟随 token 轮换:面板挂载期间每 30 秒轻量轮询 + 手动「刷新」按钮 + 页面重新可见即刷新,宿主重启后二维码自动变为新地址,无需任何操作。
  • 状态可视化:Desktop 显示局域网 HTTPS「已就绪 / 启动中 / 未启用 / 失败」徽标与错误原因;通用实例显示「可跨设备 / 仅本机」,并直接说明「只监听 127.0.0.1」时手机为何连不上、该怎么起隧道。
  • 安全边界明确:唯一宿主改动是注册一条只读路由,挂在 DSH 自带 /api 前缀下,自动继承 Host/Origin 栅栏与浏览器会话鉴权;只为回环、局域网字面量、--trusted-host 声明项与当前页面 authority 铸 token,响应一律 no-store,不新增端口与凭据面。

安装

dsh plugin --profile web add @lynn123411/dsh-qr-access

限制:DSH 当前版本(0.1.5-rc.1)的 CLI 拒绝 --host 0.0.0.0,所以通用实例只能监听 127.0.0.1,此时二维码只能在这台电脑上打开;跨设备需在本机起隧道 / 反向代理指向 127.0.0.1: ,并用 --trusted-host 声明该地址,插件会自动把它列出来。Desktop 的局域网 HTTPS 不受此限制。本地开发流程见 docs/local-dev.md