开源免费远程控制软件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-net
mkdir -p ~/rustdesk-server
cd ~/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 <your-server-ip>:21117

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: hbbr
    restart: unless-stopped
    network_mode: host
    command: hbbr

❗ 替换 <your-server-ip> 为你服务器的公网 IP。

3. 启动服务器

docker-compose up -d

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

docker logs -f hbbs
docker 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/bash

set -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-compose

echo ">>> 创建工作目录..."
mkdir -p $WORK_DIR && cd $WORK_DIR

echo ">>> 创建 docker-compose.yml..."

cat > docker-compose.yml <<EOF
version: '3'

services:
  caddy:
    image: caddy:latest
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "${RELAY_PORT}:${RELAY_PORT}"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config

  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: hbbs
    restart: unless-stopped
    network_mode: "service:caddy"
    command: hbbs -r 127.0.0.1:${RELAY_PORT} --relay tls://${DOMAIN}:${RELAY_PORT}

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: hbbr
    restart: unless-stopped
    network_mode: "service:caddy"
    command: hbbr

volumes:
  caddy_data:
  caddy_config:
EOF

echo ">>> 创建 Caddyfile..."

cat > Caddyfile <<EOF
${DOMAIN}:${RELAY_PORT} {
    reverse_proxy 127.0.0.1:${RELAY_PORT}
    tls {
        protocols tls1.2 tls1.3
    }
}
EOF

echo ">>> 启动服务..."
docker-compose up -d

echo "✅ 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 update
sudo apt install -y git build-essential cmake curl mingw-w64

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup target add x86_64-pc-windows-gnu

 2. 克隆 RustDesk 项目

git clone https://github.com/rustdesk/rustdesk.git
cd 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/bash

set -e

echo "=== RustDesk docker-compose 自动生成工具 ==="

read -p "请输入你的服务器域名或公网IP: " DOMAIN
read -p "是否启用TLS? (yes/no): " USE_TLS

WORKDIR="./rustdesk-server"
mkdir -p $WORKDIR && cd $WORKDIR

cat > docker-compose.yml <<EOF
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    restart: unless-stopped
    depends_on:
      - hbbr
    networks:
      - rustdesk-net
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    volumes:
      - ./data:/root
EOF

if [[ "$USE_TLS" == "yes" ]]; then
  echo "    command: hbbs -r 127.0.0.1:21117 --relay tls://${DOMAIN}:443" >> docker-compose.yml
else
  echo "    command: hbbs -r ${DOMAIN}:21117" >> docker-compose.yml
fi

cat >> docker-compose.yml <<EOF

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    restart: unless-stopped
    networks:
      - rustdesk-net
    ports:
      - 21117:21117
      - 21119:21119
    volumes:
      - ./data:/root
    command: hbbr
EOF

if [[ "$USE_TLS" == "yes" ]]; then
  echo ">>> 你启用了 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"
fi

echo -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人)
CPU1 核2 核
内存256MB1~2GB
存储几十 MB1GB 以上即可
系统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
⚠️ 有风险使用不明中继 或 关闭加密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海科技服务

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值