开源架构与私有化部署——BilldDesk 的技术选型
技术栈选型
BilldDesk 选择了一套相当现代化的技术栈,各模块职责清晰:
| 模块 | 技术方案 | 职责 |
|---|---|---|
| 前端界面 | Vue3 + WebRTC | 网页端界面、低延迟音视频传输、交互逻辑 |
| 桌面客户端 | Electron + Vue3 | Windows / macOS 桌面端打包 |
| 移动客户端 | Flutter3 | Android 端,一套代码适配多端 |
| 后端服务 | Node.js + Koa2 + Redis | 信令服务器、数据缓存、高并发处理 |
| 音视频引擎 | 定制 WebRTC | P2P 点对点传输、NAT 穿透、中继回退 |
| 系统 API | Win32 / Cocoa / AccessibilityService | 各平台系统级键鼠模拟、屏幕捕获、权限申请 |
编程语言覆盖 JavaScript/TypeScript、Dart、Kotlin、C++、Swift 五种,技术栈横跨 Web 和原生两端。
开源版与 Pro 版的区别
BilldDesk 有两个版本线:
- 开源版(billd-desk):GitHub 公开源码,MIT 类许可。功能上做了一些裁剪——不支持屏幕墙、批量群控、隐私屏、虚拟屏、驱动级键鼠、后台管理等高阶功能。适合个人开发者二次学习和简化场景使用。
- Pro 版(billd-desk-pro):客户端完全免费开放全部功能,但源码闭源,需购买后才能获取。适合商业用户和需要完整功能的场景。
两个版本的客户端在官方网站都可以直接下载,Pro 版解锁的高阶功能在客户端内默认可用。
私有化部署方式
BilldDesk 从架构设计上就考虑了私有化部署需求:
- Docker 一键部署:服务端组件封装成 Docker 镜像,一条命令即可拉起中继服务器和信令服务
- 自定义中继服务器:客户端可手动填写自建的中继服务器地址,绕过官方中继
- 自定义接口:支持自定义 WebSocket 信令接口和 REST API 接口
- 源码购买二次开发:Pro 版源码购买后可自由修改定制
私有化部署的典型场景包括:企业内部远控平台、云网吧 / 云手机运营商的批量管理后台、对数据安全有严格要求的政府 / 金融机构。
数据安全
BilldDesk 在安全方面的设计包括:
- AES 加密传输:所有远程会话数据均经过 AES 加密,防止中间人窃听
- 自定义鉴权机制:除了设备码 + 密码的默认鉴权,还支持自定义鉴权接口
- 仅允许同账号远程:开启后,只有登录同一账号的设备才能发起远程,防止陌生人连接
- 进程保活:Windows 端支持进程保活,被控端进程异常退出后自动重启,适合无人值守场景