跳到主内容

dsh-Remote 使用指南

DSH 远程控制台:插件 + 内置网关 + Android 应用,支持手机/桌面查看会话、传输文件、Token 统计与远程启停 DSH。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-Remote

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add dsh-remote

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 自动化测试:当前 16 项测试覆盖鉴权 / 路径穿越 / 符号链接逃逸 / Range / 断点续传 SHA-256 / 事件轮询 / Token 统计 / 发布一致性。
  • CI 自动构建:APK + Linux/Win 单文件网关 + npm 发布 + 独立仓库同步。
  • Editor Picks 精选:Editor Picks
  • 多市场收录:awesome-dsh-plugin / Oh-My-DSH / dsh-suite / dsh-plugins-store / vlln/plugin-registry。
  • DSH Compat:每周自动在最新 DSH 上验证插件可安装、可加载(compat workflow)。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

这个插件能做什么?

在 DSH 侧边栏加一个 "DSH Remote" 入口,打开抽屉式快速面板和完整管理控制台;内置一个会随 DSH 自动启停的远程网关,让你在手机 App、桌面浏览器或另一台电脑上查看会话、处理审批、传输文件,并远程启动 / 重启 / 关闭本机 DSH。手机端和桌面端同时附带 Token 用量统计。

安装后需要做什么才能用?

安装到 web profile 后完整重启 DSH Web(systemctl --user restart dsh-web 或手动停掉再启动),然后在 DSH 主机上访问 http://127.0.0.1:8787/health 看到 JSON 即可。手机装好 APK 后在"设置 → 服务器"扫码或手填主机局域网 IP + 令牌即可连上。手机不要填 127.0.0.1 或 localhost,它们指向手机自身。来源:README.md:144-156、packages/plugin/index.mjs:14-50。

必须用插件吗?能不能单独跑网关?

可以。仓库附带 gateway.js 单文件网关(Node 零依赖),可用 pkg 打包为 Linux/Windows 单文件;不安装插件也可用 ./dsh-remote-linux-x64 直接运行,手机 / 桌面端访问 http://主机IP:8787 即可。来源:package.json:20-29、README.md:206-216、gateway.js:1-24。

令牌放在哪里?怎么轮换?

默认在 ~/.dsh-remote/token(mode 0600),首次启动自动生成;环境变量 TOKEN / TOKEN_FILE / DSH_REMOTE_TOKEN 可覆盖。从管理控制台点"轮换令牌"会立即写新令牌并踢掉所有已连接设备,旧连接全部失效。来源:gateway.js:191-220、packages/plugin/index.mjs:43-50、gateway.js:1642-1663。

文件传输能传多大?能不能访问任意目录?

默认单文件上限 2GB,由 DSH_REMOTE_FS_MAX_UPLOAD 调整;分块、断点续传、暂停 / 继续 / 取消、SHA-256 校验落位都支持。默认根目录为用户主目录 ~,DSH 已登记工作区会自动放行;其他目录用 DSH_REMOTE_FS_ROOT(Linux/macOS 用 :,Windows 用 ;)添加。../ 路径穿越、绝对路径逃逸和指向允许根外的符号链接会被拒绝。来源:README.md:218-238、gateway.js:128-189、gateway.js:1749-1796。

实时消息是怎么连的?断网了怎么办?

客户端通过网关 /api/events.mux 和 /api/events.host 两个 WebSocket 通道走 DSH 的下行-only 协议(不发应用层心跳);网关侧维持两个集中 collector 与 DSH 单条上游长连接,多客户端共享。客户端用 1.5s 起、60s 上限的指数退避重连 + 20% 抖动;单通道连续失败 3 次自动降级到 4s 一次的 /api/events.poll 轮询,30s 后尝试恢复 WS。来源:AGENTS.md:21、gateway.js:893-979。

可以在手机上远程启动 / 重启 DSH 吗?

可以。网关提供 /admin/api/dsh 异步追踪 systemd 服务检查、命令提交、进程启动、DSH HTTP 恢复、mux/host 实时通道重连五个阶段,成功返回 PID + HTTP 状态 + 用时,失败细分为服务不存在、systemd 不可用、权限不足、命令失败、服务失败、启动超时、HTTP 恢复超时、实时通道恢复超时。Windows 暂不支持通过 systemd 远程控制 DSH。来源:public/index.html:934(错误码清单)、gateway.js:603、README.md:32-38。

公告和峰谷提醒怎么工作?

公告从默认 HTTPS 中央源 https://vm-0-2-ubuntu.tail1f6fc4.ts.net/announcements.json 拉取,App 前台每 30 秒检查、缓存 15 秒,中央源失败优先保留上次成功内容,冷启动失败回退内置文件;DSH_REMOTE_ANNOUNCEMENTS_URL 可覆盖、设为空字符串可禁用。峰谷计费提醒仅在 Android App 内有效,由 PeakReminderService 前台服务驱动(30s 检查 9/12/14/18 点切换,周末全天按谷时仅 9 点提醒一次),绕开 MIUI/HyperOS 后台限制。来源:README.md:253-298、android/.../PeakReminderService.java:23-47。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 未声明(通过 dsh.client.inject 注入 @deepseek-ai/dsh-client-runtime 与 dsh-client-ui-slots;plugin 侧依赖 ctx.webServer / ctx.commands / ctx.agents 三个服务,gateway 侧通过 DSH_UPSTREAM 默认 127.0.0.1:3080 反向代理)
  • Node: >=18(packages/plugin/package.json:44-46);网关单文件产物打包目标为 node22-linux-x64 / node22-win-x64 / node22-macos-arm64(package.json:25-28)

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则