dsh-lan-pass:局域网密码门禁

前言

DSH 提供了本地 Web UI(通常监听 3080 端口)。在局域网内通过手机或平板访问这个 UI,通常需要配置反向代理或端口转发。dsh-lan-pass 插件提供了一个简单的密码门禁方案,让设备在同一个局域网下通过密码直接访问本机的 DSH Web UI。

插件简介

这是一个客户端插件。它通过密码验证机制,允许手机或平板在同一局域网内访问本机(localhost/127.0.0.1)的 DSH Web UI。由于共享同一后端,会话和输入输出与电脑实时同步。插件内置了 crypto.randomUUID polyfill,用于处理 HTTP 非安全上下文。

安装

dsh plugin --profile web add link:/path/to/lan-pass

配置与启动

安装后默认密钥为 deepseekyyds。由于该密钥是公开的,存在安全风险,建议尽快修改。

修改方式有两种:
1. 设置环境变量 DSH_LAN_PASSWORD。
2. 编辑 %USERPROFILE%\.dsh\.credentials.yaml,添加:

DSH_LAN_PASSWORD: 你的新密钥

修改后需重启 dsh。

启动 DSH Web 服务时,必须指定监听地址:

dsh web --host 0.0.0.0

同时需要在防火墙中放行 TCP 端口 3080:

netsh advfirewall firewall add rule name="DSH Web 3080" dir=in action=allow protocol=TCP localport=3080

随后在手机浏览器中访问 http://<电脑局域网IP>:3080,输入密钥即可进入 UI。

安全边界

门禁校验在服务端完成,Cookie 为 HMAC 令牌且标记为 HttpOnly。

但插件未在 webServer 上添加全局中间件。理论上,未通过 UI 认证的设备仍可直接请求 /api/* 接口。
请注意:
1. 仅建议在可信的家庭局域网使用。
2. 密钥通过明文 HTTP 传输,请勿使用重要密码,建议使用 8 位以上随机字符串。
3. 跨不可信网络请使用反向代理方案(如 dsh-mobile-gate + HTTPS)。

许可证

MIT

参考资料

详见插件目录:dsh-lan-pass
源码地址:GitHub

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

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

小夜