DeepSeek Harness 移动端访问插件:PC 审批门禁与网络自动识别

前言

DeepSeek Harness 的 Web 服务器出于安全设计只绑定 127.0.0.1,且官方禁止使用 --host 0.0.0.0。这导致开发者无法直接从局域网或公网访问 GUI。dsh-mobile-access 插件通过在 PC 端运行网关代理,填补了这一空白。它不仅实现了端口转发,还内置了 PC 端审批门禁与网络环境自动识别功能,确保移动端访问的安全性。

核心功能

  • PC 端审批门禁:手机设备首次访问必须由 PC 端批准。支持批准、拒绝、撤销、恢复、删除以及“取消授权并删除”操作。
  • 网络环境自动识别:自动识别访问来源为局域网(LAN)、VPN 或公网直连。网络环境变化时,手机端会弹窗询问是否切换模式。
  • 外网安全访问:公网直连时会提示改用 Tailscale 或 ZeroTier。PC 端面板可开启“禁止公网直连”策略,强制拦截公网来源的设备。
  • 实时状态同步与转发:PC 端“当前会话”自动同步到手机端,且支持 WebSocket 实时转发(/api/events.mux、/api/events.host)。
  • 移动端适配:自动适配移动端 UI,主题跟随 DSH 主题 token(支持深色/浅色及第三方皮肤),输入栏工具区与操作区自动分行。

安装与启用

本插件是静态插件包,随 DSH 启动自动加载。安装后无需每次重启重新部署。

执行以下命令安装:

# 方式一:本地安装
dsh plugin --profile web add dsh-mobile-access

# 方式二:从 GitHub 安装(锁定版本 v1.0.5)
dsh plugin --profile web add dsh-mobile-access@github:TongaiLinC/dsh-mobile-access#v1.0.5

安装后,重启 DSH。启动成功后,PC 页面右下角会出现一个蓝色“📱”悬浮按钮。

使用流程

1. 启动网关(PC 端)

点击右下角的“📱”按钮打开移动端访问面板,点击 “启动网关”。

该网关默认监听 0.0.0.0:3081。如果使用 Windows 系统,首次启动时请允许防火墙放行该端口的入站连接。

2. 访问与扫码(手机端)

  • 局域网访问:手机连接同一 Wi-Fi,使用相机或微信扫描 PC 面板上的二维码,或直接在浏览器输入 http://<PC局域网IP>:3081。
  • 公网访问:建议使用 Tailscale 或 ZeroTier 等工具建立 VPN 隧道后,通过 VPN 地址访问。

3. 首次审批

手机首次访问会进入门禁页面。给设备命名并提交申请后,PC 端面板的“设备审批”区会出现该设备。点击 “批准” 后,手机端约 3 秒内会自动放行进入 GUI。

4. 设备与策略管理(PC 端)

  • 设备管理:在 PC 面板中,你可以对设备执行批准、拒绝、撤销、恢复或删除操作。
  • 安全策略:开启“禁止公网直连”策略后,所有来自公网的设备请求将被强制拦截,必须走 VPN 访问。

注意事项

  • 安全风险:网关链路无 TLS 加密,Cookie 与对话内容存在被嗅探风险。强烈建议通过 VPN(如 Tailscale/ZeroTier)加密访问,而非直接使用 HTTP。
  • 身份认证:旧版公开的 x-dshm-admin: 1 头已废弃,任何局域网设备都能伪造它。新版采用 x-dshm-admin-token 结合回环地址校验,确保管理权限仅限 PC 本机。
  • 数据持久化:设备与策略数据保存在 $DSH_HOME/dsh-mobile/state.json 文件中。
  • 防火墙:Windows 用户需确保防火墙允许 node.exe 对端口 3081(默认)的入站连接。

总结

该插件解决了 DSH Web GUI 仅绑定本地的问题,通过 PC 端作为中继网关,实现了移动端安全、可控的访问方式。对于需要在多设备间切换或使用移动设备开发智能体的用户,它提供了一个低侵入、功能完整的解决方案。

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

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

小夜