> 技术文档 > 开源免费远程控制软件RustDesk_开源远程桌面软件 rustdesk

开源免费远程控制软件RustDesk_开源远程桌面软件 rustdesk


一、RustDesk介绍

RustDesk是一款开源且免费的远程桌面控制软件,旨在为用户提供快速、安全、便捷的远程访问体验。​它支持多种操作系统,包括Windows、macOS、Linux、Android和iOS,满足不同设备间的远程控制需求。 ​

主要特性:

  • 开源免费:​RustDesk完全开源,个人和商业用户均可免费使用,无需担心隐藏费用。 ​

  • 端到端加密:​采用端到端加密技术,确保数据在传输过程中的安全性,保护用户隐私。 ​

  • 跨平台支持:​兼容Windows、macOS、Linux、Android和iOS等多种操作系统,提供广泛的设备支持。 ​

  • 文件传输:​内置文件传输功能,方便用户在远程设备间交换文件。 ​

  • 自建服务器:​支持用户自行搭建中继服务器,提升连接速度和稳定性,并完全掌控数据,增强安全性。 ​

  • 多显示器支持:​能够处理多显示器配置,适应复杂的工作环境。 ​

  • 会话录制:​提供远程会话录制功能,便于培训和文档记录。 ​

自建服务器的优势:

RustDesk允许用户自建中继服务器,实现数据主权和增强的安全性。​通过自托管,用户可以根据自身需求定制客户端,确保数据在本地环境中传输,避免第三方服务器的潜在风险。 ​

使用场景:

RustDesk适用于远程办公、在线教育、技术支持等多种场景。​其高性能和稳定性使其在处理复杂任务时依然保持流畅,满足用户的多样化需求。

总结:

RustDesk作为一款开源免费的远程桌面控制软件,凭借其强大的功能和高安全性,成为TeamViewer、AnyDesk等商业软件的有力替代品。​无论是个人用户还是企业用户,都可以通过RustDesk实现高效、安全的远程控制和管理。

二、自建中继服务器

自建 RustDesk 的中继服务器可以完全控制远程连接的数据传输过程,提高安全性和连接性能,特别适合企业内网或对隐私有高要求的场景。RustDesk 使用两个主要组件:

  • hbbs(RustDesk Server)→ 信令服务器(用于注册、打洞、穿透 NAT 等)

  • hbbr(RustDesk Relay)→ 中继服务器(用于转发无法直连的流量) 

1、自建服务器的前提

  • 一台公网服务器(推荐 Linux,带固定 IP 或域名)

  • 开放如下端口:

    • TCP:21115(hbbs)、21116(hbbr)、21118(用于Web UI,可选)

    • UDP:21116(用于中继穿透)

  • 安装好 Docker(推荐) 

2、使用 Docker 快速部署

这是推荐方式,简单易管理。

1. 创建 Docker 网络和目录

docker network create rustdesk-netmkdir -p ~/rustdesk-servercd ~/rustdesk-server

2. 创建 Docker Compose 文件

docker-compose.yml 内容如下:

version: \'3\'services: hbbs: image: rustdesk/rustdesk-server:latest container_name: hbbs restart: unless-stopped network_mode: host command: hbbs -r :21117 hbbr: image: rustdesk/rustdesk-server:latest container_name: hbbr restart: unless-stopped network_mode: host command: hbbr

❗ 替换 为你服务器的公网 IP。

3. 启动服务器

docker-compose up -d

 可以通过查看日志确认服务是否启动成功:

docker logs -f hbbsdocker logs -f hbbr

3、客户端如何连接自建服务器

在 RustDesk 客户端中设置:

  • 打开「设置」 → 「ID/中继服务器」手动设置:

    • 中继服务器地址 = 你的服务器IP或域名

    • 中继服务器端口 = 21115

    • 中继 NAT 端口 = 21116

三、 完整的一键部署脚本

完整的一键部署脚本,支持以下功能:

1、功能列表

  • 自动安装 Docker 和 Docker Compose

  • 自动部署 RustDesk 中继服务器(hbbs + hbbr

  • 支持自定义端口(可配置)

  • 自动申请 TLS 证书(使用 Caddy + Let\'s Encrypt)

  • 支持反向代理、自动续期 TLS

  • 可选自建客户端构建支持(稍后单独提供) 

2、RustDesk 一键部署脚本(含 TLS)

1.使用说明:

  1. 你的服务器必须绑定域名(用于申请 TLS 证书)

  2. 域名需要已解析到服务器公网 IP(A 记录) 

2.安装脚本:install_rustdesk_tls.sh

#!/bin/bashset -e# === 配置项(请根据你的情况修改) ===DOMAIN=\"your.domain.com\" # 绑定的域名RELAY_PORT=21117  # 中继端口(客户端连接此端口)WORK_DIR=\"/opt/rustdesk-server\" # 安装目录echo \">>> 安装 Docker 和 Docker Compose...\"apt update && apt install -y docker.io docker-composeecho \">>> 创建工作目录...\"mkdir -p $WORK_DIR && cd $WORK_DIRecho \">>> 创建 docker-compose.yml...\"cat > docker-compose.yml <>> 创建 Caddyfile...\"cat > Caddyfile <>> 启动服务...\"docker-compose up -decho \"✅ RustDesk Server 已部署成功!\"echo \"🌐 请在客户端设置中填入以下信息:\"echo \"-----------------------------------\"echo \"中继服务器地址: ${DOMAIN}\"echo \"端口: ${RELAY_PORT}\"echo \"使用 TLS: ✅\"echo \"-----------------------------------\"

3.使用方法:

  1. 修改脚本中的 DOMAIN 为你自己的域名。

  2. 上传并运行:

chmod +x install_rustdesk_tls.sh./install_rustdesk_tls.sh

四、定制RustDesk Windows 客户端

1、功能列表

  • ✅ 内嵌你自建的中继服务器地址(hbbshbbr

  • ✅ 内嵌默认远程访问密码(受控端自动启用)

  • ✅ 可替换 Logo 和 UI 文案(可选)

  • ✅ 打包为 .exe 安装包(便于企业部署)

2、自建客户端构建流程(Windows)

1. 环境准备(Windows 或 Linux 构建)

建议使用 Linux 或 WSL 构建(Windows 构建需装 Visual Studio 全家桶)

# 安装构建依赖(以 Ubuntu 为例)sudo apt updatesudo apt install -y git build-essential cmake curl mingw-w64# 安装 Rustcurl --proto \'=https\' --tlsv1.2 -sSf https://sh.rustup.rs | shsource $HOME/.cargo/envrustup target add x86_64-pc-windows-gnu

 2. 克隆 RustDesk 项目

git clone https://github.com/rustdesk/rustdesk.gitcd rustdesk

3. 修改默认配置

修改文件:src\\conf.rs

// 设置默认服务器地址(你的服务器域名或 IP)pub const DEFAULT_HBBS: &str = \"your.domain.com:21115\";pub const DEFAULT_HBBR: &str = \"your.domain.com:21116\";// 设置默认远程访问密码pub const DEFAULT_PASSWORD: &str = \"yourpassword\";

 4. 编译 Windows 可执行文件

cargo build --release --target x86_64-pc-windows-gnu

编译完成后生成:

target/x86_64-pc-windows-gnu/release/rustdesk.exe

3、可选:自定义 Logo 和 UI 文案

可以:

  • 替换 assets/icons 中的图标

  • 修改 src/lang 下的多语言字符串

  • 修改 UI 风格(RustDesk 基于 fltk

5、建议开启双重认证

 开启之后效果

五、自动化脚本

自动化脚本可一键生成 docker-compose.yml 文件,并根据你输入的参数自动设置:

1、功能特点:

  • 支持是否启用 TLS(true/false)

  • 自动配置服务器地址、端口

  • 自动生成 docker-compose.yml 文件和可选的 Caddyfile

  • 支持数据持久化(./data 挂载到容器)

  • 支持默认启动命令和端口映射 

2、脚本名:generate_rustdesk_compose.sh

#!/bin/bashset -eecho \"=== RustDesk docker-compose 自动生成工具 ===\"read -p \"请输入你的服务器域名或公网IP: \" DOMAINread -p \"是否启用TLS? (yes/no): \" USE_TLSWORKDIR=\"./rustdesk-server\"mkdir -p $WORKDIR && cd $WORKDIRcat > docker-compose.yml <> docker-compose.ymlelse echo \" command: hbbs -r ${DOMAIN}:21117\" >> docker-compose.ymlficat >> docker-compose.yml <>> 你启用了 TLS,将为你生成 Caddyfile...\" cat > Caddyfile <<CADDY${DOMAIN}:443 { reverse_proxy 127.0.0.1:21117 tls { protocols tls1.2 tls1.3 }}CADDY echo -e \"\\n✅ 请同时部署 Caddy 容器,或使用 Nginx/Traefik 反代 21117 → 443\"fiecho -e \"\\n✅ 已生成 docker-compose.yml 文件于 $WORKDIR\"echo \"你现在可以运行以下命令启动服务:\"echo -e \"\\ncd $WORKDIR\"echo \"docker compose up -d\"

3、使用方法

  • 保存为:generate_rustdesk_compose.sh
  • 赋权并运行:
chmod +x generate_rustdesk_compose.sh./generate_rustdesk_compose.sh
  • 按提示输入服务器域名(如:rust.mydomain.com)与是否启用 TLS

  • 自动生成 docker-compose.yml 和可选的 Caddyfile 

4、后续你可以手动选择:

  • 启动服务:

docker compose up -d
  • 停止服务:
docker compose down

六、中继服务器的硬件要求

1、对网络的要求:较高

因为中继服务器负责转发双方之间的屏幕和控制数据,尤其在无法 P2P 打通时,所有数据都走中继,所以对网络带宽和稳定性要求较高:

项目 要求 上/下行带宽 推荐 ≥ 20Mbps+(越高越好,视并发数而定) 网络延迟 越低越好,理想状态 < 50ms 公网 IP / 端口开放 需要有公网 IP,开放 TCP/UDP 端口 NAT 类型 不要求对称型 NAT(否则需全中继) 防火墙设置 需放行 RustDesk 的默认端口或自定义端口

🔁 并发用户越多,占用的网络越大。例如:

  • 每个远程桌面会话 ≈ 1~4 Mbps(高分辨率+60fps 可能更高)

  • 10 个并发用户可能占用 40Mbps 以上 

2、对硬件的要求:较低

RustDesk 的 hbbs(信令服务器)和 hbbr(中继服务器)资源占用很小,哪怕是 Raspberry Pi 或最低配云服务器都能运行。

资源 最低要求 推荐配置(10~50人) CPU 1 核 2 核 内存 256MB 1~2GB 存储 几十 MB 1GB 以上即可 系统 Linux/Windows/macOS 推荐 Linux (Ubuntu/Debian/CentOS)

3、总结建议:

使用场景 建议方案 少量用户(1~5 人) VPS 1 核 1G 内存 + 20Mbps 网络带宽即可 中型使用(10~50人) VPS 2 核 2G 内存 + 100Mbps 网络,启用 TLS 企业部署(50+) 独立服务器 + 带宽 ≥200Mbps,上云或自建机房

七、中继服务器的安全性

通过中继服务器访问是否安全?

✅ 结论:

是否安全,取决于“是否加密”和“是否信任中继服务器”。

🚨 使用他人的中继服务器时的安全风险:

风险项 说明 🔓 中继服务器可解密数据 如果 RustDesk 客户端未启用端到端加密(E2EE),中继服务器理论上可以读取/劫持屏幕画面和控制指令。 🎯 中间人攻击 若中继 TLS 配置不严密,可能遭遇中间人攻击(MITM) 🔍 访问日志暴露 第三方服务器可记录你的访问、IP、会话时长等元信息 🧪 自定义客户端被植入 使用别人打包的 RustDesk 客户端,可能被嵌入后门或替换了连接地址

✅ 如何保证中继访问的安全?

措施 安全说明 🔒 启用端到端加密(E2EE) RustDesk 支持 E2EE(开启时,即使中继服务器也无法解密内容) 🔐 自建中继服务器 + 自签 TLS 保证链路加密可信,防止数据泄露 🧰 使用官方/可信来源构建的客户端 不要使用来历不明的第三方客户端 ⚙️ 配置 id_ed25519 密钥 自建服务时,RustDesk 可强制客户端验证服务端公钥,防止钓鱼中继

 💡 E2EE 如何启用?

RustDesk 从 v1.1.8 开始支持 E2EE:

  • 设置端:

    • 客户端设置 → Enable Encryption (E2EE) ✔️

  • 被控端:

    • 接受连接时会显示“是否接受带加密连接”

    • 注意:E2EE 模式下不支持文件传输

✅ 推荐做法:

建议 说明 ✅ 自建中继服务器 全流程可控、安全、稳定 ✅ 开启 TLS 和 E2EE 保证中继与客户端之间的加密安全 ❌ 避免使用未知来源的中继服务器或客户端 防止后门、劫持

总结

是否安全? 条件 ✔️ 安全 自建中继 + TLS + E2EE ⚠️ 有风险 使用不明中继 或 关闭加密