前言¶
DeepSeek Harness (DSH) 的 Web 界面通常运行在本地,移动端直接访问往往受限于网络环境或域名解析。dsh-mobile-access 插件通过建立 SSH 反向隧道,将 Web 界面映射到用户自己的域名上,使手机能够通过 HTTPS 安全访问本地 Agent。
什么是 dsh-mobile-access¶
这是一个 DSH 插件包,旨在解决移动端访问本地 Web 界面的问题。它通过自定义域名、本地令牌网关以及受监督的 SSH 反向隧道,将 DeepSeek Harness 的 Web GUI 投递到手机上。
- 维护者: kk99668
- 类别: 客户端
- 许可证: MIT
核心功能¶
该插件提供以下能力:
- 自定义域名访问: 通过用户指定的域名在手机上访问 Web 界面。
- 本地令牌网关: 在 Web 服务器前端实现请求认证,作为唯一的安全边界。
- 受监督的 SSH 反向隧道: 支持自动重连和指数退避策略,保证连接稳定。
- 弱网优化: 支持消息压缩,并具备连接控制器以应对信号波动。
- 移动端上下文集成: 在
surfaceContext模式下注入DSH_WEB_PUBLIC_URL环境变量。 - 终端二维码: 在隧道建立后生成二维码,方便手机扫描配置。
安装与启用¶
该插件为可选组件,需在已安装的 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 用户,并设置防火墙规则。
注意事项¶
部署和使用时需注意以下事实:
- SSH 客户端依赖: 运行 DSH 的机器上必须存在
ssh客户端程序。 - 设备登录: 每个设备需要单独的浏览器登录,没有持久化设备注册表。
- Windows 自动启动: Windows 下的自动启动由用户自行处理,插件进程不会自动加入启动项。
- 安全边界: 令牌网关是唯一的安全边界,任何知晓令牌的人均可控制该 Agent,请将其视为凭证妥善保管。
- Cookie 机制: 登录 Cookie 不包含
Max-Age,这意味着每个浏览器配置文件都需要重新登录。 - 端口绑定: SSH 隧道在中继服务器上仅绑定到
127.0.0.1,手机无法直接连接该端口,必须通过 Caddy。
结语¶
dsh-mobile-access 提供了一套从本地到移动端的可靠桥接方案。通过 SSH 隧道与令牌网关的结合,它在不改变 DSH 核心架构的前提下,实现了对 Web 界面的远程安全访问。适合需要在移动网络下稳定使用 DSH 的开发者。