如果你手里有一台公网云服务器,如果你恰巧又需要经常远程在家里的那台电脑或者在公司里的那台电脑,那这就是你的不二选择。为什么这么讲呢,相信大部分人在工作后或者说学计算机的大部分都有远程桌面的需求,或多或少都用过向日葵、Todesk、网易UU等等。这个方案不管你是Windows、Linux、还是Mac,都能保证高质量的远程连接,最重要的是能保证你的数据安全,全链路自己掌控。
用过向日葵、todesk之类的远程桌面软件都知道,你不交会费.....画面质量和连接状态有的时候确实很感人,放两张对比图给大家看看,左边(Todesk)、右边(RustDesk)。


蛋蛋蛋最恼火的是什么呢?你不交钱就给你用一会就不让你用了,以前还好,但是近几年AI的发展导致服务器的紧张,估计Todesk这类远程桌面的公司服务器也因此变得紧张,免费用户那就得不到更好的体验。最气人的是你大概率要等3-5分钟左右以后才能重连。


## 有一种情况,当然是个人猜测,但也可能是真实情况,如果你是新用户,可能你在使用todesk这类软件的时候会感觉还不错,画面质量和连接稳定性都可以,但随着你使用时间越长,就越容易出现我所说的这两个比较影响使用感受的问题,也许这是该服务商的一种用户粘性策略,促使用户办理VIP使用.
## 以上说明仅仅猜测,不做任何其他解释
言归正传,接下来我们讲怎么进行rustdesk远程桌面软件怎么进行自建服务器私有化部署
一 简介
官网RustDesk:开源远程桌面与自建服务器解决方案,RustDesk 是一个功能完整的开源远程控制替代方案,支持自托管和安全性,配置简单。您完全控制自己的数据,无需担心安全问题。免费是它最大的优点,开源是它最高尚的品质,跨平台是它最基本的操作。
二 安装
这个方案最大的问题就是需要一个带公网的云服务器,但是对配置没有什么强制性要求,基本上各大云服务器厂商的最低配置2C2G轻量应用服务器都能带动。如果你是阿里云、腾讯云、京东云等平台的新用户,基本上可以99元买一整年服务器的使用,甚至更低价格;对比你每个月至少25块(包年158RMB)的其他平台的VIP费,这个服务器的费用省到了极致而且质量更好更稳定,没有别人和你抢占!!!服务器你还能够搭建个人博客或者玩玩小龙虾openclaw。
因为我的服务器除了做中继服务用途,还要玩OpenClaw、Hermes Agent以及Astrbot,所以我先安装了1Panel面板来进行管理,也就是说几乎都是docker容器应用管理。可以自行参考1Panel官网1Panel - 现代化、开源的Linux服务器运维管理面板安装方式进行安装。
2.1 服务端(中继服务)
云服务器系统发行版为Ubuntu 24.04LTS,可自行选择Linux发行系统包括但不限于Rockylinux9、Centos、Debian等。
2.1.1 安装
a) 通过浏览器输入1panel的webui访问面板地址,进入应用商店,搜索Rustdesk,点击安装,安装时会提示你配置端口,保持默认即可。
核心组件说明:
HBBS(ID服务器):负责分配ID和建立连接
HBBR(中继服务器):当P2P连接不通时,负责转发流量

b) 放行防火墙
到云服务厂商的控制台中该轻量应用服务器的防火墙界面,去放开该软件的端口,端口如下
TCP:21115,21116,21117,21118,21119
UDP:21116c) 获取通信Key
当然这个方案之所以只有你自己能用不跟别人共享还有一个关键点就是,这个加密KEY,只有通过了这个Key的客户端才能使用这个中继服务器。
找到rustdesk的安装目录,1Panel中该目录在/opt/1panel/apps/rustdesk/rustdesk/下
进入data目录,ls查看当前目录下是否有以.pub结尾的文件(如id_ed25519.pub)
查看这个文件并复制下来文件内容,这就是后面我们要用到的通信Key

2.1.2 运行
1panel下安装了RustDesk容器应用基本上服务器一直运行,该RustDesk服务端也一直运行
2.1.3 Docker Compose原始安装
#1.创建并进入应用目录
mkdir -p ~/docker-apps/rustdesk;
cd ~/docker-apps/rustdesk
#2.创建并编辑compose.yaml
vim compose.yaml;
#粘贴以下内容到yaml文件
services:
rustdesk-server:
container_name: rustdesk
# 使用 s6 版本实现单容器运行 hbbs 和 hbbr
image: rustdesk/rustdesk-server-s6:latest
environment:
# 重要:将 1.2.3.4 替换为你服务器的【公网 IP】
- RELAY=1.2.3.4:21117
# 强制加密,提高安全性
- ENCRYPTED_ONLY=1
volumes:
- ./data:/data
# 显式映射所有必要端口
ports:
- "21115:21115"
- "21116:21116"
- "21116:21116/udp"
- "21117:21117"
- "21118:21118"
- "21119:21119"
restart: always
#3. 安装
sudo docker compose up -d安装完成以后,其余基本上与1panel无异。
2.2 客户端
我们实现远程桌面控制,在本地电脑和远程电脑上都需要安装RustDesk的客户端程序,数据流通过 远程被控电脑--->中继服务器---->本地控制电脑,首先我们到安装包下载地址Releases · rustdesk/rustdesk根据对应设备的操作系统进行下载。我当前环境被控电脑为(Rockylinux9)、控制电脑为(Windows11)。
2.2.1 安装
在被控电脑上打开浏览器进入下载地址选择点击Fedora进行安装包下载,下载完成后进行安装,可自行决定安装位置,一般下载应用到/opt目录下
mv ./rustdesk-xxx.rpm /opt/
cd /opt
sudo dnf/yum install ./rustdesk-xxx.rpm控制电脑上安装的是exe版本,所以直接双击即可运行客户端。

2.2.2 配置
配置ID服务器,以保证客户端数据通过中继服务器进行通信
a) 打开RustDesk界面,点击ID右边的三个点(菜单)---> 网络 ---> ID/中继服务器
b) ID服务器(ID Server):填写云服务器的公网IP; 中继服务器(Relay Server):填写云服务器的公网IP;
KEY:填写2.1章节中获取的通信Key,最好是复制粘贴方式,避免有格式出错
c) 检查状态,如果底部显示“Ready(就绪)”,说明电脑已经成功挂载到服务器上了



被控电脑和控制电脑都需要按照上方配置步骤进行配置
三 使用
配置完成后,在控制电脑上打开运行RustDesk,直接输入被控电脑的ID,按照提示就能看到被控电脑的桌面或者进行终端操作,还有一个能够打开被控电脑的摄像头。





3.1 开机自启
对于 Rocky Linux 9 这种使用 systemd 管理服务的系统,要实现 RustDesk 或自建服务的开机自启,可以根据你的具体需求(是让服务端自启,还是被控端自启)来操作
如果是客户端,在 Rocky Linux 上安装了 .rpm 包后,RustDesk 通常会自动注册为一个系统服务。你只需要在终端执行以下命令来激活它:
#设置开机自启并立即启动
sudo systemctl enable --now rustdesk
#检查服务状态
sudo systemctl status rustdesk
#如果看到 active (running) 和 enabled,说明已经配置成功。哪怕你没登录桌面,只要电脑通电开机,它就会自动连接到你的 ID 服务器如果是服务端,你在 1Panel 中通过应用商店安装了 RustDesk 服务器(HBBS/HBBR),设置非常简单,在 1Panel 面板操作,找到应用“RustDesk”,确认“自启动”开关是开启状态;因为是安装在容器里,所以只要保证Docker服务本身是自启动的,里面的容器自然就会自动启动
#确保 Docker 是开机自启的
sudo systemctl enable docker3.2 保证开机即远控
刚开机或者重启设备时,停留在输入密码的登录界面时,停留在输入密码的登录界面时,运行的是 GDM (GNOME Display Manager),其默认协议是Wayland。Wayland 的核心设计理念是安全,它严禁一个程序(如 RustDesk)获取另一个程序(登录框)的像素信息,RustDesk 作为普通服务,在用户未登录前,往往没有足够的权限去接管由系统 root 级权限运行的 GDM 会话。
为什么手动登录以后就可以了呢?当你输入密码并进入桌面后,情况发生了变化,登录动作触发了用户会话(User Session)的启动,此时 RustDesk 的插件或服务得以在你的用户权限下完整加载。虽然 Rocky Linux 9 桌面默认也是 Wayland,但 RustDesk 在进入桌面后,可以通过 pipewire 或 xdg-desktop-portal 申请截屏权限,“为什么锁屏也能控”? 这是一个关键点。一旦你登录过,系统已经建立了用户会话。锁屏界面只是用户会话的一个“覆盖层”,而不是像刚开机时那种完全独立的、由系统控制的登录界面。
为了实现“无人值守”,即开机不接显示器、不手动输入密码也能远程,可以采用下列方案:
禁用Wayland,将 Rocky Linux 9 的图形界面强制切换回传统的 X11 协议。X11 没有 Wayland 那么多权限限制,RustDesk 对其支持最完美。
#1.编辑GDM配置文件
sudo vim /etc/gdm/custom.conf
#2.找到[daemon]部分,取消下面这一行的注释
WaylandEnable=false
#3.保存并重启系统
sudo reboot四 其他
这款软件本身是可以安装手机端APP的,能够实现手机控制远端电脑或者共享屏幕操作给远端设备,但是因为23年-25年期间被ZP份子利用该软件进行不正当利用现已经被国内手机厂商的应用商店下架了且无法安装,不过苹果手机还是可以在APP Store上面安装,方便各位开发者、运维人员、以及需要远程电脑办公人员。
技术永远是用来改善人们的生活的,而不是用来破坏的
远程桌面RustDesk自建服务器私有化部署
https://blog.xuehui.chat/archives/rustdesk_deployment