dsh-remote
Discovered★ 52公网远程控制 DeepSeek Harness(dsh web):安装即得专属加密地址,人在外面也能用手机远程访问,无需同一局域网/WiFi、无内网穿透,可选自建服务。Remote control DeepSeek Harness (dsh web) from anywhere — encrypted public URL, no LAN required.
dsh-remote — 手机远程控制 DeepSeek Harness(全功能 · App 级体验)
离开电脑也能用手机 100% 全功能接管电脑上的 DeepSeek Harness(
dsh web)——发消息、看工具执行、审批权限、改设置、管凭据(含特权操作),操作体验与坐在电脑前完全一致。免内网穿透,局域网即连。一条命令安装:
npx @mrrisega/dsh-remote
dsh-remote 是一个轻量的隧道模式远程控制方案:电脑端运行一个守护进程(bridge),
主动连接中继服务器(relay-router)注册为在线设备;手机浏览器打开 PWA 页面,
登录后选择设备,即可经隧道进入电脑上的 dsh web(HTTP / WebSocket 全量透传)。
手机浏览器
└─ /app/ (PWA) 登录 → /_devices 实时设备列表 → 选择设备
│
nginx (HTTPS)
├─ /app/ → 静态 PWA (native.html)
├─ /_devices /_quota /_login /remote/ /_bridge / → relay-router
└─ /_bridge → relay-router (WebSocket)
└→ bridge (电脑端) → 127.0.0.1:3080 (dsh web)
0.6.4 速览(首次安装不再卡)
- 登录后 bridge 自动连上,全程零刷新:面板自动补运行环境 → 拉起 bridge → 显示「正在连接中继…」,连上后自动变成「已连接 ✅」并刷新二维码与设备列表;失败有可读原因、自动重试倒计时和「复制诊断信息」。
- 手机端自动等待电脑上线:空设备列表不再让人干等或手动刷新,电脑一上线设备自己出现。
- 安装引导改版:有插件市场入口就搜索
dsh-remote安装(不用敲命令);没有就复制一条命令;两条路都收敛到「登录后稍等,电脑会自己出现」。 - 安装输出更干净:不再重复打印同一段引导,结尾只给一份汇总(地址 / 自启动服务 / 下一步);装完当下 dsh web 没开着也会如实说明「打开 dsh web 后 bridge 会自动启动」,不再像报错。
- macOS 26 自启动死角已修:macOS 26 会把
gui/<uid>会话域置为 on-demand-only,RunAtLoad/KeepAlive失效(服务只登记不启动,runs = 0)。现在优先用user/<uid>域启动(该域仍支持开机自启与崩溃自愈),失败才回退gui/<uid>+kickstart(只拉起这一次,会明确告知不支持崩溃自愈),再不行退化为后台进程(现在能用、无自启)。自启动服务的 PATH 也补了/usr/sbin、/sbin(bridge 要调ioreg)。
0.6.2 起已有
- 插件市场安装即可用:市场只装「面板插件」,桌面运行环境(bridge + 自启动)由插件在后台自动补齐;修掉了 「装完 bridge 起不来且永远不自愈」的三处根因(运行环境缺失仍写自启动 → launchd 崩溃循环;崩溃循环被误判成 「运行中」→ 自愈停摆;自愈顺序把运行环境排到最后)。
- 首次安装/更新后一键重启 DeepSeek harness:面板顶部醒目提示「首次安装需要重启 DeepSeek harness」+ 「重启」按钮,面板最底部常驻「🔄 重启 DeepSeek harness」;重启后页面自动恢复,不用手动刷新。
- 状态不再说谎:面板把「运行环境安装中 / 启动失败(已自动转入修复)」如实展示,不再把崩溃循环显示成「运行中」。
0.6.1 起已有
- 首次安装体验修复:装完插件立即登录,二维码与已授权设备列表不再报「尚未登录」红字;中继未就绪时面板自动退避重试,不用再手动刷新页面。
- 企微交流群:README 底部扫码入群;服务端可在管理后台「推广」页上传交流群二维码,官网、付费页底部、设置面板「加入交流群」按钮与用户反馈页会同步展示。
0.6.0 起已有
- 扫码即加密,不再要求再输一次密码:用电脑生成的二维码/一次性链接进入后,由电脑自动授权开启端到端加密;密码登录点设备也自动解锁。全程不输 E2EE 密码、不存服务端。
- 记住本机:刷新/重开不掉回明文:解锁一次后,手机 App 刷新、镜像页刷新都自动恢复加密(退出登录即清除;浏览器无痕可不用此功能)。
- 移动端体验:选完会话抽屉自动收起;加密状态徽标几秒后自动缩成小 🔒 不挡界面;修复了移动端设置里“模型提供方目录加载失败”。
- 电脑端侧栏:官方「设置」旁新增「📱 远程访问」快捷按钮(与官方按钮共存、不遮挡),一键进入远程访问面板。
界面预览
| 手机端进入 dsh web,100% 还原电脑端体验 | 手机端密钥登录后的在线设备列表 |
|---|---|
|
|
|
| 电脑端 dsh web 插件设置(自建服务模式) |
|---|
|
|
两个版本
| | 开源版(本仓库) | SaaS 云服务版 |
|---|---|---|
| 服务器 | 你自己部署(任意有公网 IP 的机器) | 由服务商托管 |
| 账号体系 | 无需账号:访问密钥认证(/_login 换本地 JWT) | 手机号 + 短信验证码 |
| 后台管理 | 无(密钥即实例管理员) | 超管后台(用户/套餐/审计) |
| 流量配额 | 可选(环境变量覆盖默认值) | 按套餐分层限速限流 |
| 许可证 | 本仓库(见下文 License) | 商业授权,闭源 |
两者可随时切换:电脑端插件面板「连接模式」一键切换,互不影响。
👉 不想自建服务器 / 没有公网 IP? 直接使用官方云服务版(托管 relay,无公网、4G、异地也稳定,多设备 + 超管后台): https://n.risegao.cn:13443/app/ (免费版 + PRO ¥19/月 + Pro Max ¥49/月,新用户送 7 天 PRO)。 客户端仍是同一条命令安装
npx @mrrisega/dsh-remote,登录后选择「云服务模式」即可。
安装
需要 Node.js ≥ 20。电脑端一条命令完成安装:自动安装 bridge 与 dsh web 插件、 写入配置、创建开机自启服务:
npx @mrrisega/dsh-remote
安装完成后无需任何命令:打开 dsh web → 设置 → 「远程访问」,注册/登录手机号即可
(注册在手机端完成,登录后 bridge 自动启动;自建用户在同一面板切「自建服务」标签)。
原来的独立设置页(dsh-remote settings)已移除,避免与插件面板重复造成困惑。
自建模式(自己部署了 relay-router,无需账号体系):
npx @mrrisega/dsh-remote setup --server wss://<你的域名>:端口 --key <访问密钥>
其他命令:status(查看状态)、run(前台调试)、settings(仅显示登录指引)、
plugin(重装/卸载 dsh web 插件)。运行 npx @mrrisega/dsh-remote --help 查看完整说明。
版本与更新 / 卸载:dsh 官方插件市场目前不提供更新按钮,也不会改写用户补丁(因此市场 卸载会提示「仍通过 insert 引用 dsh-remote-web」而拒绝)。插件设置面板里已内置管理入口 (dsh web → 设置 → 「远程访问」→「🔄 版本与更新」卡片):显示当前版本、自动检测 npm 新版、 一键在线更新(后台补运行环境并重启 bridge,完成后重启 dsh web 生效)、以及彻底卸载 (移除补丁 include / 依赖 / bundle 与本地文件,之后市场卸载或直接重启均可完成卸载)。
源码安装(开发 / 自建服务器):git clone https://github.com/mrRisega/dsh-remote.git
并 npm install,见下文各组件说明。
安全与隐私
传输与会话
- 全程 HTTPS/WSS(TLS)加密传输;远程访问需先在电脑端登录你的手机号账号,登录会话不 在中继之外暴露,bridge 按需代持浏览器会话仅供你本人手机使用。
- 电脑端生成的访问链接为一次性扫码登录:30 分钟有效、访问一次即失效、可随时在 「已授权设备」里取消配对;链接不会二次使用,不用时也可点「刷新」立即作废旧链接。
端到端加密(E2EE,灰度开启中)
- 开启后,手机 ↔ 电脑之间远程操作的消息内容(对话、工具执行、审批、凭据与文件等 正文及 WebSocket 消息)在离开手机前用你的账号密码派生密钥加密、进入电脑后才解密; 中继(router/nginx/enterprise)只可见路由所需信息——目标路径、数据大小与时间——无法读取内容。
- 服务端与中继不保存你的密码明文,也不保存解密密钥:只保存密码经不可逆 KDF 派生的 校验值用于登录,与加密密钥域分离(详见 docs/e2ee-protocol.md)。
- 请牢记账号密码:修改/重置密码会使全部旧设备会话失效,且服务端不保存你的内容、 无法代为解密旧会话;改密后需在电脑端面板重新登录并重启 bridge,手机端重新解锁。
- 电脑端本机配置(
.dsh-config.json,0600)会保存账号密码用于自动登录,等于该账号 内容的“解密权”,请妥善保护电脑;电脑被他人使用期间请退出登录。
边界与建议(如实告知)
- E2EE 保护的是内容:HTTPS 下的静态页面壳与路由元数据(页面骨架、路径、大小、时间、 是否加密)仍对中继可见;既有登录、配额与审计不受影响。
- E2EE 为灰度功能:以服务端开关逐步放量(默认关闭 = 走 HTTPS 明文回退),面板会显示 当前加密状态与原因(已启用 / 等待服务端开启 / 普通安全连接等),不会静默降级。
- 建议上线前用真机回归一次完整链路:手机登录解锁 → 🔒 加密访问(对话/工具/审批/凭据)→ 明文回退提示 → 修改密码后旧会话全部失效、重新登录恢复。
匿名装机统计与隐私
生产诊断发现「注册了但设备一直没连上」的用户没有任何账号数据、无法归因,因此插件内置了一条 匿名装机统计通道,只上报装机与连接是否成功:
- 采:事件名(安装开始/失败原因/运行环境就绪/bridge 是否注册成功/首次远程打通/面板打开/重启/更新)、
失败码(白名单,如
npm_unreachable、npm_eacces、runtime_install_timeout)、插件版本号、 系统平台(darwin/linux/win32)、架构(arm64/x64)、node 主版本号, 以及一个本机随机 ID(crypto.randomUUID(),非硬件派生、重装即变、不可跨机器关联); - 不采:手机号 / 邮箱 / 账号 ID、任何会话或文件内容、真实 hostname / 用户名 / 文件路径、
密码与密钥、设备指纹
machine_fp、原始 IP、精确地理位置;请求不带 Authorization(匿名、与账号解耦); - 可关:
export DSH_REMOTE_TELEMETRY=0→ 完全关闭(不生成随机 ID、不落任何文件、不发任何请求); 也可在中继/Nginx 侧直接丢弃POST /api/telemetry/events; - 可查:面板「关于 dsh-remote」卡片底部有一行说明与链接,完整字段清单与核实方法见 docs/telemetry.md。
数据与隐私
上一节讲的是「匿名装机统计」这条通道本身;这一节回答更常见的问题:你的数据落在哪里、我们到底统计什么。
开源部分采集 / 不采集
- 采(开源部分只有一件事):装机与连接是否成功这条匿名统计通道,字段清单见上一节。
- 不采:你的会话内容(对话、工具执行、审批、凭据、文件正文与 WebSocket 消息——中继侧不采集内容)、 你的账号(匿名通道不接受任何账号/设备关联,请求不带 Authorization)、原始 IP (匿名通道不上报 IP,也不做任何按 IP 的关联分析)、真实 hostname / 用户名 / 文件路径。
- 官方云服务额外记录的:只有接入事件(注册 / 设备接入 / 真实登录 / 首次打通 / 首次看到安装引导), 同样是事件级、不含任何内容。开源部分不产生也不上报这类事件。
- 装机漏斗统计的粒度:云服务的漏斗统计建立在审计日志之上,因此口径是「注册 / 新增设备 / 真实登录 / 首次打通」这类事件条数——不是内容,也不是行为轨迹。 桥接进程每次启动都会重新登记设备,重复登记不记为新增,所以「新增设备数」对得上真实装机量, 不会被反复重连刷高。
- 完整字段级清单、可核实方法与自行关闭方式见 docs/telemetry.md。
如何关闭
export DSH_REMOTE_TELEMETRY=0 # 完全关闭匿名装机统计:不生成随机 ID、不落文件、不发请求
也可在网络侧直接丢弃 POST /api/telemetry/events(中继 / Nginx / 防火墙),
关闭后不影响面板、bridge 与连接流程的任何功能。
自建模式(self-hosted)
自己部署 relay-router 时,数据只落到你自己的服务器:
- 匿名统计发往你在
.dsh-config.json里配置的api_url(即你的实例),不经过任何第三方服务; - 没有账号体系、也没有管理端后台,不存在「注册 / 接入事件」的云侧统计;
- 远程操作的内容只经过你自己的中继;开启 E2EE 后端到端加密(手机 ↔ 电脑),中继也读不到内容;
- 是否保留数据、保留多久,完全由你决定;不想留任何统计就
DSH_REMOTE_TELEMETRY=0。
自建部署(开源版)
-
在有公网 HTTPS 入口的服务器上部署
relay-router(见 docs/self-hosting.md):git clone https://github.com/mrRisega/dsh-remote.git && cd dsh-remote npm install bash deploy/install-open.sh # 生成 open.env(0600)并启动 router或 Docker:
DSH_LOCAL_JWT_SECRET=… DSH_LOCAL_ACCESS_KEYS=… docker compose up -d -
nginx 反代:参考 deploy/nginx-13443-remote-router.conf (
/app/静态 PWA、/_bridgeWebSocket 升级、其余路径转 router)。 -
手机打开
https://<你的域名>/app/,用访问密钥登录。 -
被控电脑执行上面的
npx … setup --server … --key …。
组件
| 组件 | 位置 | 说明 |
|---|---|---|
| relay-router | packages/relay-router/ | 中继服务器:bridge 注册表、实时设备列表、HTTP/WS 透明代理、配额 |
| bridge | clients/dsh-remote/ | 电脑端守护进程:连 router 注册,把转发帧代理到本地 dsh web;心跳自愈 |
| PWA | clients/dsh-web/native.html | 手机端:登录 / 注册 / 设备选择(单文件,零构建) |
| dsh web 插件 | packages/dsh-remote-web/ | 设置页「远程访问」面板:连接模式 / 账号 / bridge 启停 / 反馈 |
| 部署脚本 | deploy/ | install-open.sh 自建引导、nginx 参考配置、Dockerfile / compose |
测试:npm test(router 契约 + 插件 + bridge 全部单测与回归)。
企微交流群
扫码加入 企微交流群:安装/使用答疑、问题反馈、版本更新都会在群里同步,欢迎来聊。
也可以在仓库提 Issue;安全相关问题请按 SECURITY.md 私下反馈。
文档
- docs/self-hosting.md — 开源自建完整指南(含安全提示)
- docs/telemetry.md — 匿名装机统计:采集/不采集清单与关闭方法
- CONTRIBUTING.md — 贡献指南
- SECURITY.md — 安全策略与漏洞报告流程
- CHANGELOG.md — 版本记录
License
本仓库使用 PolyForm Noncommercial 1.0.0(LICENSE): 个人、研究与非商业用途免费;商业用途(含内部自用与对外服务)需要商业授权, 见 COMMERCIAL-LICENSE.md。
说明:本仓库是源码公开、非商业许可的项目,不属于 OSI 意义上的“开源”; 云服务(多用户账号、超管后台)为闭源商业组件,不在本仓库内。
Similar plugins
by summer1238
手机平板远程 DeepSeek Harness:扫码即可继续使用电脑上的 DSH,无需远程桌面 / SSH / 公网 IP,支持一次性配对、Github授权加密登录,独立设备授权与随时撤销,实现远程连接很简单,但安全才是我们所想要的。
★ 148
↓ 170/wk
MIT
TypeScript
Aug 28, 2026
dsh plugin --profile web add dsh-remote-web-gatewayby rice-awa
把 DeepSeek Harness 的 Web GUI 安全地开放到局域网或公网,自带密码鉴权,支持可选的TLS。Securely expose DeepSeek Harness's Web GUI to your local network or the public internet, with built-in password authentication and TLS support
★ 4
↓ 70/wk
MIT
TypeScript
Sep 13, 2026
dsh plugin --profile web add @riceawa/dsh-lan-gatewayby imchenmin
在将 DeepSeek Harness Web 开放给局域网、远程设备、反向代理或共享环境之前,为它增加密码保护。Add password protection to DeepSeek Harness Web before exposing it to your LAN, remote devices, reverse proxies, or shared environments.
★ 0
MIT
JavaScript
Aug 18, 2026
dsh plugin --profile web add dsh-auth-lockby liguobao
一个基于 DeepSeek Harness 插件机制构建的多端远程访问方案,通过安全、低延迟、端到端加密的 P2P 优先网络,支持从 PC、Android 和 Web 随时访问并操作远程 Harness 和 CodeX。 (A multi-device remote access solution built on the DeepSeek Harness plugin system, enabl
★ 191
↓ 1.1k/wk
TypeScript
Sep 14, 2026
dsh plugin --profile web add ds-harness-remoteby shaobeichen
把 DeepSeek Harness 装进你的口袋:电脑上跑 dsh web,手机扫码即同步访问(局域网 + 公网,实时同屏)Put DeepSeek Harness in your pocket: run dsh web on your computer and access it synchronously by scanning a QR code on your phone (LAN +
★ 1.1k
↓ 4.4k/wk
GPL-2.0
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-pocketby godchen520
DSH 手机/外网远程访问插件:免配置公网隧道 + 局域网 HTTPS 直连 + 自定义公网链接/端口 + 微信机器人
★ 10
↓ 398/wk
MIT
JavaScript
Sep 13, 2026
dsh plugin --profile web add dsh-web-remote