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

官网: https://rustdesk.com

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 客户端:

  1. 编辑配置文件 ~/.rustdesk/config.toml
[options]
# 服务器地址(替换为你的服务器 IP 或域名)
addr = "你的服务器IP:21117"

# 公钥(替换为上面获取的公钥)
key = "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890="
  1. 重启 RustDesk 客户端

Android/iOS 客户端:

  1. 进入设置 → 网络
  2. 填写 ID 服务器地址
  3. 填写中继服务器地址
  4. 填写公钥

核心功能详解

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 是最佳选择。


© 版权归无边界科技所有,版权所有。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐