学习搭建:远程桌面软件-rustdesk

0. 为什么关注这个项目

这一段是:认知记录

  • 我在寻找一款开源、安全的远程桌面解决方案
  • 我需要一个无需配置、开箱即用的远程控制工具
  • 我希望找到一个可以自托管的远程桌面软件,以保护数据安全

这会让我以后回头看时,我会知道自己当时的思考路径,这是非常有价值的。


1. 项目概览

这个项目属于:

  • 自托管工具
  • 开发工具
  • 基础设施

项目定位:一款开源、安全、开箱即用的远程桌面软件,无需任何配置,让用户完全掌控数据。

Github:https://github.com/rustdesk/rustdesk

Star:68.3k+

License:AGPL-3.0

语言/技术栈:

  • Rust
  • Flutter
  • C++

项目成熟度/复杂度:

  • 生产可用
  • 中等

2. 解决什么问题

2.1 这个领域原本怎么做

传统的远程桌面工具要么需要复杂的配置,要么依赖第三方服务器,要么存在安全隐患。

2.2 现有方案问题

  • TeamViewer:收费软件,依赖第三方服务器
  • AnyDesk:部分功能收费,同样依赖第三方服务器
  • VNC:配置复杂,安全性较差
  • RDP:仅支持Windows,需要端口转发

2.3 这个项目的思路

RustDesk 采用 P2P 连接方式,优先直接连接,仅在需要时使用中继服务器,同时提供自托管选项,确保数据安全和隐私保护。


3. 架构分析

3.1 整体架构

RustDesk 采用客户端-服务器架构,主要组件包括:

  • 客户端:跨平台桌面应用,支持 Windows、macOS、Linux、Android、iOS
  • 中继服务器:当 P2P 连接失败时使用
  • ID 服务器:用于用户身份验证和连接建立

3.2 关键模块

  • 屏幕捕获:不同平台的屏幕捕获实现
  • 远程控制:鼠标、键盘事件的传输和处理
  • 文件传输:支持在远程会话中传输文件
  • 音频传输:支持远程音频
  • 加密模块:确保通信安全
  • P2P 连接:实现直接点对点连接

4. 核心设计思想

4.1 技术选型分析

为什么使用:

  • Rust:提供内存安全和高性能
  • Flutter:实现跨平台客户端
  • C++:用于部分平台特定的功能实现

4.2 设计思想分析

这个项目体现:

  • 安全优先:端到端加密,保护通信安全
  • 去中心化:优先 P2P 连接,减少对中心化服务器的依赖
  • 开箱即用:无需复杂配置,安装即可使用
  • 跨平台:支持多种操作系统和设备

5. 功能分析

5.1 整体架构

  • 客户端-服务器架构:客户端负责用户交互,服务器负责连接建立和中继
  • 跨平台:支持 Windows、macOS、Linux、Android、iOS

5.2 核心模块

  • 远程控制:实现鼠标和键盘的远程控制
  • 屏幕共享:实时共享远程屏幕
  • 文件传输:在远程会话中传输文件
  • 音频传输:支持远程音频
  • 多显示器支持:可以选择显示远程主机的多个显示器
  • 自托管服务器:支持部署自己的 ID 和中继服务器

5.3 数据流分析

1
2
3
4
5
6
7
8
9
10
11
用户发起连接

ID 服务器验证身份

尝试 P2P 连接

如果 P2P 失败,使用中继服务器

建立加密通信通道

远程控制和数据传输

6. 部署与体验

6.1 部署难度

  • 客户端:非常简单,直接下载安装即可
  • 自托管服务器:中等,需要配置 ID 服务器和中继服务器

6.2 资源占用

  • 客户端:轻量级,资源占用低
  • 服务器:中等,取决于并发连接数

6.3 使用体验

  • 界面简洁直观,操作简单
  • 连接速度快,响应及时
  • 画质清晰,支持不同分辨率
  • 支持文件传输,使用方便
  • 自托管选项提供更高的安全性

7. 类似项目对比

项目 复杂度 技术栈 适用场景
RustDesk 中等 Rust、Flutter 个人和企业远程支持,自托管需求
TeamViewer 复杂 未知 商业远程支持,跨平台需求
AnyDesk 中等 未知 商业远程支持,性能要求高
VNC 简单 多种语言 技术人员远程管理,局域网使用
RDP 中等 微软技术 Windows 环境远程管理

8. 优缺点分析

优点:

  • 开源免费,可自托管
  • 开箱即用,无需配置
  • 跨平台支持
  • 优先 P2P 连接,速度快
  • 安全性高,端到端加密

缺点:

  • 部分高级功能可能不如商业产品
  • 自托管服务器需要一定技术知识
  • 网络环境复杂时连接可能不稳定

9. 我的判断

我认为:

这个项目:

  • 适合谁:需要远程桌面功能的个人用户,注重数据安全的企业,需要自托管解决方案的组织
  • 不适合谁:对远程桌面功能有极高要求的专业用户,没有技术能力部署自托管服务器的用户
  • 未来如何:有很大的发展潜力,社区活跃,功能不断完善,有望成为开源远程桌面的标准解决方案


学习搭建:远程桌面软件-rustdesk
https://blog.doracoin.cc/posts/opensource/19486.html
作者
Doracoin
发布于
2026年3月26日
更新于
2026年3月26日
许可协议