dsh-mobile-access: 将 DeepSeek Harness Web 界面通过隧道投递到移动端

前言

DeepSeek Harness (DSH) 的 Web 界面通常运行在本地,移动端直接访问往往受限于网络环境或域名解析。dsh-mobile-access 插件通过建立 SSH 反向隧道,将 Web 界面映射到用户自己的域名上,使手机能够通过 HTTPS 安全访问本地 Agent。

什么是 dsh-mobile-access

这是一个 DSH 插件包,旨在解决移动端访问本地 Web 界面的问题。它通过自定义域名、本地令牌网关以及受监督的 SSH 反向隧道,将 DeepSeek Harness 的 Web GUI 投递到手机上。

  • 维护者: kk99668
  • 类别: 客户端
  • 许可证: MIT

核心功能

该插件提供以下能力:

  1. 自定义域名访问: 通过用户指定的域名在手机上访问 Web 界面。
  2. 本地令牌网关: 在 Web 服务器前端实现请求认证,作为唯一的安全边界。
  3. 受监督的 SSH 反向隧道: 支持自动重连和指数退避策略,保证连接稳定。
  4. 弱网优化: 支持消息压缩,并具备连接控制器以应对信号波动。
  5. 移动端上下文集成: 在 surfaceContext 模式下注入 DSH_WEB_PUBLIC_URL 环境变量。
  6. 终端二维码: 在隧道建立后生成二维码,方便手机扫描配置。

安装与启用

该插件为可选组件,需在已安装的 web 配置文件上启用。

dsh plugin --profile web add github:kk99668/dsh-mobile-access

配置与部署

启用后,需要在启动 DSH 的环境中配置环境变量,或覆盖默认配置。

环境变量配置

插件读取环境变量进行初始化,以下变量为必填:

  • DSH_MOBILE_PUBLIC_HOST: 公网访问地址(如 dsh.example.com)。
  • DSH_MOBILE_RELAY_HOST: 中继服务器地址。
  • DSH_MOBILE_RELAY_USER: 中继服务器上的 SSH 登录用户。
  • DSH_MOBILE_TOKEN: 令牌网关密钥(至少 8 位字符)。

配置覆盖

若需修改默认端口、SSH 密钥等参数,可在 cordis.patch.yml 中覆盖配置:

- id: mobile-access
  config:
    publicHost: dsh.example.com
    relayHost: vps.example.com
    relayUser: dsh-relay
    token: a-long-random-secret
    remoteBindPort: 8443
    identityFile: C:\Users\you\.ssh\id_ed25519

服务器端部署

在中继服务器(Relay Server)上执行一次脚本以安装 Caddy 并配置反向代理:

sudo ./scripts/setup-server.sh dsh.example.com 3080 ~/dsh-relay.pub

该脚本会配置 Caddy 处理 HTTPS,创建专用 SSH 用户,并设置防火墙规则。

注意事项

部署和使用时需注意以下事实:

  1. SSH 客户端依赖: 运行 DSH 的机器上必须存在 ssh 客户端程序。
  2. 设备登录: 每个设备需要单独的浏览器登录,没有持久化设备注册表。
  3. Windows 自动启动: Windows 下的自动启动由用户自行处理,插件进程不会自动加入启动项。
  4. 安全边界: 令牌网关是唯一的安全边界,任何知晓令牌的人均可控制该 Agent,请将其视为凭证妥善保管。
  5. Cookie 机制: 登录 Cookie 不包含 Max-Age,这意味着每个浏览器配置文件都需要重新登录。
  6. 端口绑定: SSH 隧道在中继服务器上仅绑定到 127.0.0.1,手机无法直接连接该端口,必须通过 Caddy。

结语

dsh-mobile-access 提供了一套从本地到移动端的可靠桥接方案。通过 SSH 隧道与令牌网关的结合,它在不改变 DSH 核心架构的前提下,实现了对 Web 界面的远程安全访问。适合需要在移动网络下稳定使用 DSH 的开发者。

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

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

小夜