---
title: "用 DSH Mobile 配对手机并访问同一工作区与会话"
seo_title: "DSH Mobile 配置：局域网 HTTPS、设备配对与 Android"
description: "在 DeepSeek Harness（DSH）中安装 Mobile，配置局域网 HTTPS、设备配对、移动布局和 Android WebView，并限制远程工作区权限。"
canonical: https://52dsh.com/tutorials/saya-ch-dsh-mobile-install-config/
authors: ["52DSH 编辑部"]
audience: []
outcomes: []
prerequisites: ["Node.js 与 pnpm","独立 web Profile","可丢弃测试工作区"]
difficulty: advanced
estimated_action_time: null
next_steps: null
published_at: 2026-08-22
updated_at: 2026-10-02
verified_on: 2026-10-02
maintenance_status: community
verification_level: source_reviewed
risk_level: high
dsh_version: 0.2.0-rc.2
plugin_id: saya-ch-dsh-mobile
tutorial_kind: plugin_configuration
related_plugin_url: https://52dsh.com/plugins/saya-ch-dsh-mobile/
---

# 用 DSH Mobile 配对手机并访问同一工作区与会话

在 DeepSeek Harness（DSH）中安装 Mobile，配置局域网 HTTPS、设备配对、移动布局和 Android WebView，并限制远程工作区权限。

<!-- BEGIN REVIEWED GUIDE SUPPLEMENT -->
## 2026-10-02 更新到 DSH Mobile 0.5.3，适配 DSH 0.2.0-rc.2

本页安装目标更新为 `dsh-mobile@0.5.3`，命令固定使用 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 系列可以考虑同样固定 dsh-mobile@0.5.3（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](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/README.md)、[固定证据 2](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/computer-images.ts)、[固定证据 3](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/release-update.ts)、[固定证据 4](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/extensions.ts)。
<!-- 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 的功能、权限与兼容性说明](/plugins/saya-ch-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 反向代理，任选其一。远程访问默认关闭，不使用时不要开启。

1. 安装 Node.js 22.19、Node.js 24 或项目当前声明支持的更高版本，并确认 `pnpm` 可用。
2. 使用独立的 `web` Profile 和可丢弃测试工作区，不直接连接生产目录。
3. 备份当前 Profile 配置，并记录安装前的 `--dump-config` 输出。
4. 核对固定来源中的外部服务、账号、运行时和平台限制。
5. 需要凭据时只准备测试凭据；本页识别到的候选变量包括 `DSH_HOME`。

## 安装 dsh-mobile

52DSH 使用目录中记录的精确安装目标，避免直接跟随可能变化的默认分支：

```bash
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add dsh-mobile@0.5.3
```

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

证据：[固定来源](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/README.md)。将路径、账号和凭据占位符替换为测试值。

```bash
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add dsh-mobile@0.5.3
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web exec dsh-mobile setup
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --dump-config
```

### 自动选网卡失败时指定地址与端口（占位符需替换）

证据：[固定来源](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/cli.ts)。将路径、账号和凭据占位符替换为测试值。

```bash
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web exec dsh-mobile setup --address 192.168.x.x --port 3443
```

### 安装后设置

1. 安装后重启 DSH。在左下角打开“移动访问 → 局域网”，确认面板显示的网卡和地址属于当前可信网络。插件市场安装或首次未运行 setup 时，也可以在面板里选择网卡、生成私有证书，然后重启一次 DSH。
2. 只在需要配对时点击“生成并复制密钥”，配对窗口默认 2 分钟、只能使用一次。配对完成后在设备列表中核对新设备名称，确认没有陌生设备。
3. 远程访问保持关闭。确实需要时只选择一种通道；cpolar、cloudflared、frpc 都会在确认后才下载。使用自有反向代理时，3444 后端只能留在可信私网，不要把 /api/mobile-access 管理路径转发到公网。
4. 第三方 WebSocket 路径只放行确认过的精确路径，不要使用“全部允许”。需要 HTTP iframe 的社区页面不要处理敏感内容。
5. 面板标题右侧的“更新插件”会把版本改为 npm 最新版，绕开 52DSH 审阅的 0.5.3。需要保持固定版本时不要点击；需要升级时先查看新版审阅记录。


## 配置验证与成功结果

先导出配置，再启动同一版本的 DSH Web：

```bash
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --dump-config
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 web
```

1. **确认 Profile 中有一条启用的 mobile-access（dsh-mobile）行和 dsh-ui-fixes 行，并且没有重复挂载。**

   ```bash
   npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --dump-config
   ```

   期望结果：出现 name 为 dsh-mobile 和 dsh-mobile-question-fixes 的 Loader 行，启动日志中没有插件预检或加载错误。

2. **在同一局域网的手机上打开 App 或配对链接，用面板当前生成的密钥完成配对，然后打开一个可丢弃的测试会话。**

   期望结果：手机能看到与电脑相同的工作区和会话列表；电脑端设备列表出现这台手机。

3. **在电脑端撤销这台测试手机，再用手机刷新页面。**

   期望结果：手机的在线会话断开，或提示配对已过期/电脑端已移除，需要重新配对才能进入。

4. **关闭局域网访问后，用另一台未配对设备访问 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 移除包：

```bash
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web remove dsh-mobile
```

1. 先在电脑端撤销所有已配对设备并关闭远程访问。手机上“删除本地记录”只删除手机端凭据，不会在电脑端撤销授权。
2. 需要连同本机数据一起清理时，先备份要保留的扩展，再按顺序运行：npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web exec dsh-mobile purge --yes，然后运行 npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web remove dsh-mobile。purge 会删除整个 $DSH_HOME/mobile-access/，并移除插件创建的两条 Windows 防火墙规则。
3. 只运行 remove 不会删除证书、设备记录、自定义文件和远程令牌。如果已经先 remove，需要手动检查并删除 $DSH_HOME/mobile-access/ 及 Windows 中名为“DSH Mobile HTTPS”“DSH Mobile Discovery”的入站规则。
4. 远程通道需要在服务商处另行清理：在 Tailscale 管理台删除对应节点和 Funnel，吊销 cpolar Authtoken 或 Cloudflare 隧道令牌；FRP 托管部署需用面板卸载脚本清理 VPS。接入既有 frps 的方式不会改动 VPS，也不会替你清理。
5. 卸载后 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 复制过来。

## 固定来源证据

以下资料是本文配置结论的依据：

- [README.md](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/README.md)
- [SECURITY.md](https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/SECURITY.md)

继续查看：[返回 dsh-mobile 插件详情页](/plugins/saya-ch-dsh-mobile/)，重新核对兼容性、权限、同类插件和来源状态。

## 原始来源

- https://github.com/saya-ch/dsh-mobile
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/package.json
- https://github.com/deepseek-ai/deepseek-harness/blob/639ed015397290b3745d163aafe02ffee4aa3f84/packages/boot/app-boot/src/plugin-compatibility.ts
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/README.md
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/SECURITY.md
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/computer-images.ts
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/release-update.ts
- https://github.com/saya-ch/dsh-mobile/blob/0afa58f481c8ae2dc13b9ed63c2de24ccf12d50d/src/extensions.ts
