- DSH
- 0.2.0-rc.2
- 系统
- Windows / macOS / Linux
- 风险
- high
本页目录(11)
先查看功能、兼容性、权限和同类选择,再按本文操作。
2026-10-02 更新到 DSH Mobile 0.5.3,适配 DSH 0.2.0-rc.2
本页安装目标更新为 [email protected],命令固定使用 DSH 0.2.0-rc.2。新版本声明兼容 0.2.0-rc.2;本站只做了固定版本的源码与发布包静态复核,没有安装或运行。
- 配对设备等同完全可信操作者:可以发送任务、批准工具、上传最大 160 MiB 的文件,还能浏览电脑任意目录并读取 20 MiB 以内的图片(src/computer-images.ts,不限工作区);/mobile 写入的 extensions/*/host.mjs 会被自动加载,并以桌面用户权限运行(src/extensions.ts)。
- 远程通道会把网关发布到公网(Funnel、cpolar、cloudflared、FRP、自有反代),依赖设备配对、CSRF 和 TLS 保护;CSP 仍允许 unsafe-inline/unsafe-eval,并为兼容放行 HTTP iframe(SECURITY.md Known limitation)。远程访问默认关闭,不用时应关闭。
- 面板“更新插件”会在 Profile 目录执行 pnpm add dsh-mobile@<npm 最新版>(src/release-update.ts),绕开固定的 0.5.3;remove 不清理 $DSH_HOME/mobile-access/ 中的私钥和令牌,必须先 purge,服务商和 VPS 侧需单独清理(README 卸载节、src/cli.ts)。
仍在使用 DSH 0.1.x: 仍在使用 DSH 0.1.x 的用户:0.5.3 的 peer 为 *,元数据不会阻止它在 0.1.x 上安装,但作者只对 0.1.7-alpha.2、0.1.7-rc.1、0.1.7-rc.2 和 0.2.0-rc.1/rc.2 做过检查。DSH 0.1.7 系列可以考虑同样固定 [email protected](52DSH 只做了静态审阅,没有在 0.1.7 上运行)。更早的 0.1.x,请按作者兼容表选择对应版本,或继续使用本站原先的 0.1.0-alpha.36(提交 218cd8b470cd)加 DSH 0.1.1-rc.2 组合;alpha.36 没有远程通道,且 CSP 同样宽松。从 alpha.36 升级应预期卸载重装 Android App、重新运行 setup 并重新配对;升级前先在电脑端撤销旧设备,并备份 $DSH_HOME/mobile-access/ 中的自定义文件。
依据:固定证据 1(外部链接,在新标签页打开)、固定证据 2(外部链接,在新标签页打开)、固定证据 3(外部链接,在新标签页打开)、固定证据 4(外部链接,在新标签页打开)。
<!-- END REVIEWED GUIDE SUPPLEMENT -->为 DSH 提供经设备配对的局域网 HTTPS 网关、可选远程通道(Tailscale Funnel、cpolar、cloudflared、自建 FRP、自有反向代理)、手机专用布局和 Android App,让可信手机访问电脑上的同一工作区与会话。
如果你的目标是通过配对的局域网 HTTPS 网关和 Android WebView 访问 DSH,本教程会说明如何在 DeepSeek Harness(DSH)中准备、安装、配置、验证和回退 dsh-mobile。本文锁定作者仓库提交 0afa58f481c8;已复核固定提交的原始资料,未进行运行实测。
对应插件:查看 dsh-mobile 的功能、权限与兼容性说明。先确认它适合你的工作流,再执行安装。
先确认是否适合你
- 分类:通知远程
- 风险等级:high
- 核验证据:source_reviewed
- 兼容性边界:0.5.3 的四个 @deepseek-ai/dsh-* 可选 peer 均为 *,可通过 DSH 0.2.0-rc.2 的启动预检;作者兼容表声明 0.1.7-alpha.2 至 0.2.0-rc.2 已通过源码契约、npm 打包安装、隔离配对与移动页面启动检查。52DSH 仅静态审阅固定提交与 npm 包,未在 0.2.0-rc.2 上运行,也未做真实手机配对或远程通道测试。
- 主要权限关注:局域网访问启用后,在所选网卡地址监听 HTTPS(默认 3443),来源限定为该网段;Windows 上会经 UAC 添加 LocalSubnet 入站规则(Profile 为 Any)。远程通道会把网关发布到公网。配对设备可以操作电脑上的 DSH,包括发送任务、批准工具和上传附件,还能浏览本机任意目录并读取 20 MiB 以内的图片。extensions 下的 host.mjs 以桌面用户权限运行,mobile.js 拥有配对页面的同源权限。
如果你准备在重要工作区使用,先阅读插件详情页的权限和数据流说明;“源码已审阅”或“资料已整理”都不等于安全认证。
安装前准备
本页 DSH 命令版本: 0.2.0-rc.2。0.5.3 声明的 DSH 版本范围包含 0.2.0-rc.2,本页固定 DSH 0.2.0-rc.2。仅静态复核,未在本站运行验证。
- Node.js 与独立 web Profile:Node.js 需满足 ^22.19.0 或 >=24。在独立的 web Profile 和可丢弃的测试工作区中安装,不要直接连接生产目录。
- 可信局域网:只在家庭、办公室或自己的热点等可信网络中开启局域网访问。不要在路由器上做端口转发;Windows 防火墙规则对公用网络配置文件同样生效,在公共 Wi-Fi 下应关闭局域网访问。
- Android App 或手机浏览器:原生 App 仅支持 Android 10 及以上,请从作者 GitHub Release v0.5.3 下载,并核对随附的 SHA-256 文件。不安装 App 时,可在手机浏览器中打开配对链接;局域网私有证书首次访问会出现警告。不提供 iOS App。
- 远程通道账号或服务器:只有需要远程访问时才准备:Tailscale 账号、cpolar Authtoken、Cloudflare 账号与域名、自有 VPS 与 SSH 密钥,或已有的 HTTPS 反向代理,任选其一。远程访问默认关闭,不使用时不要开启。
- 安装 Node.js 22.19、Node.js 24 或项目当前声明支持的更高版本,并确认
pnpm可用。 - 使用独立的
webProfile 和可丢弃测试工作区,不直接连接生产目录。 - 备份当前 Profile 配置,并记录安装前的
--dump-config输出。 - 核对固定来源中的外部服务、账号、运行时和平台限制。
- 需要凭据时只准备测试凭据;本页识别到的候选变量包括
DSH_HOME。
安装 dsh-mobile
52DSH 使用目录中记录的精确安装目标,避免直接跟随可能变化的默认分支:
npx --yes @deepseek-ai/[email protected] plugin --profile web add [email protected]
GitHub 源码插件如果被 pnpm 拦截构建脚本,先检查终端提示的具体包和脚本。只在 web Profile 中放行确实需要的构建项,不要全局放行未知依赖。
插件专属配置
配置目标
$DSH_HOME/mobile-access/setup.json 与 tls/:setup 写入的网卡、Mobile HTTPS 端口(默认 3443)、DSH 上游端口,以及私有 CA、服务器证书和私钥,文件权限设为私有。$DSH_HOME/mobile-access/control.json 与 devices.json:局域网访问的开关状态,以及已配对设备记录(只保存令牌的 SHA-256 摘要);电脑端撤销设备时会删除对应记录。$DSH_HOME/mobile-access/mobile.css、mobile.js、extensions/:/mobile 定制写入的位置。mobile.js 以配对页面的同源权限运行;extensions/<id>/host.mjs 会被自动加载,并以桌面用户权限运行。$DSH_HOME/mobile-access/remote/:远程通道的状态:Tailscale 登录状态,以及 cpolar Authtoken、cloudflared 命名隧道令牌、FRP 共享 Token 等私有文件,还有按需下载的组件。Profile 中 id 为 mobile-access 的 Loader 行 config:高级选项:excludedClientModules(精简手机启动包)、deviceTtlMs、sessionTtlMs、pairingTtlMs、maxDevices、maxBodyBytes(默认 160 MiB)。默认值即可使用。
环境变量
DSH_HOME(可选):DSH 数据目录。插件的证书、设备、自定义文件和远程组件都存放在 $DSH_HOME/mobile-access/ 下,purge 也会删除这个目录。
固定版本安装与局域网 setup
证据:固定来源(外部链接,在新标签页打开)。将路径、账号和凭据占位符替换为测试值。
npx --yes @deepseek-ai/[email protected] plugin --profile web add [email protected]
npx --yes @deepseek-ai/[email protected] plugin --profile web exec dsh-mobile setup
npx --yes @deepseek-ai/[email protected] --profile web --dump-config
自动选网卡失败时指定地址与端口(占位符需替换)
证据:固定来源(外部链接,在新标签页打开)。将路径、账号和凭据占位符替换为测试值。
npx --yes @deepseek-ai/[email protected] plugin --profile web exec dsh-mobile setup --address 192.168.x.x --port 3443
安装后设置
- 安装后重启 DSH。在左下角打开“移动访问 → 局域网”,确认面板显示的网卡和地址属于当前可信网络。插件市场安装或首次未运行 setup 时,也可以在面板里选择网卡、生成私有证书,然后重启一次 DSH。
- 只在需要配对时点击“生成并复制密钥”,配对窗口默认 2 分钟、只能使用一次。配对完成后在设备列表中核对新设备名称,确认没有陌生设备。
- 远程访问保持关闭。确实需要时只选择一种通道;cpolar、cloudflared、frpc 都会在确认后才下载。使用自有反向代理时,3444 后端只能留在可信私网,不要把 /api/mobile-access 管理路径转发到公网。
- 第三方 WebSocket 路径只放行确认过的精确路径,不要使用“全部允许”。需要 HTTP iframe 的社区页面不要处理敏感内容。
- 面板标题右侧的“更新插件”会把版本改为 npm 最新版,绕开 52DSH 审阅的 0.5.3。需要保持固定版本时不要点击;需要升级时先查看新版审阅记录。
配置验证与成功结果
先导出配置,再启动同一版本的 DSH Web:
npx --yes @deepseek-ai/[email protected] --profile web --dump-config
npx --yes @deepseek-ai/[email protected] web
-
确认 Profile 中有一条启用的 mobile-access(dsh-mobile)行和 dsh-ui-fixes 行,并且没有重复挂载。
npx --yes @deepseek-ai/[email protected] --profile web --dump-config期望结果:出现 name 为 dsh-mobile 和 dsh-mobile-question-fixes 的 Loader 行,启动日志中没有插件预检或加载错误。
-
在同一局域网的手机上打开 App 或配对链接,用面板当前生成的密钥完成配对,然后打开一个可丢弃的测试会话。
期望结果:手机能看到与电脑相同的工作区和会话列表;电脑端设备列表出现这台手机。
-
在电脑端撤销这台测试手机,再用手机刷新页面。
期望结果:手机的在线会话断开,或提示配对已过期/电脑端已移除,需要重新配对才能进入。
-
关闭局域网访问后,用另一台未配对设备访问 https://<电脑局域网地址>:3443/。
期望结果:连接被拒绝或只看到登录/配对页;未配对设备无法进入 DSH 会话。
第一次使用
- 在手机上打开可丢弃的测试工作区,只让 Agent 列出文件并解释项目结构,不批准写入或命令执行。
- 在 DSH 对话中输入 /mobile 并提出一个纯样式需求(例如调整强调色),确认只修改 mobile.css,手机端自动刷新。
数据、权限与凭据
**数据流:**手机 App 或浏览器通过以下任一入口连接:局域网 HTTPS 网关,或 Funnel、cpolar、cloudflared、FRP、自有反代转发到的独立回环远程网关。网关用设备令牌换取短期会话并校验 CSRF,再转发到回环 DSH Web/Host;会话、工具、文件与事件结果沿原路返回手机。面板检查版本时会访问 registry.npmjs.org 与 GitHub,远程组件在确认后从官方发布页下载。
**权限关注:**局域网访问启用后,在所选网卡地址监听 HTTPS(默认 3443),来源限定为该网段;Windows 上会经 UAC 添加 LocalSubnet 入站规则(Profile 为 Any)。远程通道会把网关发布到公网。配对设备可以操作电脑上的 DSH,包括发送任务、批准工具和上传附件,还能浏览本机任意目录并读取 20 MiB 以内的图片。extensions 下的 host.mjs 以桌面用户权限运行,mobile.js 拥有配对页面的同源权限。
**数据存储:**电脑端:$DSH_HOME/mobile-access/ 保存 setup.json、control.json、devices.json(设备令牌摘要)、私有 CA 与证书私钥、mobile.css/mobile.js、extensions/,以及 remote/ 下的 Tailscale 登录状态、cpolar/cloudflared/FRP 令牌和下载的组件。会话在内存中保存,DSH 重启后失效。手机端:Android App 把设备令牌和私有 CA 加密存放在 Keystore;浏览器使用 HttpOnly 会话 Cookie 与 CSRF Cookie。远程通道服务商和 VPS 上的状态不在本机。
真实 Token、API Key、Cookie 和账号 ID 不应写进 Git 仓库、网页截图或公开 Issue。测试结束后撤销临时凭据。
卸载、回退与清理
停止 DSH 后,从同一个 Profile 移除包:
npx --yes @deepseek-ai/[email protected] plugin --profile web remove dsh-mobile
- 先在电脑端撤销所有已配对设备并关闭远程访问。手机上“删除本地记录”只删除手机端凭据,不会在电脑端撤销授权。
- 需要连同本机数据一起清理时,先备份要保留的扩展,再按顺序运行:npx --yes @deepseek-ai/[email protected] plugin --profile web exec dsh-mobile purge --yes,然后运行 npx --yes @deepseek-ai/[email protected] plugin --profile web remove dsh-mobile。purge 会删除整个 $DSH_HOME/mobile-access/,并移除插件创建的两条 Windows 防火墙规则。
- 只运行 remove 不会删除证书、设备记录、自定义文件和远程令牌。如果已经先 remove,需要手动检查并删除 $DSH_HOME/mobile-access/ 及 Windows 中名为“DSH Mobile HTTPS”“DSH Mobile Discovery”的入站规则。
- 远程通道需要在服务商处另行清理:在 Tailscale 管理台删除对应节点和 Funnel,吊销 cpolar Authtoken 或 Cloudflare 隧道令牌;FRP 托管部署需用面板卸载脚本清理 VPS。接入既有 frps 的方式不会改动 VPS,也不会替你清理。
- 卸载后 Bundle 不再禁用 DSH 默认的 auto 目录选择器。重启 DSH 后,确认 mobile-access 行消失,原生目录选择恢复正常。
常见问题
从 0.1.0-alpha.36 升级后手机无法连接
alpha 线与 0.5.x 之间跨越了 App 签名更换和多处协议变化,旧版 App 需要卸载后重新安装。应预期要重新运行 setup 并重新配对;不要为此关闭认证或开放端口。
手机提示输入另一插件的配对码
dsh-remote-web-ui 等其他远程插件使用独立授权。先在电脑端临时关闭另一插件的远程访问并刷新,再扫描 DSH Mobile 当前的二维码,不要交叉输入密钥。
切换网络后局域网访问不可用
日志提示 saved LAN interface is not connected 时,说明保存的网卡当前未连接,等它恢复或重新运行 setup 即可;DSH 本身会继续运行。
社区插件在手机端连接失败
打开连接诊断 → 第三方 WebSocket 路径,只放行这个插件实际被拦截的精确路径;放行不会绕过设备配对。
设置无法保存或报 profile reload requires the root Include entry
作者在 issue #132 中归因于全局 CLI 与 Profile 各自加载了一份 dsh-app-boot,不是 Mobile 本身的问题。核对实际运行的 DSH 命令和 Profile 版本,保持 Host/Origin 信任检查开启。
安装成功但页面或命令没有出现
先运行 --dump-config 确认 Bundle 已进入 web Profile,再重启 DSH Web 并硬刷新浏览器。不要通过反复扩大权限来解决加载问题。
插件运行后没有得到预期结果
把问题缩小到本页的最小验证任务,检查作者文档要求的变量、外部服务和平台限制。保存终端错误原文,并核对当前安装目标是否仍对应本页固定提交。
作者提供了独立故障文档,可从下方“固定来源证据”进入;本页没有把整份 README 复制过来。
固定来源证据
以下资料是本文配置结论的依据:
继续查看:返回 dsh-mobile 插件详情页,重新核对兼容性、权限、同类插件和来源状态。
来源与维护信息
本文根据以下原始资料整理。版本变化后,请以官方资料和页面标注的验证日期为准。
- GitHub:saya-ch/dsh-mobile(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 package.json(外部链接,在新标签页打开)
- GitHub:deepseek-ai/deepseek-harness 固定提交 plugin-compatibility.ts(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 README.md(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 SECURITY.md(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 computer-images.ts(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 release-update.ts(外部链接,在新标签页打开)
- GitHub:saya-ch/dsh-mobile 固定提交 extensions.ts(外部链接,在新标签页打开)