云计算百科
云计算领域专业知识百科平台

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

官网: https://rustdesk.com

RustDesk vs 商业远程桌面软件

对比项RustDeskTeamViewer向日葵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/rustdeskserver:latest
command: hbbs
ports:
"21115:21115"
"21116:21116"
"21116:21116/udp"
"21117:21117"
environment:
RUST_LOG=info
volumes:
./data:/data
restart: unlessstopped
network_mode: host

hbbr:
container_name: rustdesk_hbbr
image: rustdesk/rustdeskserver:latest
command: hbbr
ports:
"21118:21118"
"21119:21119"
environment:
RUST_LOG=info
volumes:
./data:/data
restart: unlessstopped
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/LinuxmacOS
    强制断开 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/rustdeskserver:latest
    command: hbbs
    ports:
    "21115:21115"
    "21116:21116"
    volumes:
    ./data1:/data

    hbbs2:
    image: rustdesk/rustdeskserver:latest
    command: hbbs
    ports:
    "21125:21115"
    "21126:21116"
    volumes:
    ./data2:/data

    hbbr:
    image: rustdesk/rustdeskserver: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 是最佳选择。


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

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » RustDesk:开源远程桌面神器,自建服务器实现真正的远程控制自由
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!