dsh-phone-access

DSH PLUGIN通知与集成

仓库 Hongjun1-RGB/dsh-phone-access

通知与集成 L5 · 运行验证通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

DSH 插件:在界面里拨一个开关,用手机浏览器继续当前会话(内嵌反向代理 + Cloudflare 隧道 + 微信推送)

一句话选型结论

按资料字段整理

dsh-phone-access 是通知与集成类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类通知与集成 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-10-15 创建于 2026-10-14
README 8.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Hongjun1-RGB/dsh-phone-access#v0.1.2
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

通知与集成
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

通知

上游标签

cloudflareddeepseek-harnessdshdsh-pluginmobileremote-access

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在通知与集成场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-phone-access当前 L5 · 运行验证通过 低风险 1 未标注 有
treg L3 · 安装规范通过 低风险 4,976 未标注 无
dsh-purge 未做沙盒验证 未标注 3,412 未标注 有
dsh-im L5 · 运行验证通过 低风险 1,837 0.1.7-rc.2 等 10 个 有
dsh-dafeiyu L5 · 运行验证通过 低风险 425 0.1.7-rc.2 等 10 个 有
dsh-trading L3 · 安装规范通过 低风险 235 未标注 无

仓库档案

通知与集成
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Hongjun1-RGB仓库 dsh-phone-access · 默认分支 main
分类通知与集成notify
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-14 · 2026-10-15最后推送 2026-10-15
本站收录2026-10-30首次进入本站目录的时间

README 全文

8.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-phone-access

在 DSH 界面里拨一个开关,手机浏览器就能接着当前会话用 —— 同一个进程、同一个会话,两端消息实时同步。

┌─────────┐   临时隧道      ┌──────────────┐         ┌─────────────┐
│  手机   │ ─────────────▶ │  本地代理    │ ──────▶ │  DSH 本体   │
│ 浏览器  │  trycloudflare  │ (插件内起) │ loopback│ (你正在用)│
└─────────┘                 └──────────────┘         └─────────────┘

它解决什么问题

想从外面访问家里的 DSH,通常卡在三件事上:

  1. 绑不了 0.0.0.0 —— DSH 出于安全只允许 127.0.0.1 / 0.0.0.0,而后者会把「能执行任意命令的界面」暴露给整个局域网。
  2. /api 的 Host 信任栅栏 —— 只放行 loopback 或配置里声明过的域名,而隧道域名每次都是随机的,无法预先声明。
  3. 主连接是 WebSocket —— 普通反向代理不处理升级握手,界面会一直停在「重新连接中」。

本插件的做法:在本地起一个只监听 127.0.0.1 的微型反向代理,把转发给 DSH 的 Host 改写成 loopback(栅栏于是放行),剥掉 Origin / Sec-Fetch-*(避免被判为跨站),并原样透传 WebSocket 升级。DSH 始终只监听本机,不开任何入站端口。

界面

开关长在鲸鱼娘插件上(如果装了 dsh-whale-widget):

  • 点鲸鱼娘的 ☰ 设置菜单 → 多一行 「手机访问」,带拨动开关和一个小齿轮;
  • 点击后开关立刻到位并保持,鲸鱼开始转圈表示加载;
  • 彻底开好之后鲸鱼身后亮起圆形绿色呼吸光晕;
  • 点那一行右边的 ⚙ 打开推送设置(见下);
  • 没装鲸鱼插件时,回退成自带的小鲸鱼图标(可拖动,右键打开推送设置)。

安装

dsh plugin add dsh-phone-access

装好后重启 DSH,开关即出现。

配置

推送:直接在界面里填(推荐)

点 ☰ 菜单里「手机访问」那行的 ⚙:

┌──────────────────────────────────┐
│ 手机访问 · 推送设置                │
│ 推送方式  [Server酱(微信服务号)▾] │
│ 密钥      [••••••••••••••••••••] │
│           已配置:SCT4••••••••lMZ │
│ 每日上限  [8                    ] │
│           [ 测试 ]  [ 保存 ]      │
│           [ 清除已存密钥 ]         │
└──────────────────────────────────┘
  • 测试:立刻发一条到你的微信,验证填对没有(用的是输入框里的值,不保存也能测)。
  • 密钥存在本机 $DSH_HOME/remote-access/config.json,权限 0600。
  • 界面永远不显示密钥原文 —— 已配置时只显示一串掩码(头 4 位尾 3 位);接口也不提供任何取回原文的途径。

推送:写进 profile 配置(适合批量部署)

在 profile 的 cordis.patch.yml 里覆盖。这里的值优先于界面里存的:

- id: phone-access
config:
cloudflaredPath: ''   # 已安装的 cloudflared 路径。留空则查 PATH / 常见位置,都没有才下载
proxyPort: 19389      # 本地代理端口;被占用会自动顺延
rebuildMinutes: 130   # 主动更换隧道的间隔(分钟)
autoStart: false      # 载入即开启;出于安全默认 false
pushKind: serverchan  # serverchan | wxpusher | pushplus | webhook
pushKey: ''           # 对应渠道的密钥
pushCapPerDay: 8      # 每日推送上限,避免触发推送服务的风控

推送渠道

微信没有个人消息接口,只能经推送服务中转:

pushKind 说明 是否需实名
serverchan Server酱,消息进微信服务号,微信扫码即得 SendKey 否
wxpusher WxPusher,扫码取 SPT 否
pushplus pushplus,消息进微信 是
webhook 企业微信群机器人 Webhook 地址 否

隧道:完全不需要注册

用的是 Cloudflare Quick Tunnel(cloudflared tunnel --url …):

  • 不需要 Cloudflare 账号、不需要域名、不需要任何凭据,也不花钱。
  • Cloudflare 免费发一条随机域名,形如 xxx-yyy-zzz.trycloudflare.com。
  • 代价是域名每次随机、且隧道会被回收(实测几十分钟到数小时)—— 所以插件会主动重建并把新地址推送给你。
  • cloudflared 二进制首次使用时自动从 Cloudflare 官方 Release 下载(约 50MB),不涉及你的任何账号。

顺带做的两件优化

  • 静态资源缓存:DSH 的 /assets/* 不带任何缓存头(无 Cache-Control / ETag / Last-Modified),而文件名里已含构建哈希。经隧道访问时,代理为它们补上一年强缓存 —— 否则手机每次打开都要重下约 1.4MB。图片/字体给一天缓存。
  • 端口自动顺延:默认端口被占用时自动换一个,不和机器上其它隧道/代理打架。

安全说明

请务必理解这个插件做了什么:

  • 默认关闭。只有你手动拨开,才会对外开洞。
  • DSH 仍只监听 127.0.0.1。插件不改 DSH 的绑定,也不动防火墙;对外只有那一条隧道。
  • 访问要过认证。隧道后面是 DSH 自己的会话 cookie 校验;插件自己的路由同样校验 cookie(按 DSH 的规则验签),未登录一律 401。
  • cookie 由本机密钥签发。签名密钥取自 $DSH_HOME/.credentials.yaml,永不打包、永不上传;隧道域名变了会重新签发。派生出来的会话 cookie 通过 /__auth 下发并跳回首页。
  • 链接即权限。拿到完整链接的人就能进入你的会话。别发群里、别贴截图、别提交进仓库。
  • 隧道是临时的。Cloudflare 免费快速隧道会被回收(实测几十分钟到数小时),插件会主动重建并推送新地址。

如果你不接受「机器上存在一条通往你 DSH 的公网链路」,请不要启用它。

兼容性

  • DSH 核心 0.2.0-rc.x(用到 webserver/index-inject 与 webServer.register)。
  • Node 20+(用到全局 fetch)。
  • Windows / macOS / Linux;cloudflared 按平台自动选择资源。

工作原理(给想改的人)

文件 作用
lib/index.js 插件主体:隧道管理、内嵌反向代理、微信推送、HTTP 路由
ui/ui.js 界面集成:鲸鱼娘光晕/转圈/菜单行,回退图标

HTTP 接口(均需会话 cookie):

GET  /remote-access/state         当前状态
POST /remote-access/toggle        { on: boolean }
GET  /remote-access/ui.js         界面脚本
GET  /remote-access/push-config   推送配置(**只回掩码,不回密钥原文**)
POST /remote-access/push-config   { kind, key, cap } 或 { clear: true }
POST /remote-access/push-test     用表单里尚未保存的值发一条测试

几点实现上的坑,写下来省得别人再踩:

  1. webserver/index-inject 的行里,kind: 'script' 的 text 会被当作内联 JS 代码包进 …。直接传 ` 会变成嵌套 script,浏览器按内联脚本解析直接语法错误、什么都不会执行。正确做法是传一段内联 JS,由它去document.createElement('script')(并兼顾document.body` 尚未就绪)。
  2. DSH 的主连接是 WebSocket(/api/remote.mux)。代理必须处理 upgrade 并双向管道,否则界面永远停在「重新连接中」。
  3. COOKIE_PREFIX 是 dsh-auth-,不是 dsh-。名字错了签名再对也验不过。
  4. 加载中不要用 transform: rotate() 让元素转圈,那会覆盖它自身的 transform。用 CSS 的 rotate 属性,两者可叠加。

License

MIT

致谢

  • 界面挂在 dsh-whale-widget(MIT)上协同工作,但不包含也不复制它的任何代码。
  • 隧道由 cloudflared 提供。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-phone-access 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:Hongjun1-RGB/dsh-phone-access#v0.1.2` 即可。

dsh-phone-access 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-phone-access 安全吗?

低风险。

dsh-phone-access 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-phone-access 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
通知与集成
按星标排序,可作替代方案

treg

treg

Treg 是面向 Agent 工具的 OpenRouter,聚合 60 个提供商的 2896 个端点,按调用计费,统一令牌访问,无需注册各供

L3 · 安装规范通过 4,976 星

dsh-purge

dsh-purge

dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚

未标注验证等级 3,412 星

dsh-im

dsh-im

将IM机器人接入DeepSeek Harness,支持飞书、微信、钉钉等九种渠道,通过扫码或凭据配置,统一管理多机器人连接。

L5 · 运行验证通过 1,837 星

dsh-dafeiyu

dsh-dafeiyu

DSH 大肥鱼是一款由 DeepSeek Harness 真实工作状态驱动的桌面伴侣插件,以始终置顶的透明窗口实时展示 Agent 的思考、

L5 · 运行验证通过 425 星

dsh-trading

dsh-trading

L3 · 安装规范通过 235 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。