前言¶
dsh-sakurafrp 是一个为 dsh-mobile 插件设计的卫星插件,用于从 DSH UI 界面直接管理手机与桌面之间的连接(SakuraFrp TCP 隧道 + dsh-mobile 网关)。该插件通过图形化操作替代了原先需要编写脚本、修改 YAML 文件或手动维护 systemd 的流程。
根据 GitHub 仓库说明,该插件属于“Vibe coding”产物,代码由作者与 AI 对话生成并经多轮迭代而来,未经过人工逐行审计。它按 MIT 协议“按原样(AS IS)”提供,不附带任何担保,风险自负。
核心功能¶
该插件提供了以下核心管理能力:
- 链路状态一屏可见:在面板上直接显示网关运行状态、延迟、已配对设备数以及守护状态。
- 一键开关手机访问:通过 UI 直接控制
dsh-mobile的移动网关(等价于 API 调用)。关闭操作会留下抑制标记,防止自愈机制自动拉回。 - 配对二维码:生成一次性配对窗口的二维码与链接,支持手机端扫码配对。
- 设备管理:支持逐台撤销设备或一键清空设备列表。
- 网关自愈:内置自愈机制,每 15 秒检查一次网关状态,发现异常自动拉起。
- 公网可达性探测:每 60 秒探测主入口及运营商前缀节点,面板直接显示连通性。
- 外部守护开关:控制
dsh-mobile-lan-watchdog.service的启停(该服务为冗余层,插件自带自愈已可独立兜底)。
安装与启用¶
安装过程需要执行克隆、进入目录及运行安装脚本。
git clone https://github.com/ankhishtar2-lang/dsh-sakurafrp.git
cd dsh-sakurafrp
bash scripts/install.sh
安装脚本会执行以下操作:
1. 将插件文件拷贝至 $DSH_HOME/profiles/web/node_modules/。
2. 将 dsh-sakurafrp 追加进 dsh.profile.bundles。
3. 进行静态自检(检查 apply 导出是否存在)。
安装完成后,需重启对应的 DSH Web Profile 服务以生效。
典型用法¶
- UI 操作:在 DSH 会话头部工具区点击手机图标按钮(
order: -15),该按钮位于“重启”与“打开文件管理器”之间。在此面板中可查看状态、开关网关、查看二维码及管理设备。 - 配置文件:在
$DSH_HOME/profiles/web/cordis.patch.yml中配置dsh-mobile的移动网关参数(如端口、CA 指纹等)。 - 环境变量:通过设置
DSH_SAKURA_ORIGIN等环境变量来覆盖默认行为或配置公网入口。
依赖与要求¶
该插件有明确的运行期硬依赖和平台限制:
- 运行期硬依赖:
dsh-mobile插件:提供本机管理接口。- SakuraFrp 启动器(
frpc):提供公网 TCP 隧道。
- 平台与版本:
- 操作系统:仅支持 Linux / WSL2。
- Node.js:需要
>= 20。 - DSH 核心:需在
0.1.5-rc.1系列的 web profile 上验证。
- 运行期软依赖:
dsh-mobile-lan-watchdog.service:外部自愈服务(可选)。
注意事项¶
- Vibe Coding 警告:代码由 AI 生成,未经人工审计,不建议直接用于生产环境或处理安全敏感的数据。
- 平台限制:目前仅支持 Linux 和 WSL2,代码中使用了
systemctl --user等 POSIX 特性。 - 许可证:遵循 MIT 协议,按原样提供。