RustDesk:开源远程桌面神器,自建服务器实现真正的远程控制自由
RustDesk:开源远程桌面神器,自建服务器实现真正的远程控制自由
背景
远程办公和技术支持已成为日常,但商业远程桌面软件存在诸多痛点:
- TeamViewer 免费版限制多,商业授权价格高昂
- 向日葵、ToDesk 等国产软件存在隐私安全争议
- 数据经过第三方服务器,安全性无法保障
- 需要远程访问内网主机时,传统方案配置复杂
今天介绍一款开源远程桌面利器——RustDesk,它是 TeamViewer 的开源替代,在 GitHub 上已获得 32K+ Star。
什么是 RustDesk?
RustDesk 是一款基于 Rust 编程语言开发的高性能开源远程桌面软件,主打"自建服务器 + 端到端加密"。
核心理念: “Your Remote Desktop Software”——你的远程桌面,你做主。
核心特性:
| 特性 | 说明 |
|---|---|
| 自建服务器 | 数据完全自主,隐私安全 |
| 端到端加密 | 通讯内容全程加密 |
| 多平台支持 | Windows/macOS/Linux/Android/iOS |
| 音视频传输 | 支持远程音视频通话 |
| 文件传输 | 双向文件传输功能 |
| 代理中继 | 支持 NAT 穿透和内网穿透 |
| 开源免费 | Apache 2.0 许可证 |
GitHub 地址: https://github.com/rustdesk/rustdesk
RustDesk vs 商业远程桌面软件
| 对比项 | RustDesk | TeamViewer | 向日葵 | ToDesk |
|---|---|---|---|---|
| 价格 | 免费 | 免费限制多 | 免费限制多 | 免费限制多 |
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 | ❌ 闭源 |
| 自建服务器 | ✅ 完全支持 | ❌ 不支持 | 部分支持 | 部分支持 |
| 端到端加密 | ✅ 支持 | ✅ 支持 | ❌ | ❌ |
| 数据隐私 | 数据完全自主 | 数据在第三方 | 数据在第三方 | 数据在第三方 |
| 平台支持 | 全平台 | 全平台 | 全平台 | 全平台 |
| 性能 | 低延迟流畅 | 流畅 | 一般 | 一般 |
RustDesk 的独特优势:
- 完全开源,代码透明可审计
- 自建服务器,数据不经过任何第三方
- 端到端加密,确保通讯安全
- 完全免费,无任何功能限制
- Rust 语言开发,性能优异
工作原理
RustDesk 由三个核心组件构成:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 客户端 A │────▶│ hbbs │◀────│ 客户端 B │
│ (控制端) │ │ (ID服务器) │ │ (被控端) │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ hbbr │
│ (中继服务器) │
└─────────────┘
hbbs(ID/注册服务器):
- 负责客户端 ID 注册和管理
- 建立加密连接时的密钥交换
- 不转发实际数据
hbbr(中继服务器):
- 负责数据中继转发
- 当 P2P 连接无法建立时启用
- 支持端到端加密
快速上手
方式一:使用官方服务器(最简单)
适合快速体验,无需配置服务器。
1. 下载客户端:https://rustdesk.com/download/
2. 安装并启动
3. 注册账号或使用匿名模式
4. 输入对方 ID 和密码即可连接
官方服务器地址配置(如需要):
ID 服务器:address=custom.rustdesk.com
方式二:自建服务器(推荐生产环境)
Docker 部署 hbbs + hbbr
创建目录:
mkdir -p ~/rustdesk-server && cd ~/rustdesk-server
创建 docker-compose.yml:
version: '3'
services:
hbbs:
container_name: rustdesk_hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
ports:
- "21115:21115"
- "21116:21116"
- "21116:21116/udp"
- "21117:21117"
environment:
- RUST_LOG=info
volumes:
- ./data:/data
restart: unless-stopped
network_mode: host
hbbr:
container_name: rustdesk_hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
ports:
- "21118:21118"
- "21119:21119"
environment:
- RUST_LOG=info
volumes:
- ./data:/data
restart: unless-stopped
network_mode: host
启动服务:
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f
配置防火墙
确保以下端口开放:
# Ubuntu/Debian
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=21115-21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --reload
获取公钥
# 查看生成的公钥
cat ~/rustdesk-server/data/id_ed25519.pub
公钥格式示例:
abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890=
配置客户端连接自建服务器
Windows/macOS/Linux 客户端:
- 编辑配置文件
~/.rustdesk/config.toml
[options]
# 服务器地址(替换为你的服务器 IP 或域名)
addr = "你的服务器IP:21117"
# 公钥(替换为上面获取的公钥)
key = "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890="
- 重启 RustDesk 客户端
Android/iOS 客户端:
- 进入设置 → 网络
- 填写 ID 服务器地址
- 填写中继服务器地址
- 填写公钥
核心功能详解
1. 远程控制
基本连接流程:
1. 控制端获取被控端 ID
2. 输入被控端 ID
3. 被控端收到连接请求
4. 被控端输入密码确认
5. 连接建立,开始远程控制
快捷键:
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 强制断开 | Ctrl+Alt+F | Cmd+Option+F |
| 切换全屏 | Ctrl+Alt+U | Cmd+Option+U |
| 屏幕截图 | Ctrl+Alt+S | Cmd+Option+S |
| 传输文件 | Ctrl+Alt+T | Cmd+Option+T |
2. 文件传输
RustDesk 支持双向文件传输:
传输方式:
- 远程会话中点击"文件"图标
- 直接拖拽文件到远程桌面
- 剪贴板图片直接粘贴传输
传输特点:
- 支持断点续传
- 传输进度可视化
- 无文件大小限制
文件传输配置:
# config.toml
[options]
# 允许文件传输
allow_file_transfer = true
# 允许剪贴板同步
allow_clipboard = true
3. 音视频通话
RustDesk 支持远程音视频功能:
功能特点:
- 远程语音通话
- 远程视频查看
- 适用远程会议和技术支持
开启方式:
1. 连接建立后,点击麦克风/摄像头图标
2. 对方同意后即可开启
4. 隐私保护
安全特性:
| 功能 | 说明 |
|---|---|
| 端到端加密 | 通讯内容全程加密 |
| 自建服务器 | 数据不经过第三方 |
| 密码保护 | 每个设备独立密码 |
| 连接记录 | 本地保存连接日志 |
| 离线模式 | 不连接任何服务器 |
隐私设置:
隐私选项:
- 允许/禁止远程截屏
- 允许/禁止文件传输
- 允许/禁止剪贴板同步
- 显示/隐藏光标位置
- 启用/禁用壁纸
5. 多设备管理
地址簿功能:
地址簿特性:
- 保存常用设备信息
- 分组管理设备
- 快速一键连接
- 批量操作支持
地址簿配置文件示例:
[addressbook]
# 保存地址簿文件路径
path = "~/.rustdesk/addressbook.toml"
6. NAT 穿透与中继
RustDesk 支持多种连接方式:
| 连接方式 | 说明 | 适用场景 |
|---|---|---|
| P2P 直连 | 两端直接连接,最低延迟 | 双方在公网或同一网络 |
| NAT 穿透 | 通过 UDP 打洞建立连接 | 双方在不同 NAT 后 |
| 中继转发 | 通过 hbbr 服务器转发 | 无法穿透时启用 |
强制使用中继:
[options]
# 强制使用中继模式
force_always_relay = true
高级配置
性能优化
画质设置:
[options]
# 画质模式:auto, low, medium, high, ultra
quality = "auto"
# 帧率限制
max_fps = 60
# 压缩级别:0-100,数值越高画质越好
compression = 50
网络优化:
[options]
# 连接超时时间(秒)
timeout = 10
# 自动重连
auto_reconnect = true
# 心跳间隔(秒)
heartbeat_interval = 30
企业部署
反向代理配置(Nginx):
upstream rustdesk {
server 127.0.0.1:21115;
}
server {
listen 443 ssl;
server_name rustdesk.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://rustdesk;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
负载均衡配置:
# Docker Compose 负载均衡示例
services:
hbbs1:
image: rustdesk/rustdesk-server:latest
command: hbbs
ports:
- "21115:21115"
- "21116:21116"
volumes:
- ./data1:/data
hbbs2:
image: rustdesk/rustdesk-server:latest
command: hbbs
ports:
- "21125:21115"
- "21126:21116"
volumes:
- ./data2:/data
hbbr:
image: rustdesk/rustdesk-server:latest
command: hbbr
ports:
- "21118:21118"
安全加固
IP 白名单:
# hbbs 配置只允许特定 IP 连接
hbbs -k -h 192.168.1.0/24
禁用中继功能:
# 只启用 ID 服务器,不启用中继
hbbs -k
hbbr --help
# 不启动 hbbr
常见问题
Q:连接失败怎么排查?
A:按以下步骤排查:
1. 检查服务器端口是否开放
telnet 服务器IP 21115
2. 检查客户端配置是否正确
查看 config.toml
3. 查看服务器日志
docker-compose logs hbbs
4. 尝试使用官方服务器测试
Q:延迟很高怎么办?
A:优化建议:
1. 优先使用 P2P 直连
2. 选择物理距离近的服务器
3. 降低画质设置
4. 检查网络带宽
5. 使用有线网络代替 WiFi
Q:如何实现内网穿透?
A:RustDesk 原生支持 NAT 穿透:
NAT 穿透原理:
1. 客户端向 hbbs 注册
2. hbbs 协调两端进行 UDP 打洞
3. 打洞成功后建立 P2P 连接
4. 失败则自动切换到中继模式
无需额外配置,软件自动处理
Q:如何更新 RustDesk?
A:
# Docker 更新
docker-compose pull
docker-compose up -d
# 客户端更新
# 打开客户端会自动检查更新
# 或手动下载最新版本
Q:支持哪些操作系统?
A:
| 平台 | 支持版本 |
|---|---|
| Windows | Windows 7+ |
| macOS | macOS 10.13+ |
| Linux | Ubuntu 18.04+, Debian 9+ |
| Android | Android 5.0+ |
| iOS | iOS 12+ |
适用场景
推荐使用:
- 远程办公和个人设备管理
- IT 技术支持与远程协助
- 家庭成员电脑协助
- 内网设备远程访问
- 对隐私安全有要求的场景
- 替代 TeamViewer 商业授权
不推荐使用:
- 需要打印重定向等专业功能
- 超大规模企业集中管理(建议专业方案)
总结
RustDesk 以"开源 + 自建服务器 + 端到端加密"的组合,成为了远程桌面领域的最佳开源选择。
核心优势回顾:
- 开源透明:代码完全开放,安全可审计
- 自建服务器:数据完全自主,隐私安全
- 端到端加密:通讯内容全程加密保护
- 多平台支持:覆盖所有主流操作系统
- 完全免费:无任何功能限制
- 性能优异:Rust 语言开发,低延迟流畅
对于追求远程控制自主管理、隐私安全、免费无限制的用户,RustDesk 是最佳选择。
© 版权归无边界科技所有,版权所有。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)