57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
---
|
||
title: "RustDesk"
|
||
type: entity
|
||
tags: [远程桌面, 开源, Rust]
|
||
last_updated: 2026-04-14
|
||
---
|
||
|
||
# RustDesk
|
||
|
||
开源远程桌面软件,支持自建中继服务器,可在任意网络环境下实现远程控制。
|
||
|
||
## 基本信息
|
||
- **类型**:远程桌面软件
|
||
- **开源协议**:Apache 2.0
|
||
- **技术栈**:Rust
|
||
- **官网**:https://rustdesk.com
|
||
|
||
## 核心特性
|
||
- **自建中继服务器**:不依赖第三方服务器,可完全自托管,保护隐私
|
||
- **跨平台支持**:Windows / macOS / Linux / Android / iOS
|
||
- **点对点直连**:同网络下自动建立 P2P 连接,减少延迟
|
||
- **中继Fallback**:P2P 失败时自动切换到中继服务器
|
||
|
||
## Ubuntu 24.04 Wayland 兼容性
|
||
|
||
Ubuntu 24.04 默认使用 Wayland 显示协议,而 Wayland 基于安全设计严格限制外部程序在未登录状态下(Login Screen)获取屏幕控制权,导致 RustDesk 无法在 GDM 登录界面工作。
|
||
|
||
### 解决方案
|
||
修改 `/etc/gdm3/custom.conf`,将 `WaylandEnable=false` 取消注释,强制 GDM 使用 X11:
|
||
|
||
```bash
|
||
sudo nano /etc/gdm3/custom.conf
|
||
# 找到并修改:
|
||
[daemon]
|
||
WaylandEnable=false
|
||
# 保存后重启:
|
||
sudo systemctl restart gdm3
|
||
```
|
||
|
||
此配置使 RustDesk 能在以下场景正常工作:
|
||
- **登录前(Login Screen)**:GDM 使用 X11,RustDesk 可识别窗口并交互
|
||
- **登录后(Post-Login)**:X11 的稳定性和权限开放度优于 Wayland
|
||
|
||
## 相关配置
|
||
- [[X11]] — 显示协议(替代 Wayland 的兼容性方案)
|
||
- [[Wayland]] — Ubuntu 24.04 默认显示协议(导致问题的原因)
|
||
- [[GDM3]] — GNOME Display Manager,控制显示协议切换
|
||
- [[Ubuntu Server]] — 部署 RustDesk 的目标操作系统
|
||
|
||
## 与其他远程桌面方案对比
|
||
| 方案 | 自托管 | 跨平台 | Wayland 支持 | 中继服务器 |
|
||
|------|--------|--------|--------------|------------|
|
||
| RustDesk | ✅ 完全开源 | ✅ 全平台 | ❌ 需切换到 X11 | ✅ 可自建 |
|
||
| TeamViewer | ❌ 闭源 | ✅ 全平台 | ⚠️ 部分支持 | ❌ 依赖官方 |
|
||
| AnyDesk | ❌ 闭源 | ✅ 全平台 | ⚠️ 部分支持 | ❌ 依赖官方 |
|
||
| VNC | ✅ 开源 | ✅ 全平台 | ❌ 需额外配置 | ❌ 需手动设置 |
|