中文EN

dsh-remote-mobile

remote已测通过npmMIT

远程与移动端安全网关:零改动 DSH 底层代码开放 Tailscale/局域网访问,支持扫码配对、RSA 加密、防暴力破解与移动端样式片段;与其他远程插件共存时自动让出共享配对服务,避免启动崩溃。

下载量 / Downloads
4,750
依赖体积 / node_modules
0.74 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-remote-mobile

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<div align="center">

dsh-remote-mobile

DeepSeek Harness (DSH) 远程与移动端安全接入代理插件

![npm version](https://www.npmjs.com/package/dsh-remote-mobile)

![npm downloads](https://www.npmjs.com/package/dsh-remote-mobile)

![node](https://nodejs.org)

![license](https://github.com/IceApriler/dsh-remote-mobile/blob/master/LICENSE)

![DSH](https://github.com/IceApriler/dsh-remote-mobile)

![PRs Welcome](https://github.com/IceApriler/dsh-remote-mobile/pulls)

<p align="center">

<b>无需修改 DSH 源码(运行时插件接管) · 局域网 / Tailscale 安全接入 · 扫码配对 · 移动端样式适配 · 工作区能力复用 · 实时状态推送</b>

</p>

<p align="center">

📱 <b>桌面级移动工作台</b>:手机上也能新建 / 切换工作区、执行终端命令<br>

🛡️ <b>多重安全认证</b>:扫码配对 · 长期密码 · 免密直连 + RSA 加密 + 防爆破封禁<br>

🎨 <b>移动端样式片段</b>:内置三段预设,不满意可自定义 CSS

</p>

[English Documentation](./README_EN.md) · [简体中文](./README.md)

<p align="center">

<a href="#about">这是什么</a> •

<a href="#advantages">核心优势</a> •

<a href="#quick-start">快速开始</a> •

<a href="#modes">接入模式</a> •

<a href="#config">网络配置</a> •

<a href="#preview">界面预览</a> •

<a href="#features">功能特性</a> •

<a href="#install">安装与更新</a> •

<a href="#advanced">高级配置</a> •

<a href="#storage">本地文件存储</a> •

<a href="#faq">常见问题</a>

</p>


</div>

<span id="about"></span>

📖 这是什么

dsh-remote-mobile 是专为 DeepSeek Harness (DSH) 深度定制的远程与移动端安全治理插件。

DSH 核心服务出于安全考虑默认仅监听本地回环地址(127.0.0.1),手机、平板或其他电脑无法从外部访问 Web 控制台。本项目通过访问控制中间件与请求隔离技术,安全地开放了 Tailscale 虚拟私网 以及 本地局域网 (Wi-Fi/LAN) 访问能力,并提供登录凭证 RSA 加密、扫码配对、长期密码认证与防暴力破解审计体系。插件本身不提供全链路 TLS;完整传输加密需依赖 Tailscale 或外层 HTTPS。

手机端访问时,插件还针对 DSH 界面做了移动端样式适配:侧边栏抽屉折叠与可拖拽展开把手、新版官方三栏 Grid 布局与右侧边栏兼容、设置弹窗居中微缩、对话正文高密度排版等,让手机上的使用体验更贴近桌面端。


<span id="advantages"></span>

⚡ 核心优势

  • 🚀 突破网络壁垒,复用桌面端能力:用于在局域网 / Tailscale 下访问 DSH Web。在移动端或外部设备访问时,支持新建工作区、切换工作区、执行终端命令等常用桌面端操作。
  • 📱 手机端专属适配与同源复用:直接复用 DSH 官方 Web 前端(手机与桌面是同一套界面)与各类生态插件(如侧边栏、任务看板、终端面板等),无需单独维护手机端后台。插件已针对移动端做好了基础响应式适配(如侧边栏抽屉折叠、设置弹窗居中、对话正文字号与行距精细调小以提升一屏信息量),并内置样式片段覆写功能,支持开箱即用或按需注入自定义 CSS 样式小插件。
  • 🛡️ 安全门禁与登录凭证加密:登录凭证使用 RSA 非对称公钥加密,scrypt 加盐慢哈希密码落盘,连续输错自动熔断锁定 IP,拦截公网/局域网未经授权的访问。
  • 📲 扫码快速配对:自动识别并生成 Tailscale CGNAT 与局域网专属访问链接与二维码,手机扫码打开已预填配对码的登录页,确认后完成授权。
  • 🔄 SSE 实时状态推送:设备接入、重连、注销、IP 锁定等事件通过 SSE 推送;设置页仍保留低频轮询作为兜底。
  • 🤝 插件通用共存保护:与其他远程/Web 接入类插件并存时自动让出共享服务,尽量避免共存冲突导致启动失败,设置页提供冲突警示横幅与一键复制的「诊断与修复报告」。

<span id="quick-start"></span>

🚀 快速开始

1. 一键安装插件

在终端执行 DSH 官方插件安装指令(推荐):

dsh plugin --profile web add dsh-remote-mobile
[!IMPORTANT]
生态插件安装建议:不建议安装 @linxin666/dsh-web-all 全家桶,更推荐按需安装单体功能插件。全家桶将多个前端模块合并打包,可能引发移动端悬浮入口重复与手势交互冲突;如需任务看板、宠物等生态功能,建议直接安装对应的单体包(原因、推荐命令与共存说明见 [常见问题 Q6](#faq))。

<span id="config"></span>

2. 前置配置(插件 1.10.0+ 无需 webserver 配置)

本插件 1.10.0+ 不需要修改 webserver 或 cordis.patch.yml:

  • DSH 0.2.1+ 保持默认 127.0.0.1:3080;
  • 本插件自动启动 3081 安全接入代理;
  • 手机扫码或使用长期密码即可接入。
本节适用于本插件 1.10.0+。
安全权衡说明:安全接入代理默认监听 0.0.0.0:3081(暂不含 TLS)。若在公共 Wi-Fi 或未经保护的网络下使用,建议配合 Tailscale(WireGuard 隧道加密)或外层 HTTPS。

<details>

<summary><b>插件 1.9.0 之前的配置迁移(DSH 0.2.1+)</b></summary>

本插件 1.9.0 之前的配置,或曾手动配置 webserver.host: 0.0.0.0 的配置,需要按以下步骤迁移。本插件 1.10.0+ 可直接跳过本节。

DSH 0.2.1+ 会拒绝 0.0.0.0,并在插件加载前直接启动失败。请删除或注释整个 webserver 配置块:

# ❌ DSH 0.2.1+ 下会启动失败
# - id: webserver
#   host: '0.0.0.0'

# ✅ 保持默认回环监听
# 无需配置 webserver;DSH 使用 127.0.0.1:3080,
# dsh-remote-mobile 自动使用 3081 安全接入代理。

不确定当前配置时:

grep -n -A5 'id: webserver' ~/.dsh/profiles/web/cordis.patch.yml

若看到 host: '0.0.0.0',删除对应配置块;没有则无需处理。

DSH 0.1.7 ~ 0.2.0 可以保留 0.0.0.0,插件会回退 direct 模式;若通过自定义域名或公网 IP 访问,请配置 trustedHosts。

</details>

如果您安装了其他可能产生冲突的插件,推荐在 ~/.dsh/profiles/web/cordis.patch.yml(Windows 对应 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml)中禁用冲突项:

# (推荐)只保留一款远程/Web 接入类插件,避免功能重复与入口混乱
# 本插件与其他远程接入类插件共存时也能正常启动:检测到配对共享服务被占用
# 会自动让出,并在设置页顶部展示警示横幅说明详情。
# 示例:禁用 @linxin666/dsh-web-ui-all 内置的远程插件
- id: web-ui-remote-web-ui
  disabled: true
💡 说明:插件自身注册已由 DSH Bundle 体系全自动处理,无需在 cordis.patch.yml 中额外添加 id: remote-mobile。Windows 用户可按 Win + R 键输入 %USERPROFILE%\.dsh\profiles\web 快速直达配置目录。
[!WARNING]
不建议安装聚合全家桶(@linxin666/dsh-web-all):它会把多个子插件的前端逻辑合并打包到同一个 client.js 中,加载时自执行,可能与本插件产生移动端入口重复与手势冲突。推荐按需安装所需单体插件(如任务看板、宠物等)。完整原因、推荐命令与共存说明见 [常见问题 Q6](#faq)。

3. 启动并使用

dsh web --no-open

启动后,在电脑浏览器打开 DSH Web 控制台,进入 设置 ⚙️ -> 远程与移动端,使用手机微信或系统相机扫描二维码进入配对/登录页,完成授权后即可使用。

设置面板按 「接入 / 设备与安全 / 样式覆写 / 本地数据」 四个页签分组显示,避免长页面;页签选择会被记住,切换不重置配对码等状态。

<span id="modes"></span>

🧭 版本与接入模式

本插件 1.10.0+ 默认使用 proxy,不需要配置 webserver:

场景 · DSH 核心监听 · 生效模式 · 手机访问

DSH 0.2.1+ + 插件 1.10.0+ · 127.0.0.1:3080 · proxy · 3081

DSH 0.1.7 ~ 0.2.0 + 0.0.0.0 配置 · 0.0.0.0:3080 · direct(自动回退) · 3080

DSH 0.2.1+ + 具体网卡 IP · 192.x.x.x:3080 · direct · 3080

同机反向代理 · 127.0.0.1:3080 + 显式 direct · direct · 反代入口

  • proxy:推荐;核心保持回环,插件在 3081 提供认证与转发。
  • direct:不启动代理;要求核心本身对外可达,主要用于 DSH 0.1.7 ~ 0.2.0 的 0.0.0.0 配置或高级部署。
  • direct + 回环核心:DSH 只监听 127.0.0.1,手机无法直接访问;只有再通过同机 Nginx / Caddy / Tailscale Serve 等反向代理转发到 3080 时才有意义,否则只能本机使用。
访问链路与认证判定

判定不能只看 TCP 来源 IP(socket 地址):Host 与 X-Forwarded-* 也会改变结果。socket IP 是服务器看到的 TCP 对端地址,不是 Host,也不是 X-Forwarded-For。

访问方式 · 链路 · 判定 · 插件登录

A 本机直连 · PC → 127.0.0.1:3081 · 本机回环(loopback) · 不需要

B 手机直连 · 手机 → 192.x.x.x:3081 / 100.x.x.x:3081 · 外部直连(external) · 需要(可开 allowLan/allowTailscale 免密)

C 同机反向代理 · 手机 → Nginx → 127.0.0.1:3081

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:17,最后更新 2026-11-03

链接

GitHub · Homepage · npm

同类插件