自建RustDesk远程桌面服务
# 一、RustDesk
在日常使用中,向日葵远控是一款不可或缺的远控软件。能满足日常中绝大部分需求。但也有一些弊端,免费版使用的人很多,某些时段,操作画面会很卡。有低概率客户端卡死,链接不上服务。Android端需要开通会员等。
在V2ex常常会看到贴友们比较倾向于自建服务,喜欢自主可控。这其中就友贴友推荐自建远控服务RustDesk
。
RustDesk (opens new window)是一款免费开源的远程桌面软件。开箱即用,无需其他配置。
RustDesk提供了本地客户端、中继服务端。在中继服务器中配置好相应的端口和运行服务后,本地安装好客户端软件,配置好中继服务器IP + 加密Key就能实现多端远程控制。
本次实例是运行在 Ubuntu 18.04.6 LTS。RustDesk对CPU和内存的要求极低。
# 二、部署 RustDesk 服务
网上有一些 RustDisk 的相关内容,不多比较零散。阅读后了解到大致有这几个重要步骤
# 开放端口
ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable
# 下载 rustdesk-server 服务
官网文档还算全面,刚开始看的是翻译后的英文版文档。问题出在下载资源阶段。因为一些资源在 github 。资源就是下载不下来。解决办法就是多次重试。
wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh
还有另一种方法,就是手动下载 (opens new window)到服务器。其中有两个可执行文件:
hbbs - RustDesk ID注册服务器
hbbr - RustDesk 中继服务器
# 运行 rustdesk-server 服务
在服务器(CentOS 或 Ubuntu)上运行 hbbs/hbbr
./hbbs -r <relay-server-ip[:port]>
./hbbr
默认情况下,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/hbbr 地址
安装客户端
在 ID 服务器输入框中(被控端+主控端)输入 hbbs 主机或 ip 地址,另外两个地址可以不填,RustDesk会自动推导(如果没有特别设定),中继服务器指的是hbbr(21117)端口。
# Key 的获取
hbbs在第一次运行时,会自动产生一对加密私钥和公钥(分别位于运行目录下的id_ed25519和id_ed25519.pub文件中),其主要用途是为了通讯加密。
如果你在上一步骤中没有填写Key:(公钥文件id_ed25519.pub中的内容),不影响连接,但是连接无法加密。
cat ./id_ed25519.pub
如果你禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _
参数
./hbbs -r <relay-server-ip[:port]> -k _
./hbbr -k _
# 四、使用感受
RustDesk总体感受还是很不错的,客户端占用的带宽和 CPU 都不高,还能对 Android 进行操作。日常办公绝对不输于向日葵。
由于服务器带宽只有 1M(平均就是168K上下)。当画面内容变化较大,服务器带宽就会跟不上,就会显得卡。升级宽带能解决这个问题。
在游戏方面画面延迟就很明显,这也受限上方提的服务器带宽不够。
Android 延迟非常大,猜测也受限于服务器带宽。
# 参见
rustdesk GitHub (opens new window)