发布于 2026-11-01 09:04 · 2 次阅读

Billd‑Desk:基于 WebRTC 的开源私有化远程桌面方案

项目地址:https://github.com/galaxy‑s10/billd‑desk

远程桌面工具早已成为远程办公、运维排障、设备调试的刚需。商业远程软件如向日葵、ToDesk 虽然开箱即用,但存在连接数量限制、高级功能付费、数据经过第三方服务器等痛点。而Billd‑Desk,一款开源 MIT 协议的远程桌面项目,给出了另一种选择:基于 WebRTC 实现、支持私有化部署、浏览器即可作为主控端,摆脱商业平台的约束。

一、项目概览

Billd‑Desk 是一套全栈远程桌面控制系统,采用 Vue3 + Node.js + Electron + Flutter + WebRTC 构建,支持 Windows、macOS、Android 作为被控端,浏览器网页直接作为主控端是它最大的亮点之一,无需安装客户端即可发起远程连接。

和 RustDesk 不同,Billd‑Desk 选择标准 WebRTC 协议作为底层传输,依赖 Coturn 作为中继服务,这就带来一个核心优势:任意现代浏览器都能直接控制设备,不需要预先安装主控软件;代价是需要自行维护中继服务,对部署有一定要求。

注意:官方提示,当前版本尚未达到稳定生产级别,存在权限、设备控制层面的已知短板,不建议直接用于正式生产业务,适合个人、测试环境、技术研究使用。项目分为 Billd‑Desk 原版与 Billd‑Desk Pro,Pro 版本针对原版架构缺陷做了优化迭代。

二、核心技术栈拆解

  • 前端网页主控:Vue3 + TypeScript,WebRTC、WebCodecs、Canvas,浏览器直接完成画面解码、键鼠指令下发,不用安装程序。
  • 后端服务:Node.js + Koa2 + Socket.io,搭配 MySQL、Redis,负责设备注册、信令转发、会话管理;可对接 Coturn 中继服务器处理 NAT 内网穿透问题。
  • 桌面被控端:Electron,适配 Windows/macOS,实现屏幕捕获、键鼠模拟、文件传输、系统托盘、开机自启无人值守能力。
  • 安卓被控端:Flutter,实现安卓设备被电脑、浏览器远程控制,这也是很多开源远控缺少的能力。
  • 编解码能力:支持 H.264、H.265、AV1、VP8/VP9,支持 NVIDIA、AMD、Intel 硬件编解码加速,最高支持 2K@60fps 画面输出,兼顾画质与带宽消耗。

三、主要功能特性

基础远程能力

  1. 多端互控:电脑控电脑、电脑控安卓、安卓控安卓、浏览器网页控电脑 / 安卓。出门在外,打开浏览器输入地址,就可以访问家里或公司的电脑desk.hssli...。
  2. 无人值守访问:开机自启、进程保活,设置固定设备码和访问密码,无需人工确认即可接入设备,适合运维管理测试机器。
  3. 剪贴板同步、双向文件传输,远程场景复制粘贴、互传文件无需额外工具。
  4. 多显示器支持,识别被控端多块屏幕,自由切换控制对应屏幕。

特色高级功能

  1. 隐私屏:远程会话开启后,被控主机屏幕黑屏,防止旁边的人看到操作画面,主控端正常显示桌面,保护操作隐私desk.hssli...。
  2. 虚拟屏幕:可以创建虚拟显示设备,不占用物理显示器,无显示器主机也可以远程操作。
  3. 屏幕墙与批量群控:同时预览多台设备画面,支持批量下发操作指令,适合 IT 运维、测试设备集群管理场景。
  4. 驱动级键鼠模拟,部分场景规避游戏、软件的输入风控限制,支持快捷键映射自定义desk.hssli...。
  5. 完全私有化部署,所有信令、媒体流可经过自己的服务器,数据不经过第三方服务商,对数据隐私敏感的场景非常友好。

四、和主流远程工具对比思考

表格

项目Billd‑DeskRustDeskToDesk / 向日葵
开源协议MIT 开源AGPL 开源闭源商业软件
网页主控✅浏览器直接控制❌需要客户端网页版功能阉割
私有化部署✅需部署 Coturn 中继✅自带中继服务部分版本支持私有化
安卓被控✅Flutter 客户端✅高级功能付费
缺点未稳定,需维护中继服务浏览器无法做主控连接数、高级功能收费

Billd‑Desk 最大差异化就是Web 主控,浏览器打开页面就能远程,这个特性在临时应急、多人协助场景非常实用;但代价是运维成本提升,你需要准备服务器部署后端、Coturn 穿透服务,适合有一定技术能力的用户,普通小白开箱即用体验不如商业软件。

五、适合与不适合的人群

✅ 适合使用场景

  1. 开发者学习 WebRTC、跨平台桌面 / 移动端远程控制技术;
  2. 个人爱好者,想要一套完全自己掌控数据的远程工具;
  3. IT 运维,需要管理一批 Windows/macOS/ 安卓测试设备,用到屏幕墙、群控;
  4. 临时远程协助,不想下载客户端,直接浏览器访问即可。

❌ 不建议场景

  1. 零运维能力,只想安装即用,不想折腾服务器部署;
  2. 企业核心生产业务,官方明确当前版本非稳定生产版本;
  3. 需要支持 iOS、Linux 被控端,目前该项目尚不支持这两类平台。

六、部署简要思路

  1. 克隆仓库,准备 Node.js、MySQL、Redis 环境;
  2. 部署 Coturn 中继服务器,解决内网穿透;
  3. 启动后端信令服务,构建网页前端;
  4. Windows/macOS 安装 Electron 被控客户端,安卓安装 Flutter 构建的 APK;
  5. 被控端获取设备 ID + 访问密码,浏览器访问前端页面输入信息建立 WebRTC 远程会话。

提示:项目仍在迭代,部分功能还在完善,部署时建议查阅仓库最新 README 文档,关注 issue 中的已知 bug。

七、总结

Billd‑Desk 不一定适合替代所有人日常使用的商业远程桌面,但它提供了一条很有意思的路线:把 WebRTC 标准能力和远程桌面结合,实现浏览器直接远控,同时完全开源私有化。

如果你厌倦商业软件的各种限制,又有一点服务器运维能力,想要一套属于自己的远程桌面系统,不妨体验这个项目;如果追求稳定开箱即用,则优先选择成熟商业软件或者 RustDesk。对于开发者来说,它也是一份不错学习 WebRTC、跨平台客户端开发的参考工程。

项目 GitHub 地址:https://github.com/galaxy‑s10/billd‑desk