RustDesk 是一个开源的远程桌面软件,提供了一种安全且高效的方式来访问和控制远程计算机。选它的原因就是因为它免费、开源、无广告。相比 TeamViewer、AnyViewer、ToDesk、向日葵等等一系列商业远程桌面工具,哪怕你买了会员也有各种各样的通知和其他服务(广告)。

在网上找了不少部署 RustDesk 远程中继服务器的教程,都无比的复杂,最后我还是参考官方文档,利用宝塔控制面板 Docker 功能,一分钟部署 RustDesk 中继服务器,让你免费享受远程控制的独立服务器加速功能。与大家分享,供参考!
不部署 RustDesk 中继服务器能用吗?
当我想先试用一下 RustDesk 这款软件时,它居然提示:

连接错误:The connection is not allowed. Connection to Android devices in China is not allowed because of serious scamming, please set up your own self-hosted server.
意思大概就是说尝试建立的连接是不允许的。原因可能是由于在中国境内的 Android 设备上存在严重的诈骗行为。因此建议用户设置自己的自托管服务器来解决这个问题。
准备工作
RustDesk 分为服务端和客户端两个部分,其中服务端需要搭建在一台始终开机的中转服务器上。所以在开始之前,确保你已经拥有了一台拥有公网IP(最好是IPv4,较为简单,兼容性强)的服务器。
需要什么配置的服务器才能流畅使用?
远程桌面的带宽需求取决于多种因素,包括屏幕分辨率、颜色深度、桌面环境的复杂度、活动的应用程序以及用户的活动强度。比如,视频播放或图形密集的应用程序会消耗更多的带宽,那么像游戏那样的高帧率就更加占用带宽。
通常情况下,标准的办公应用(如文档编辑、浏览网页等)可能需要每个会话大约 100 Kbps到 1 Mbps 的带宽。这就意味着,随便什么配置的服务器都够你部署简单的远程控制使用。而具体的进阶使用则需要根据自己的需求进行架构分析。
这里缙哥哥使用的是香港的服务器,一来避免 Docker 镜像拉取失败的问题,二来距离大路较近,延迟较低(通过 PING 测试大路全绿),十分方便。
为了降低使用门槛,这里使用宝塔控制面板可视化部署 RustDesk 中继服务器。
推荐使用宝塔 Linux 控制面板
部署 RustDesk 中继服务器

左侧菜单点击 Docker 按钮,进入容器界面,点击创建容器。

选择容器编排,在容器编排模板右侧点击创建。

创建模板名称随便填,备注无所谓,内容复制官方文档。这里为了方便识别,我设置为项目名称。
RustDesk Docker Compose
懒得点开查看的小伙伴可以直接复制,下面的就是官方提供的内容:
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
一开始我还在想怎么没有端口映射,部署之后才发现,只要在安全组或防火墙放行相关端口就可以了。
然后右下角点击添加即可。

此时模板明和备注自动显示在上面,直接右下角创建。

这里你没有看错,直接创建了两个容器,分别是hbbs
和hbbr
。
为了方便区别,这里缙哥哥给大家解释一下这两个容器的作用
- hbbs:RustDesk 的 ID 服务,用于分配和注册 ID;
- hbbr:RustDesk 的中继服务,主要远程访问就是这个,如果直连远程不行,会使用 hbbr 进行流量中继。
获取ID/中继服务器Key密钥
网上的教程多为使用 cat 命令查看id_ed25519.pub
文件当中的密钥,咱们既然使用了宝塔,那就直接用在线资源管理器直接查看即可。
管理hbbr
容器 →数据存储卷
,复制数据存储卷
目录,下图红线划出来的那个,双击即可全选。

打开文件管理器,黏贴目录即可打开该地址,双击打开id_ed25519.pub
文件,复制里面的 key 即可。

开放 RustDesk 相关端口
RustDesk 放行端口
- TCP:21114-21119
- UDP:21116
各端口释义
端口:21114 TCP 为专业版提供的 Web 控制台服务
端口:21115 TCP 用于 NAT 类型测试
端口:21116 TCP 实现 TCP 穿透
端口:21116 UDP 用作心跳/ID 服务器
端口:21117 TCP 用于数据中继
端口:21118/21119 TCP 为 Web 客户端提供 WebSocket 连接
理解意思的小伙伴可根据自己需求放行或禁用对应端口。
服务器控制台安全组
如果是使用大厂的服务器,则需要在服务器控制台配置安全组,开放上述端口。由于缙哥哥使用的是阿里云服务器,就以阿里云安全组为例进行配置。

宝塔安全系统防火墙
若是开启了宝塔安全的系统防火墙开关,还需要在宝塔控制面板
→安全
→系统防火墙
中添加端口规则,针对上述几个端口配置放行,如下图所示。

至此,服务端(RustDesk 中继服务器)已配置完成。
配置 RustDesk 客户端
在官方下载对应客户端
- RustDesk 官方网站 – https://rustdesk.com/zh
此处以安卓(鸿蒙)手机为例。
首先点击右下角设置,在增强功能处开启两项权限:
- 保持 RustDesk 后台服务
- 开机自启动
再在共享屏幕处开放所有权限,如下方右图所示,所有权限运行之后就会显示设备IP和密码。


最后在设置中打开ID/中继服务器
进行配置,ID服务器和中继服务器均填写服务器公网IP,Key 一栏填写部署服务器时id_ed25519.pub
文件中提取的 key 密钥内容。

需要注意的是,RustDesk的控制端和被控制端都要对ID/中继服务器
进行相同的配置。