不久之前,为了方便远程控制各个设备,我把各个受我控制的设备都从向日葵迁移到了 ToDesk 上。但是这几天 ToDesk 出现了严重的恶性Bug。而且众所周知例如向日葵和 ToDesk 这些软件的后门那叫一个多得离谱,本身就对各个远程软件不是非常信任的我这次终于是绷不住了,决定自己想办法全面迁移到自建的远程桌面服务上。在翻找了众多远程桌面服务后,最后选中自建 RustDesk 的远程桌面服务。
搭建服务器环境
RustDesk 的服务器支持 Debian/Ubuntu/CentOS/Windows/Docker 环境搭建,本次我选择了在 Ubuntu20.04 LTS 的服务器上搭建,毕竟有公网IP使用会更方便。
第一步 下载服务端程序
在Github Releases下载最新版本的 rustdesk-server-linux-amd64.zip 服务端程序压缩包,unzip
解压后会得到 hbbs
和 hbbr
两个文件。
通过sudo ./hbbs -h
可以得知 hbbs
是 Rustdesk 的ID服务。同样的,通过sudo ./hbbr -h
可以得知 hbbr
是 RustDesk 的中继服务器。
第二步 启动基础服务端
在服务器上运行hbbs
和hbbr
,官方建议使用pm2管理服务。
1 | 直接启动 |
需要注意的是 pm2
需要 Node.JS V16+
才可以运行,如果需要使用 pm2
管理服务器端的服务请自行安装符合要求的 Node.JS
。如果需要 pm2
内的服务开机自启请执行 pm2 save
和 pm2 startup
默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听21117(tcp), 21119(tcp)。务必在防火墙开启这几个端口, 请注意21116同时要开启TCP和UDP。其中21115是hbbs用作NAT类型测试,21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务,21117是hbbr用作中继服务, 21118和21119是为了支持网页客户端。如果不需要网页客户端(21118,21119)支持,对应端口可以不开。
第三步 进阶配置
自定义服务端口
如果你不想使用程序默认的端口,那么你可以在启动 hbbs
时使用 -r
指定端口:
1 | 直接启动 |
hbbr
则是使用 -p
指定:
1 | 直接启动 |
设置无正确key禁止建立非加密连接
在 hbbs
首次运行时,会自动在运行目录下生成 id_ed25519
和 id_ed25519.pub
两个文件,分别存储着用于连接加密的私钥和公钥。
在后面进行客户端配置的时候,我们会需要在客户端设置中填写一个key用于连接服务器。
出于安全性考虑,我们需要设置无正确key禁止建立非加密连接:
1 | 直接启动 |
服务端程序信息
1 | *@*:~/rustdesk# sudo ./hbbs -h |
1 | *@*:~/rustdesk# sudo ./hbbr -h |
客户端配置
Windows/Linux/MacOS等桌面客户端
- 安装运行 RustDesk 客户端
- 点击 ID 右侧的菜单按钮,选择“ ID/中继服务器”
- 在 ID 服务器输入框中输入
hbbs
的域名或 ip 地址,另外两个地址可以不填,RustDesk 会自动推导(如果没有特别设定),中继服务器指的是hbbr(21117)端口。 - 填写由服务端生成的key并保存:
1
cat <运行目录>/id_ed25519.pub
V1.2.0以前的RustDesk客户端不支持WayLand显示设备,如果需要使用支持WayLand显示设备的客户端请访问Github Pre-Releases。如果您的设备为X11显示设备则不受限制。
Android/iOS客户端
- 安装运行 RustDesk 客户端
- 选择
设置-ID/中继服务器
- 在 ID 服务器输入框中输入
hbbs
的域名或 ip 地址,另外两个地址可以不填,RustDesk 会自动推导(如果没有特别设定),中继服务器指的是hbbr(21117)端口。 - 填写由服务端生成的key并保存:在以上设置全部完成之后即可通过自建的服务器进行远程桌面连接了。
1
cat <运行目录>/id_ed25519.pub