dsh-plugin-mobile-gateway:iPhone 通过设备鉴权 WebSocket 连接 DSH

前言

DSH 插件生态遵循「一切皆插件」的思路。对于已经在使用 DSH 的人来说,如果希望在 iPhone 上继续访问同一套 DeepSeek Harness,就需要一个可供 iOS 客户端连接、且带设备鉴权的 WebSocket 入口。

dsh-plugin-mobile-gateway 面向这个场景:它安装在 DSH Web 插件 profile 下,在 DSH WebUI 中提供“移动设备”入口,用于开启网关、生成配对二维码和管理可信设备。

这是什么

dsh-plugin-mobile-gatewayClarklevis1995 维护,许可证为 MIT。它让 iPhone 通过经过设备鉴权的 WebSocket 连接 DeepSeek Harness。

插件使用的 WebSocket 路径为:

/ws/mobile

当前 package.json 版本为 0.6.5。Linux 服务器一键公网安装从 v0.6.4 开始提供。

核心能力

下面介绍已核实的主要能力:

  • 在 DSH WebUI 左侧边栏提供“移动设备”入口
  • 可开启网关、生成配对二维码和管理可信设备
  • 支持局域网 WebSocket 接入:ws://<局域网 IP>:3081/ws/mobile
  • 支持 Linux 服务器公网 WebSocket 接入:wss://<公网 IP>/ws/mobile
  • 通过二维码进行 iOS 设备配对
  • 支持通过 Tailscale Serve 或 Cloudflare Quick Tunnel 远程连接 3081 端口
  • Linux 服务器公网场景可安装系统 Helper、Nginx、Certbot 和证书续期定时器
  • 提供 statusremoveremove-helper 等公网入口/Helper 管理命令

安装与启用

安装前确认已安装 dsh CLI 和 pnpm,并能正常启动 dsh web

执行以下命令安装插件:

dsh plugin --profile web add dsh-plugin-mobile-gateway@latest

安装后停止并重新启动 WebUI:

dsh web

启动后打开 WebUI,确认左侧边栏出现“移动设备”。

局域网配对

如果 iPhone 与运行 DSH 的电脑位于同一局域网,可以按下面的步骤配对。

1、打开 WebUI 的“移动设备”。

2、开启“允许移动设备连接”。

3、保持“设备鉴权”开启。

4、填写设备名称并点击“生成配对二维码”。

5、在 iOS 客户端打开“设备认证”,扫描二维码。

6、等待 WebUI 的可信设备显示“在线”。

局域网接入地址为:

ws://<局域网 IP>:3081/ws/mobile

注意:

  • 配对二维码只能使用一次,并会在 5 分钟后过期。
  • 如果系统防火墙拦截连接,只允许私有网络访问 TCP 3081
  • 不要把 TCP 3081 开放到公网,也不要开放 DSH WebUI 端口。

Linux 服务器公网接入

Linux 服务器公网配对适用于带固定公网 IPv4 的 Ubuntu/Debian 服务器,当前尚不支持 CentOS。

先执行初始化命令:

npx --yes dsh-plugin-mobile-gateway@latest init

该命令会请求一次 sudo 权限,用于安装系统 Helper、Nginx、Certbot 和证书续期定时器。执行完成后启动或重新启动:

dsh web

进入 WebUI 的“移动设备”,在“公网接入”填写公网 IPv4,并点击“配置公网接入”或“更新公网配置”。

公网 WebSocket 地址为:

wss://<公网 IP>/ws/mobile

配对步骤与局域网相同,但公网调试时必须保持“设备鉴权”开启。

使用 Tailscale 或 Cloudflare Quick Tunnel

如果没有直接的公网 IPv4 入口,可以使用 Tailscale Serve 或 Cloudflare Quick Tunnel 将 3081 端口转发出来。使用前先启动 dsh web,并在“移动设备”面板开启“允许移动设备连接”和“设备鉴权”。

Tailscale Serve 可执行:

tailscale serve --bg 3081

然后将生成的地址改为:

wss://<设备名>.<tailnet>.ts.net/ws/mobile

填入 WebUI,再生成二维码配对。

Cloudflare Quick Tunnel 可执行:

cloudflared tunnel --url http://127.0.0.1:3081

命令行会显示类似:

https://<随机名称>.trycloudflare.com

将地址改为:

wss://<随机名称>.trycloudflare.com/ws/mobile

填入 WebUI,再生成二维码配对。Cloudflare Quick Tunnel 仅用于临时调试,地址每次可能变化且没有可用性保证。

管理与卸载

查看公网入口状态:

sudo env "PATH=$PATH" npx --yes dsh-plugin-mobile-gateway@latest status

插件还提供 removeremove-helper 两类管理命令,分别用于移除公网入口或系统 Helper。执行前请确认当前服务器用途。

卸载插件:

dsh plugin --profile web remove dsh-plugin-mobile-gateway

源码开发

源码开发时需要以 file: 路径安装插件,并重启 dsh web

适用场景与注意

  • 适合需要在 iPhone 上通过 iOS 客户端接入 DSH 的场景。
  • 适合局域网、Linux 服务器公网 IPv4,或通过 Tailscale / Cloudflare Quick Tunnel 远程连接的场景。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 不要把 DSH WebUI 端口或 TCP 3081 开放到公网。
  • 公网调试时必须保持设备鉴权开启。
  • 配对二维码只能使用一次,并会在 5 分钟后过期。
  • Linux 服务器公网接入适用于 Ubuntu/Debian,当前不支持 CentOS。

链接

GitHub 仓库:

https://github.com/Clarklevis1995/dsh-plugin-mobile-gateway
羽毛球分组比赛记分
小程序二维码

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

小夜