- Startseite
- Plugins
- Sicherheit & Berechtigungen
- dsh-remote-mobile
dsh-remote-mobile
iceapriler/dsh-remote-mobile
DeepSeek Harness 移动端与远程访问安全网关插件 | DeepSeek Harness (DSH) Mobile & Remote Access Security Guard Plugin: Tailscale & LAN bypass, QR scan auth, RSA encryption, brute-force protection, and realtime SSE push.
Installation
dsh plugin --profile web add github:iceapriler/dsh-remote-mobileREADME
dsh-remote-mobile
DeepSeek Harness (DSH) 远程与移动端安全网关插件
零改动底层代码 · 突破本地限制 · 扫码直连 · 工作区全功能复用 · 传输层加密
这是什么 • 核心优势 • 快速开始 • 必备配置 • 界面预览 • 功能特性 • 安装方式 • 常见问题
📖 这是什么
dsh-remote-mobile 是专为 DeepSeek Harness (DSH) 深度定制的远程与移动端安全治理插件。
DSH 核心服务出于安全考虑默认仅监听本地回环地址(127.0.0.1),手机、平板或其他电脑无法从外部访问 Web 控制台。本项目通过访问控制中间件与请求隔离技术,安全地开放了 Tailscale 虚拟私网 以及 本地局域网 (Wi-Fi/LAN) 访问能力,并提供传输加密、扫码配对、长期密码认证与防暴力破解审计体系。
⚡ 核心优势
- 🚀 突破网络壁垒,工作区全功能复用:解决局域网和 Tailscale 无法访问 DSH Web 的问题。在移动端或外部设备访问时,支持新建工作区、切换工作区、执行终端命令等桌面端核心功能。
- 📱 手机端与 Web 同源复用:手机端直接复用 DSH Web 官方同源底座与完整生态插件(如
dsh-pet宠物、任务看板等),后端与服务逻辑保持一致,后期只需按需适配移动端响应式样式即可,无需单独维护手机端后台。 - 🛡️ 安全门禁与传输加密:内置 RSA 非对称公钥加密、
scrypt加盐慢哈希密码落盘、连续输错自动熔断锁定 IP,拦截公网/局域网未经授权的访问。 - 📲 扫码快速配对:自动识别并生成 Tailscale CGNAT 与局域网专属访问链接与二维码,手机扫码即可完成长效授权。
- 🔄 SSE 实时状态推送:设备上线、下线、注销、IP 锁定等安全事件即时推送,无需前端轮询。
🚀 快速开始
1. 一键安装插件
在终端执行 DSH 官方插件安装指令(推荐):
dsh plugin --profile web add dsh-remote-mobile
2. 必备前置配置(开放外部监听)
由于 DSH 默认仅监听 127.0.0.1,为了使 Tailscale 私网或局域网设备能够正常连通,请确保在 ~/.dsh/profiles/web/cordis.patch.yml 中包含以下配置:
# 1. 允许 webserver 监听外部网络连接(必选)
- id: webserver
name: '@deepseek-ai/dsh-host-webserver'
inject: [webStartup]
config:
host: '0.0.0.0'
port: 3080
# 2. 禁用 @linxin666/dsh-web-ui-all 内置的远程插件(必选:防止功能冲突)
- id: web-ui-remote-web-ui
disabled: true
💡 说明:插件自身注册已由 DSH Bundle 体系全自动处理,无需在
cordis.patch.yml中额外添加id: remote-mobile。
3. 启动并使用
dsh web --no-open
启动后,在电脑浏览器打开 DSH Web 控制台,进入 设置 ⚙️ -> 远程与移动端,使用手机微信或系统相机扫描二维码即可立即开启移动端接入!
🖼️ 界面预览
PC 端 DSH 插件控制面板
| 网络接入与扫码配对 | 长期密码、设备会话与 IP 防暴破审计 |
|---|---|
![]() | ![]() |
手机端实机演示(同源免登与工作区全功能)
| 手机扫码授权登录页 | 手机端完整控制 DSH 工作区与操作 |
|---|---|
![]() | ![]() |
🌟 功能特性
1. 网络接入支持
- Tailscale 虚拟私网:自动识别本机 Tailscale IP(
100.64.0.0/10CGNAT 网段),生成专属访问二维码,支持开启免密直连(底层传输加密由 Tailscale WireGuard 隧道保障)。 - 本地局域网 (LAN / Wi-Fi):自动识别 RFC 1918 私有 IP(如
192.168.x.x、10.x.x.x、172.16-31.x.x),提供局域网专属二维码与直达链接预览,附带醒目的高危风险提示。 - 二维码快速配对:支持手机相机或微信扫码直达授权页面。
2. 多重认证机制
- 动态 6 位配对码:生成 6 位短期配对码(5 分钟有效,一次性使用),手机端扫码输入后换取 365 天有效期的安全认证 Cookie。
- 长期访问密码:支持设置自定义长期访问密码(长度需至少 6 位且含字母与数字),便于多设备长期固定登录。
- 免密直连模式:可针对 Tailscale 或局域网环境单独切换免密直连。关闭免密直连后会自动清理临时设备凭证并重置状态。
- 设备会话管理:实时查看已连接设备的类型、操作系统、浏览器、来源 IP 及最近活跃时间,支持单设备注销与一键注销全部设备。
3. 安全防护
- 传输层 RSA 非对称加密:登录认证接口支持客户端 RSA 加密。在 HTTPS 等安全上下文下优先使用 Web Crypto 原生
RSA-OAEP-SHA256;在 DSH 默认的 HTTP 局域网/Tailscale 访问(非安全上下文)下回退至纯 JS 垫片,并使用crypto.getRandomValues()进行密码学安全随机数填充。敏感密码与配对码在客户端加密后再通过网络传输。 - scrypt 慢哈希存储:服务端采用
scrypt加盐慢哈希算法(scrypt:${salt}:${hash})对密码进行落盘存储,比对过程采用crypto.timingSafeEqual恒定时间比较以防范时序侧信道攻击。 - 防暴力破解与限频保护:
- 连续输错凭证达到阈值(默认 5 次)自动锁定该 IP 15 分钟,拦截后续验证请求并返回 HTTP 429;
- 滑动窗口限频(默认 60 次/分钟),防范高频恶意刷量探测;
- 访问审计与锁定状态持久化落盘,服务重启后自动恢复;
- 支持管理员在管理面板中一键解锁指定 IP。
- 智能静态资源放行机制:安全门禁内置智能前端静态扩展名识别(放行
.js、.css、.png、.svg、.woff2等 20+ 种合法资源),彻底拦截无扩展名或动态管理 API 请求(如/plugins/xxx/admin),确保第三方生态插件前端正常展示的同时严密保护后台动态接口,无需用户在设置界面手动维护白名单。 - 高可靠原子持久化与防抖:采用 500ms 写盘防抖节流保护磁盘 I/O,配合
beforeExit进程退出 Flush 保证数据不丢失;配置文件采用临时文件原子替换(renameSync),防止异常中断损坏数据。 - 真实 IP 安全提取:仅信任底层 Socket 真实连接地址,防范伪造的
X-Forwarded-For欺骗攻击。
4. 实时状态同步与国际化
- SSE 实时事件推送:基于 Server-Sent Events 实现新设备接入、设备重连、会话撤销及安全告警的实时通知,内置连接双向关闭监听与幂等清理。
- 全界面中英文双语自适应:根据 DSH 全局语言偏好与浏览器环境,动态自适应中英文面板、提示及手机端界面。
- 非 HTTPS 兼容补丁:自动注入
crypto.randomUUIDPolyfill,解决移动端浏览器在 HTTP 非安全上下文下缺少原生 API 的报错。
📦 全部安装方式
展开查看全部 4 种安装方式
方式 1:通过 DSH 命令行一键安装(最推荐)
dsh plugin --profile web add dsh-remote-mobile
方式 2:通过 Web 设置页「插件管理」图形化安装
- 在浏览器打开 DSH Web 控制台;
- 点击左下角 设置 ⚙️ -> 插件;
- 切换到顶部的 「插件管理」 Tab;
- 在输入框中输入 npm 包名
dsh-remote-mobile,点击 「安装」; - 安装完成后重启 DSH 即可生效。
方式 3:在 Profile 目录中通过包管理器安装
# 1. 进入 DSH Web Profile 目录
cd ~/.dsh/profiles/web
# 2. 通过 pnpm 安装
pnpm add dsh-remote-mobile
方式 4:本地源码开发与调试(软链接即时生效)
# 1. 克隆代码至本地
git clone https://github.com/IceApriler/dsh-remote-mobile.git
cd dsh-remote-mobile
# 2. 安装依赖并编译打包
npm install
npm run build
# 3. 建立软链接到 DSH 运行环境(开发修改后 npm run build 即时生效)
rm -rf ~/.dsh/profiles/web/node_modules/dsh-remote-mobile
ln -s $(pwd) ~/.dsh/profiles/web/node_modules/dsh-remote-mobile
卸载插件
dsh plugin --profile web remove dsh-remote-mobile
⚙️ 高级配置
插件已完全接入 DSH 官方 Settings 体系,配置项支持在 Web 界面中直观调整,也可在 ~/.dsh/settings.yaml 的 dsh-remote-mobile 命名空间下手动修改:
dsh-remote-mobile:
allowTailscale: false # boolean,默认 false:是否允许 Tailscale 虚拟私网免密访问
allowLan: false # boolean,默认 false:是否允许局域网免密访问(高危警示)
secretHash: "" # string,默认空:长期访问密码的 scrypt 加盐哈希值
maxVisitsPerMinute: 60 # number,默认 60:单 IP 每分钟最大访问登录页次数
maxFailedAttempts: 5 # number,默认 5:触发封禁的连续认证失败最大次数
lockDurationMs: 900000 # number,默认 900000 (15分钟):IP 锁定持续时间(毫秒)
📂 本地文件存储位置
| 文件路径 | 说明 | 安全级别 |
|---|---|---|
~/.dsh/settings.yaml | 全局安全策略与免密开关配置 | 用户级读写 |
~/.dsh/remote-mobile/devices.json | 已授权设备会话、IP 访问计数与安全审计数据 | 本地落盘持久化 |
~/.dsh/remote-mobile/rsa-keys.json | 服务端 RSA 密钥对文件(含公钥与私钥) | 本地落盘,权限 0o600(仅当前用户可读写) |
❓ 常见问题 (FAQ)
Q1: 手机扫码后提示「连接被拒绝」或无法打开页面?
答:请检查以下三项:
- 确保电脑上的
cordis.patch.yml中已配置host: '0.0.0.0',且 DSH 已经重启; - 局域网访问时,确保手机与电脑连接在同一个 Wi-Fi / 路由器下;
- 如果开启了电脑操作系统自带的防火墙,请确保允许入站访问
3080端口。
Q2: Tailscale 免密直连和局域网免密有什么区别?
答:
- Tailscale 免密:高度安全。因为 Tailscale 是基于 WireGuard 的传输加密虚拟私网,只有你自己登录了同一账号的设备才能连通。
- 局域网免密:存在安全隐患。任何连入你家 Wi-Fi 的设备(包括访客或蹭网设备)均可直接控制你的工作区,因此非完全可信环境切勿开启。
Q3: 手机端切换或新建工作区能正常使用吗?
答:支持。本插件通过请求隔离技术,使手机端与 PC 桌面端拥有一致的工作区管理与执行能力。
📄 开源许可证
本项目采用 MIT License 协议开源。
Ähnliche Plugins
api-relay-audit
toby-bridges/api-relay-audit
dsh-auto-review
perrylink/dsh-auto-review
dsh-claude-ux
eri64/dsh-claude-ux
dsh-remote
xgone/dsh-remote



