简体中文 · [English](USER_GUIDE_EN.md) # DSH Remote Web Gateway 用户指南 > **手机远程 DeepSeek Harness,从安装到第一次扫码,这一篇就够了。** 如果你只是第一次使用,不需要先理解 Quick Tunnel、Gateway、Device Session 这些技术名词。 **先把它装起来,用起来。** 遇到问题,再往后找对应章节。 --- # 🤖 不想看文档?把项目链接发给 AI,让它帮你装 这是最推荐给小白的方式。 ![DSH Remote Web Gateway](assets/ai-install-zh.png) 如果你正在使用: **DSH、Codex、Claude Code,或者其它可以读取 GitHub 的 Coding Agent** 你甚至不需要从头研究这份指南。 先复制项目地址: ```text https://github.com/summer1238/dsh-remote-web-gateway ``` 然后把下面这段提示词**完整复制给你的 AI**。 ## 📋 AI 安装提示词 ```text 我要在当前电脑上安装并配置: DSH Remote Web Gateway 项目地址: https://github.com/summer1238/dsh-remote-web-gateway 请先阅读这个项目当前最新的: 1. README 2. docs/USER_GUIDE.md 3. docs/TROUBLESHOOTING.md 然后再开始操作。 要求: 1. 不要凭你的历史知识猜安装方式,必须以这个项目当前仓库文档和实际环境为准。 2. 先检查我的 DeepSeek Harness / DSH 是否已经安装、当前版本、Web Profile 和运行状态。 3. 如果我的环境满足要求,再按照项目官方方式安装 DSH Remote Web Gateway。 4. 能安全自动完成的步骤可以直接帮我执行。 5. 需要我本人完成的操作,例如: - 扫二维码 - 输入配对码 - GitHub 授权 - 点击确认 - 重启 DSH 请停下来明确告诉我应该做什么。 6. 不要修改 DeepSeek Harness Core 源码。 7. 不要为了安装这个插件删除我的 DSH_HOME、配置、会话、项目或其它插件。 8. 不要执行 reset、clean、批量删除、修改系统 PATH、停止不明进程等破坏性操作。 9. 如果安装失败: - 先读取这个项目的 Troubleshooting - 再根据真实报错排查 - 不要直接建议重装整个 DSH。 10. 不要在聊天或日志里输出我的 Cookie、Token、GitHub 验证信息、代理密码或其它密钥。 11. 安装结束后请帮我确认: - 插件已经被 DSH 正确加载 - 设置页出现“远程控制” - 可以看到“开启远程控制” 12. 到需要手机扫码的步骤时停止,让我本人完成扫码和授权。 请先告诉我你检查到的当前 DSH 环境,然后再开始安装。 ``` --- ## AI 有终端权限和没有终端权限,有什么区别? ### AI 能操作你的电脑 例如本地 Coding Agent。 它可以协助: **检查 DSH → 执行安装命令 → 检查插件 → 启动 / 重启 DSH → 排查报错。** 到了扫码、GitHub 授权等需要你本人确认的步骤,再让你接手。 ### AI 只是普通聊天 也没关系。 把项目链接发给它,让它先阅读项目文档。 它仍然可以: **一步一步告诉你复制哪条命令、打开哪个页面、点哪个按钮。** 区别只是: > 它不能替你操作电脑,你自己照着它的步骤做。 --- # 🚀 不用 AI?自己装也就几步 整个第一次使用流程其实就是: ## **安装插件 → 重启 DSH → 开启远程控制 → 等二维码 → 手机扫码** ![DSH Remote Web Gateway](assets/quick-start-zh.png) 下面一步一步来。 --- # 1. 安装前需要什么? 目前正式验证的宿主环境是: **Windows x64** 插件要求兼容的 DSH 版本从: ```text 0.1.0-rc.5+ ``` 开始。 当前项目主要开发和真实验收基线是: ```text DeepSeek Harness 0.1.0-rc.7 ``` 如果你正在使用更新版本,也建议先确认插件的 Compatibility 文档。 ### 📘 [查看兼容性说明](COMPATIBILITY.md) --- # 2. 一条命令安装 ```bash dsh plugin --profile web add dsh-remote-web-gateway ``` 安装完成以后: ## **重启 DSH Web。** 如果你平时本来就知道怎么启动 DSH,按照你原来的方式启动即可。 标准入口是: ```bash dsh web ``` 然后在浏览器打开你的 DSH Web。 默认情况下通常是: ```text http://127.0.0.1:3080/ ``` --- # 3. 找到「远程控制」 打开 DeepSeek Harness。 进入: ## **设置 → 远程控制** 你应该可以看到: # **开启远程控制** 如果这里完全没有「远程控制」,先不要继续折腾网络。 优先检查: - 插件是否安装成功; - 是否安装到了 `web` Profile; - DSH 是否已经重启; - 插件是否成功加载。 仍然没有的话直接看: ### 🧰 [故障排查](TROUBLESHOOTING.md) --- # 4. 点击「开启远程控制」 ![DSH Remote Web Gateway](assets/first-pair-zh.png) 点击以后,不一定马上出现二维码。 这是正常的。 你可能会依次看到: > 正在准备安全连接… > 正在检查 cloudflared… > 正在创建 Cloudflare Tunnel… > 正在启动安全连接… > 正在等待公网地址… > 正在建立安全连接… 第一次使用时,如果电脑里还没有可用的 `cloudflared`,插件还可能需要先下载。 ## **不要看到“正在建立”就急着扫码。** 我们专门做了 Tunnel Ready 检查。 只有确认远程连接已经真正准备好: # **二维码才会出现。** 也就是说: > **二维码出现 = 现在才应该扫码。** --- # 5. 第一次手机扫码 远程控制准备完成以后,电脑设置页会显示: - 二维码; - 8 位配对码; - 剩余有效时间; - 当前访问地址。 手机直接扫描二维码。 浏览器会打开配对页面。 然后完成第一次设备配对。 配对成功以后,你会看到: # **设备已成功配对** 电脑设置页原来的 QR、8 位配对码和倒计时会消失。 这是正常的。 不是二维码坏了。 而是: ## **它已经完成了自己的任务。** --- # 6. 不方便扫码?用 8 位配对码 二维码和 8 位配对码只是两种不同的输入方式。 如果手机摄像头不方便扫码: 1. 在手机浏览器打开电脑设置页显示的当前访问地址; 2. 进入配对页面; 3. 输入电脑上显示的 **8 位配对码**; 4. 完成配对。 二维码和 8 位码属于: ## **同一张一次性配对凭证。** 不是两套权限。 --- # 7. 为什么刚才那个二维码不能再用了? **这是故意的。** ![DSH Remote Web Gateway](assets/multi-device-zh.png) 第一次配对使用的是: # **一次性 Pairing Ticket** 它默认只有短暂有效时间。 当前默认是: ## **5 分钟。** 二维码和 8 位配对码都属于这一张 Ticket。 其中任何一种成功使用以后: # **整张 Ticket 立即作废。** 所以: - QR 成功扫过以后不能再拿去配第二台手机; - 8 位码成功使用以后也不能再重复输入; - 刷新电脑设置页也不会自动偷偷给你生成一套新凭证。 **这样设计是为了避免:** > 一个曾经分享过、截过图、留在聊天记录里的二维码,长期变成进入 DSH 的万能钥匙。 > **注意:尚未使用、仍在有效期内的 QR / 配对码仍然是真正的凭证。** > > 不要主动发给别人。 --- # 8. 想连接第二台手机? 很简单。 第一台设备成功配对以后,电脑设置页会显示: # **生成新的配对码** 点击它。 插件会创建一张新的 Pairing Ticket。 然后第二台设备: **扫码 / 输入新的 8 位码 → 完成自己的独立授权。** 每台设备都有自己的 Device Session。 不是所有手机共用一把长期万能钥匙。 --- # 9. 已经授权了哪些设备? 在: ## **设置 → 远程控制 → 已授权设备** 可以看到当前已经授权的设备。 设备信息会包含类似: - 设备名称; - 浏览器 / User-Agent 信息; - 最近使用时间。 默认最多支持: ## **20 台已授权设备。** 一般个人使用远远够了。 --- # 10. 手机丢了?马上撤销它 ![DSH Remote Web Gateway](assets/revoke-device-zh.png) 这是远程访问里非常重要的一步。 如果某台手机: - 丢了; - 借给别人了; - 不再使用; - 你怀疑它不安全; 回到电脑: ## **设置 → 远程控制 → 已授权设备** 找到那台设备。 点击: # **撤销** 撤销以后: ## **旧设备权限立即失效。** 它原来的授权不能继续使用。 --- # 11. 怀疑不止一台设备?全部撤销 如果你不确定哪台设备出了问题: 点击: # **撤销全部设备** 系统会要求确认: > 确定要撤销全部设备吗?所有手机将需要重新配对。 确认以后: **所有已授权设备都需要重新完成配对。** --- # 12. 怎么停止远程控制? 暂时不用了? 回到: ## **设置 → 远程控制** 点击: # **停止远程控制** 正在连接过程中,也可以点击: # **停止** 停止以后,不要继续使用之前显示的临时访问地址或旧二维码。 下次需要时重新开启远程控制,以设置页当前显示的状态和地址为准。 --- # 13. GitHub 身份验证是什么?必须用吗? # **不是必须。** 默认的一次性 QR / 8 位码已经可以完成设备首次配对。 GitHub 身份验证属于: ## **可选的身份增强能力。** 如果你希望绑定自己的 GitHub 身份: 进入远程控制设置中的: # **GitHub 身份认证** 点击: # **绑定 GitHub** 然后按照页面提示: 1. 打开 GitHub 授权页面; 2. 输入当前页面显示的设备验证码; 3. 使用你自己的 GitHub 账号确认授权; 4. 等待 DSH 完成身份绑定。 --- ## ⚠️ GitHub 授权时有一个很重要的安全原则 页面会提醒你: > **只批准由你本人刚刚在当前设备发起的 GitHub 验证。** 如果有人在聊天里发给你一个 GitHub Device Code,说: > “帮我输一下。” 不要批准。 **只输入你刚刚自己点击「绑定 GitHub」以后,当前 DSH 页面生成的验证码。** GitHub 身份验证过程中使用的 Token: - 不写入项目配置; - 不保存到浏览器; - 不写入日志; - 完成身份确认以后不会作为长期 GitHub Token 保存。 --- # 14. 怎么更新插件? ![DSH Remote Web Gateway](assets/update-zh.png) 插件会定期检查新版本。 如果发现更新: 进入: ## **设置 → 远程控制 → 插件更新** 你会看到: - 当前版本; - 新版本; - 更新说明。 确认以后点击: # **立即更新** 安装结束以后会提示: > **更新已安装,需要重启 DSH 后生效。** 注意: # **插件不会偷偷重启你的 DSH。** 正在跑 Agent? 你可以先把工作做完。 然后自己选择合适的时候重启。 如果更新失败: **当前版本继续运行。** 不会因为更新失败把现有插件直接弄坏。 --- # 15. 为什么第一次启动可能要下载 Cloudflare Tunnel? DSH Remote Web Gateway 默认使用: # **Cloudflare Quick Tunnel** 电脑需要一个 `cloudflared` 客户端来建立这个临时安全通道。 如果当前环境没有符合要求的版本: 插件会自动准备它。 所以第一次开启远程控制,有时会比之后慢一点。 你可能会看到: > 正在下载 Cloudflare Tunnel… 并显示: - 已下载大小; - 当前网络方式; - 当前下载源。 --- # 16. 下载很慢怎么办? 先不用自己到 GitHub 找 exe。 插件已经提供: ## 下载网络 - **自动(推荐)** - 直连 - 自定义代理 以及: ## 下载源 - **自动(推荐)** - 仅官方源 - 备用镜像 通常建议先保持: # **自动(推荐)** 自动模式会根据当前 Windows 网络环境选择可用路径。 如果官方下载连接失败、首包长时间没有到达,或者速度异常: 插件可以尝试经过审核的备用下载路径。 --- ## 备用镜像是不是“下载了另一个版本”? 不是。 备用镜像只解决: > **从哪里把同一个文件下载回来。** 并不会因为走镜像就跳过安全校验。 下载完成以后仍然会做固定版本和完整性验证。 所以: > **换传输路径 ≠ 降低验证标准。** --- # 17. 我公司代理需要账号密码怎么办? 当前自定义代理设置里: **不会保存代理用户名和密码。** 如果你的网络必须使用带凭据的代理,请使用: ```text HTTPS_PROXY ``` 这类环境代理配置。 不要把: - 用户名; - 密码; - Token; 直接写进公开截图、Issue 或聊天记录。 --- # 18. 常见情况 ## 点了「开启远程控制」,二维码没有马上出现 先看状态。 如果还是: > 正在建立安全连接… **继续等。** 二维码只会在 Tunnel 真正 Ready 以后出现。 --- ## 二维码出现以后手机打开 Cloudflare 1033 正常版本里: **二维码只有在 Tunnel Ready 以后才会出现。** 如果仍然遇到 1033: 1. 不要不断疯狂刷新; 2. 回电脑停止远程控制; 3. 再重新开启一次; 4. 如果仍然复现,把错误页面时间、DSH 日志和问题现象交给 Troubleshooting / AI 排查。 ### 🧰 [查看故障排查](TROUBLESHOOTING.md) --- ## 显示「设备已成功配对」,二维码不见了 正常。 Ticket 已被使用。 连接第二台设备: # **点「生成新的配对码」。** --- ## 显示「配对码已过期」 正常。 一次性配对凭证有有效期。 点击: # **生成新的配对码** 重新配对。 --- ## 被撤销的手机突然 401 / 无法访问 正常。 撤销就是为了: # **立即收回这台设备的访问权限。** 重新授权需要再次完成配对。 --- ## cloudflared 下载失败 先: 1. 检查当前网络; 2. 保持「自动(推荐)」重试; 3. 看是否识别到了系统代理; 4. 必要时尝试自定义代理或备用下载源。 不要为了修这个问题: - 删除整个 DSH_HOME; - 重装 Node; - 改系统 PATH; - 随便下载一个来历不明的 cloudflared。 --- ## 检查更新显示「暂时无法检查更新」 如果 npm registry 当前不可达(或你安装的是未发布到 registry 的本地构建包),可能出现这个提示。 这不会影响: **当前已经安装版本继续运行。** --- ## 检测到已有 Cloudflare 配置 不要看到这个提示以后直接删除自己的 Cloudflare 配置文件。 如果你的电脑本来就在运行其它 Cloudflare Tunnel: ### 🧰 先查看 [Troubleshooting](TROUBLESHOOTING.md) 确认真实冲突以后再处理。 --- # 🤖 19. 还是没解决?把项目链接 + 报错一起交给 AI 不要只发一句: > “这个插件坏了,怎么办?” 信息太少,AI 很容易凭经验乱猜。 建议你把: 1. 项目地址; 2. 当前报错; 3. 截图; 4. DSH 版本; 5. 你刚刚做了什么; 一起给它。 然后复制下面这段。 ## 📋 AI 排障提示词 ```text 我正在使用: DSH Remote Web Gateway 项目: https://github.com/summer1238/dsh-remote-web-gateway 我现在遇到的问题是: 【把你的问题写在这里】 报错 / 日志: 【把不含 Token、Cookie、密码等敏感信息的日志贴在这里】 请先阅读项目当前最新的: 1. README 2. docs/USER_GUIDE.md 3. docs/TROUBLESHOOTING.md 然后再分析。 要求: 1. 不要凭历史知识猜当前项目实现。 2. 先判断问题发生在哪一层: - DSH / 插件加载 - cloudflared 下载 - Quick Tunnel - Pairing - Device Session - GitHub 身份验证 - 更新 - 网络 / 代理 3. 优先使用只读检查确认真实状态。 4. 不要直接删除 DSH_HOME、插件目录、用户配置或会话。 5. 不要执行 git reset / clean、批量删除、修改系统 PATH、结束不明进程等破坏性操作。 6. 如果确实需要修改或删除东西,先告诉我: - 要改什么 - 为什么 - 风险是什么 - 如何恢复 等我确认后再执行。 7. 不要让我公开: - Cookie - Pairing Secret - GitHub Token - API Key - 代理密码 8. 如果截图或日志里可能含敏感信息,请先提醒我脱敏。 9. 如果项目 Troubleshooting 已经有对应问题,优先按照官方文档处理。 10. 最后告诉我: - 根因 - 你做了什么 - 是否已经修复 - 是否还有风险 现在请先分析,不要先执行破坏性操作。 ``` --- # 20. 分享截图 / 求助前,记得先检查敏感信息 尤其不要公开: - 当前仍然有效的 QR; - 当前仍然有效的 8 位配对码; - Pairing Secret; - Device Cookie; - GitHub Device Code; - API Key; - 代理密码; - 公司项目路径或源码内容。 如果你必须发截图求助: # **先停止远程控制,或者等当前 Pairing Ticket 失效,再发图。** --- # 21. 想了解它为什么这样设计? 普通使用到这里就结束了。 如果你还想知道: ### 🛡️ [威胁模型](THREAT_MODEL.md) 为什么: **链接不是权限、一次性配对、设备独立授权、管理面不暴露公网。** ### 🏗️ [架构说明](ARCHITECTURE.md) 手机、Quick Tunnel、Remote Web Gateway 和本地 DSH 到底怎么连。 ### 🧰 [故障排查](TROUBLESHOOTING.md) 按真实症状查问题。 ### 💻 [兼容性](COMPATIBILITY.md) 哪些系统和设备已经真实验证。 ### 🔐 [Security Policy](../SECURITY.md) 发现安全漏洞时如何报告。 --- # 最后记住三件事 ## **二维码出现再扫。** 因为出现以前,安全连接还在建立。 ## **有效期内的配对码不要分享。** 它虽然是一次性的,但在成功使用之前仍然是真实凭证。 ## **设备不再可信,就撤销。** 远程权限不是给出去以后就收不回来。 **你始终可以在电脑端管理自己的授权设备。**