写于:20241101
RustDesk 是个非常好用的开源远程桌面控制软件,他们官网介绍产品的由来也很有人情味——创始人们在新冠期间因为远程办公的关系需要支付高昂的 TeamViewer 商业许可费用,感觉太贵了辗转反侧后决定开发个替代品,于是有了 RustDesk。
在2020年中新冠疫情期间,现在的首席开发者/创始人发现自己需要购买TeamViewer的商业许可证以便在新加坡进行远程工作。然而,他们对其高昂的成本感到震惊。经过一个不眠之夜后,他们开始着手创建一个替代解决方案。就这样,RustDesk诞生了——一个开源、免费的远程桌面软件,通过无数个不眠之夜精心打造。这份奉献和决心的成果最终在2021年在GitHub上发布,使全世界的人们都能使用RustDesk。
我们为什么要开发这个项目?
我自己已经很多年没有用过 TeamViewer 了,不知道现在功能体验是怎样的,所以我就以我对 TeamViewer 的老印象使用了一阵子 RustDesk。用了一段时间下来,RustDesk 给我的感觉就是连接方便的同时还非常好用,连接方式有点 TeamViewer 的那个意思,而且 Windows macOS Linux Android iOS 全给支持了,简直不能更棒了!更好的是,RustDesk 还是开源的能免费自建服务器端,于是我用了没多久,就打算自建一个真正的开始自用主用了。
一、服务器端搭建教程
老传统先说说自己的服务器环境和配置。服务器使用的 1 核 1 GB 内存 25 GB 硬盘的配置,系统是 Debian 12。
搭建参考的教程为官方自建说明文档:https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-oss/install/
中文版的说明文档里没有具体写明推荐的配置,不过在英文文档里有写是 1 核 1 GB 内存 10 GB 硬盘的配置,我贴一下仅供大家参考。
1.1 下载服务器端软件
RustDesk 有提供一键安装脚本和 docker 安装命令,不过我更喜欢用官方打包好的二进制文件自己写好配置运行,所以教程只写了的这种一种方式的搭建方法。
为了操作方便,下面所有命令都会在 root 用户下运行,如果服务器有自己设置权限,可以用 sudo 或者 su 来执行下面的命令。
首先出于安全方面考虑,我们需要创建一个用于运行 RustDesk 服务器端的用户,这里就以创建 www 这个用户举例:
adduser --disabled-password www创建好之后,进入该用户的用户目录,下载保存 RustDesk 的服务器端二进制文件,各平台适配的二进制文件可以从 GitHub(https://github.com/rustdesk/rustdesk-server/releases)上找到:
su - www
cd /home/www
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.12/rustdesk-server-linux-amd64.zip注意下载二进制压缩包一定要要根据自己的系统和平台选,我是 Debian 系统用的 X64 架构 CPU 所以下载的是 rustdesk-server-linux-amd64.zip 这个。
1.2 配置服务端防火墙
下载之后直接用 unzip 命令解压:
unzip rustdesk-server-linux-amd64.zip解压之后会得到一个 amd64 文件夹,文件夹里面就是服务器的二进制程序文件,不过我们先不要直接运行,还需要做一些防火墙的设置。另外,解压这里为了我为了好看把文件夹从 amd64 重新命名为 server 了,后面也会这么写就不再说了。
要设置防火墙是因为 RustDesk 服务端会使用一些不常用的端口来对外沟通,而通常我们的服务器都装有防火墙可能没有放行端口导致连接异常,所以在运行以前最好先确认一下。
根据官方文档所说,RustDesk 主要会用到的端口有下面这些:
- TCP:21114-21119
- UDP:21116
端口说明不知道为什么在中文文档里没有写,我就按照英文文档的说明来解释了。21115 到 21117 是保证 RustDesk 服务能正常工作的最低端口要求,21118 和 21119 用于 RustDesk 的 Web 客户端,21114 主要是给 Pro 版没有 SSL 代理的用户使用的。
根据这个端口要求,我们需要在防火墙里进行放行,比如我用的是 ufw,就用下面的命令放行(一下命令可能需要 root 权限):
ufw allow 21114:21119/tcp
ufw allow 21116/udp1.3 添加并激活 systemd 服务
因为我们下载的是 RustDesk 二进制文件,虽然是可以直接运行的,但是那样就是在前台运行的,我们 SSH 一关它也就关了,这显然不是我们要的效果。所以,我们需要添加 systemd 服务,让 RustDesk 服务端能一直保持后台并且开机自动运行。
我们需要创建两个 systemd 服务,一个是给 hbbr 用的,一个给 hbbs 用,文件名称就叫 hbbr.service 和 hbbs.service,放置在/etc/systemd/system 下。
hbbr:
[Unit]
Description=RustDesk Server hbbr
After=network.target
[Service]
Type=simple
ExecStart=/home/www/server/hbbr
User=www
WorkingDirectory=/home/www/server
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.targethbbs:
[Unit]
Description=RustDesk Server hbbs
After=network.target
[Service]
Type=simple
ExecStart=/home/www/server/hbbs
User=www
WorkingDirectory=/home/www/server
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target注意,两个文件内的 ExecStart 写的是 RustDesk 二进制文件实际所在的位置,User 为执行该程序所需要使用的用户,而 WorkingDirectory 则为程序的工作目录,一般就是程序文件的父目录。
两个文件都添加好之后,我们就可以激活服务并尝试运行服务端了(需要 root 权限):
systemctl enable hbbr hbbs
systemctl start hbbr hbbs输入运行命令之后,可以用下面的命令检查 RustDesk 服务端是否正常运行中(需要 root 权限):
systemctl status hbbr
systemctl status hbbs如果显示 Active 说明程序一切正常,此时我们再打开程序所在目录/home/www/server,会看到已经多了一些文件。其中有一个 id_ed25519.pub 文件保存有连接服务器用的 key 信息,我们需要将其中的内容复制出来,后面在给我们的 RustDesk 客户端设置用自己的服务器时会需要填写。查看文件内容可以使用下面的命令:
cat /home/www/server/id_ed25519.pub三、RustDesk 客户端设置和使用
服务器端搭建好之后,我们就可以在客户端上添加自己的服务器来使用了。
RustDesk 官网:https://rustdesk.com/
各个平台适配的客户端下载:https://github.com/rustdesk/rustdesk/releases/latest
安装好客户端后打开 RustDesk 客户端的设置网络部分,按照下面的截图来进行设置然后保存就可以了:

简单说一下,ID 服务器和中继服务器因为一般情况下都是搭建在一起的,所以写了 ID 服务器不用单独写中继的,默认就会使用 ID 服务器的信息,API 服务是 Pro 付费用户才有的功能,我们不需要填写,最后的 Key 是用来和服务器通信用的密钥,也就是前面说的 id_ed25519.pub 这个文件里保存的信息。
之后我们要连接自己的远程桌面就很简单了,只要在每个客户端上都设置好自己的服务器,填写被连接方的 ID 点击连接,然后输入密码,Boom!就这么简单!

另外,如果不喜欢默认给你设置的 ID 和密码,也可以在设置里自己改:

总的来说用法非常简单,而且体验也很好。
四、Rustdesk 更新升级
Rustdesk 的升级比较简单,客户端的升级就不用说了,直接下载新版本安装就行,这里主要说下服务端怎么升级。
因为本文是通过二进制包直接安装的服务端,所以要更新升级也是直接从 Github 项目页下载最新版的二进制包覆盖原文件就可以了:https://github.com/rustdesk/rustdesk-server/releases
覆盖前记得先停止一下服务端程序:
systemctl stop hbbr hbbs覆盖之后,再重新启动下程序就行了:
systemctl start hbbr hbbs特别提醒一点,不要删除服务端已经生成任何其他文件,只需要将新版本的文件覆盖就可以了。
结束
好了,本次的教程就写到这里了,RustDesk 确实是个不错的远程桌面软件,我不算是重度远程桌面的用户,所以没法在专业的角度去点评它,反正以我自己的体验来说它是非常棒的,完全能满足我的需求,使用方式也很简单。如果大家有这方面的需要,不妨也去试一试,包括我在手机上使用时的体验我觉得也挺不错的。
最后,本次教程完全是以官方文档给的教程写的,其实整个部署也不难,如果自己想改一改服务端运行参数的话,可以看这里最底下的说明:https://github.com/rustdesk/rustdesk-server/blob/master/README-ZH.md
PS:特色图片借用了 RustDesk 官方宣传图。_(:з)∠)_






