📌 项目地址:rustdesk/rustdesk | ⭐ 120,540 颗星 | 🔧 Rust | 📜 未标注
它解决了什么问题
远程桌面工具是刚需,但主流商业软件(TeamViewer、AnyDesk)的隐私政策、连接限制和收费策略让很多人不舒服。RustDesk 的定位很明确:开源、自托管、开箱即用的远程桌面。用 Rust 编写,默认无需任何配置就能跑起来,你也可以部署自己的 rendezvous/relay 服务器,完全掌控数据流经的每一台机器。官方甚至允许你写一套自己的服务器实现(参考 rustdesk-server-demo)。
注意 README 开头的警告:开发者不纵容任何未授权访问或侵犯隐私的行为,请确保使用场景合法合规。
怎么用:先跑起来
RustDesk 的使用分两层:
直接使用官方服务
从 Releases 下载对应平台的二进制包,安装后两台设备输入同一个 ID 和密码即可连接。官方提供了 rendezvous/relay 服务器,所以“开箱即用”。
自托管服务器
如果你不想数据经过官方服务器,可以 set up your own 自行部署服务端。这会让你拥有完全的控制权,也是 RustDesk 区别于主流闭源工具的核心能力。
从源码构建(参考 README)
README 给出了原生构建步骤。注意桌面 GUI 目前有两种:Flutter 和旧的 Sciter(deprecated)。README 里的教程只针对 Sciter,因为更简单友好。Flutter 版本构建请参考 CI 配置文件(.github/workflows/flutter-build.yml)。
依赖
需要准备 Rust 开发环境和 C++ 构建环境。GUI 用的 Sciter 动态库需要自行下载:
- Windows:
sciter.dll - Linux:
libsciter-gtk.so - macOS:
libsciter.dylib
构建步骤
- 安装 vcpkg,并正确设置
VCPKG_ROOT环境变量。 - 安装依赖库:
– Windows:vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
– Linux/macOS:vcpkg install libvpx libyuv opus aom - 运行
cargo run
Linux 上(Ubuntu 18 / Debian 10)还需要安装系统包,例如:
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev c
注意上一条命令在 README 中是不完整的(末尾“c”是截断),完整依赖列表请参考 官方构建文档。
和同类工具的区别
TeamViewer 和 AnyDesk 是闭源软件,你无法审查其代码,也无法控制中转服务器。RustDesk 的核心差异在于:
- 代码完全开源,可审计、可修改。
- 自托管:把你的 rendezvous/relay 服务器部署在自己的 VPS 或内网,连接不经过第三方。
- 多语言支持:README 提供了几十种语言的翻译链接,社区国际化程度高。
- 跨平台发布渠道完整:除了 GitHub Releases,还有 F-Droid 和 Flathub,方便 Linux/Android 用户。
一个独特的场景:企业内部网络隔离,不允许任何流量经过外部服务器,但又需要技术支持人员远程帮员工解决问题。RustDesk 可以完全部署在内网,不依赖公网,这是闭源商业工具很难做到的。
需要注意的事项
- 默认使用官方服务器:如果你不改配置,连接数据会经过 RustDesk 官方的 rendezvous/relay 服务器。虽然官方说无需担心安全,但真正在意隐私的话,请自托管。
- Sciter 版本已弃用:README 标明 Sciter 是 deprecated,新开发以 Flutter 为主。构建示例用 Sciter 是为了简单,生产使用建议用 Flutter 构建的版本。
- 警告条款:RustDesk 明确禁止未经授权的访问和控制。用于非法用途后果自负。
- 翻译需要社区帮助:README、UI 和文档的翻译都还在征集贡献者,说明项目仍在快速迭代中,API 和文档可能变化。
适合谁
如果你对远程桌面的数据流有洁癖,或者你需要一个能在内网完全自托管的远程支持方案,RustDesk 是目前最活跃的开源选择之一。如果你只是想临时远程一下别人电脑,用它替代 TeamViewer 也很简单——下载即用。