开源免费的全平台远程控制软件 RustDesk

1,507次阅读
没有评论

共计 8590 个字符,预计需要花费 22 分钟才能阅读完成。

内容目录

提醒:本文最后更新于2024-08-23 20:23,文中所关联的信息可能已发生改变,请知悉!

开源免费的全平台远程控制软件 RustDesk

什么时候需要远程协助呢? 可能是远程自己在家的电脑,方便游戏排队或者下载文件;也可能是远程单位电脑,进行远程办公;当然,我觉得更多情况是远程小伙伴,帮小伙伴解决一些技术问题。

远程协助,除了可以用向日葵、QQ远程和Todesk等软件,有没有一款安全、经济和快速的软件呢?

文章最后有彩蛋

RustDesk

本次教程,推荐大家部分RustDesk,部署自己的自建远程平台。

主要的优点:

  • 安全性:RustDesk使用安全的加密通信协议来保护数据传输,确保远程桌面连接的安全性和隐私保护。
  • 跨平台支持:RustDesk支持跨多个操作系统平台,包括Windows、macOS和Linux、Android等,这使得它非常灵活和适用于不同的工作环境。

而且从名字可以看出,RustDesk是使用Rust所编写,而使用Rust编写的程序,两大特点就是高效和并发,实际使用上,一台亚马逊入门(1C1G)EC2或者Lightsail(1C2G)给个人或者小型团队使用是没有问题的。

准备工具

服务器

目前,RustDesk支持Linux Server和Windows Server服务器;看自己的取舍,Linux比较节约资源,而Windows方便小白上手。

为了重新体现我们是Linux技术博主,本次搭建使用Linux Server进行演示(亚马逊 EC2)。

如果你并没有服务器设备,需要一个购买/租借,可以先访问亚马逊的用户试用,免费试用。等试用期过,Linux差不多也使用熟练,EC2也不贵;甚至可以买亚马逊的Lightsail,性价比很高。

当然,如果你需要大陆服务器,强烈推荐:

  • 腾讯云轻量应用服务器Lighthouse
  • 腾讯云轻量应用服务器学生优惠

另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ:

根据RustDesk官网描述和实际测试,一台1C 1G的亚马逊EC2,中继模式下,8对设备远程依旧不卡

实际上,就算再翻翻,估计也不会卡;亚马逊的EC2免费套餐的网络,可是300Mbps~1000Mbps的速度;理论上,一个中型企业使用都够,就是套餐内的100G流量中继情况下可能不够。

如果你是Windows Server用户,那么建议至少选择2C 4G的服务器配置,毕竟需要让Windows Server可以跑起来;本文主要演示Linux Server的方法。

辅助视频

部分东西,还是视频比较清晰。

这里做个视频,主要内容:

  • 演示如何初始化亚马逊EC2
  • 如何在SSH连接服务器
  • 如何部署RustDesk服务
  • 如何注册为服务(Systemctl版本)

做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~

服务器初始化

因为是第一次介绍亚马逊的EC2服务器,这里我们来详细介绍一下如何初始化亚马逊服务器。

启动实例

我们在拥有了亚马逊AWS的账号并绑定了VISA信用卡,就可以启动EC2的实例了,也就是启动一台服务器。 我们这里就启动一台服务器进行演示。

[开源免费的全平台远程控制软件 RustDesk]

部署新的实例

出于个人习惯,我使用Debian系列的系统镜像;你可以和我一样,也可以按个人喜好选择Ubuntu、CentOS等,不过我不是很推荐CentOS、Redhat(毕竟CentOS现在已经停止维护)

开源免费的全平台远程控制软件 RustDesk

本次部署新的实例

密钥对(登录)中,我们最好创建RSA密钥对,方便我们一会进行SSH的远程登录:
[开源免费的全平台远程控制软件 RustDesk]

创建密钥对

创建好后,密钥会自动下载:
[开源免费的全平台远程控制软件 RustDesk]

创建并下载下来的密钥

关于安全组,如果你是第一次使用服务器,那么我建议你刚开始可以放行所有端口;如果你已经对安全组轻车熟路,那么需要放行本次使用使用的端口:

  • TCP (21115, 21116, 21117, 21118, 21119)
  • UDP (21116)

[开源免费的全平台远程控制软件 RustDesk]

放行全部端口

连接服务器

之后,我们就可以连接服务器;举个例子,我这次最后购买的EC2:
[开源免费的全平台远程控制软件 RustDesk]

本次使用的EC2实例

点击进入,我们的可以使用公网IP进行登录(这里我分配了弹性IP):
[开源免费的全平台远程控制软件 RustDesk]

公网IPV4

打开我们本地的SSH工具。macOS和Linux用户可直接使用自带的Terminal工具;Windows11可以使用自带的Windows Terminal(Windows10可以在自带的应用商店内找到Windows Terminal)。

连接的SSH命令:

ssh admin@<AWS的IP> -i <RSA地址>

BASH

其中:

  • admin为AWS服务器默认用户;
  • <AWS的IP>为上文我们创建的EC2公网IP;
  • <RSA地址>为上文我们创建并自动下载的密钥对

比如我远程登录成功:
[开源免费的全平台远程控制软件 RustDesk]

使用RSA远程登录成功

登录好以后,记得更新软件包管理器:

sudo apt update -y

BASH

建议更改一下时区,方便我们后续查看日志时候,时间和本地统一:

# 设置时区为东八区的上海
sudo timedatectl set-timezone Asia/Shanghai

BASH

[开源免费的全平台远程控制软件 RustDesk]

设置时区

创建新用户

为了方便我们后续操作,我们创建一个新用户,便于隔离我们后续的操作:

# 创建名叫mintimate的用户
sudo useradd -m mintimate

BASH

之后,设置mintimate的默认用户密码:

sudo passwd mintimate

BASH

设置过程中,密码会自动隐藏。

如果你想直接使用新用户进行SSH的登录,你可以修改SSH服务端配置(/etc/ssh/sshd_config),其中的运行密码登录注释或者设置为yes的:
[开源免费的全平台远程控制软件 RustDesk]

最后,重启SSH服务:

# 重启SSH服务
sudo systemctl restart sshd

BASH

这样,就可以使用用户进行密码登录:
[开源免费的全平台远程控制软件 RustDesk]

密码登录成功

当然,设置密码登录是完全可选的;你也可以直接使用自带的admin用户配合密钥进行登录。

RustDesk部署

现在,我们就可以进行RustDesk的部署。如果你不是使用创建的用户进行登录,那么你可以使用su命令进行切换:

# 切换到mintimate用户
sudo su - mintimate

BASH

为了方便管理,我们创建一个目录,便于管理:

# 创建一个空目录,用于安装RustDesk
mkdir ~/myApplication

BASH

下载服务端

进入RustDesk的Github地址:

我们使用的是X86版本服务器,所以这里我们下载X86版本的服务包:
[开源免费的全平台远程控制软件 RustDesk]

下载X86版本的服务端

拷贝下载地址,到服务器上使用wget进行下载和解压:

# 使用wget进行下载1.1.8-2版本(最新版本可以看上述发布地址)
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip
# 使用unzip解压
unzip rustdesk-server-linux-amd64.zip
# 重命名解压后文件(方便管理)
mv amd64 RustDesk

BASH

[开源免费的全平台远程控制软件 RustDesk]

下载解压并重命名

现在,我们的RustDesk前期的准备就完成了。接下来,我们尝试运行,之后再注册为服务。

尝试运行

我们可以先尝试运行一下;确保可以使用后,我们再使用pm2挂起访问,或者systemctl注册为服务。

为了方便我们测试,这里使用screen双开两个虚拟终端,并以前台模式挂起后端进程:

# 安装screen
sudo apt install screen

BASH

之后,在刚刚我们的RustDesk解压后的目录内,可以看到相关的文件:

RustDesk
├── hbbr
├── hbbs
└── rustdesk-utils

TXT

[开源免费的全平台远程控制软件 RustDesk]

RustDesk Server内包含的内容

解释一下各个作用:

  • hbbs: RustDesk的ID服务,用于分配和注册ID;
  • hbbr: RustDesk的中继服务,主要远程访问就是这个,如果直连远程不行,会使用hbbr进行流量中继。

之后,我们使用两个screen进行启动:

# 创建一个叫myHbbs的虚拟终端:
screen -R myHbbs
# 运行hbbs
./hbbs

BASH

通常情况下就会启动成功:
[开源免费的全平台远程控制软件 RustDesk]

使用screen启动hbbs

紧接着,Ctrl+ad返回主终端,启动hbbr

# 创建一个叫yHbb的虚拟终端:
screen -R myHbbr
# 运行hbbr
./hbbr

BASH

到此,如果没什么防火墙、安全组问题,RustDesk就启动完成了。
[开源免费的全平台远程控制软件 RustDesk]

使用screen启动hbbr

[开源免费的全平台远程控制软件 RustDesk]

使用screen启动完成

查看这个RustDesk目录,就可以发现,多了一些数据库文件和一个证书文件:

RustDesk
├── db_v2.sqlite3
├── db_v2.sqlite3-shm
├── db_v2.sqlite3-wal
├── hbbr
├── hbbs
├── id_ed25519
├── id_ed25519.pub
└── rustdesk-utils

TXT

我们需要拷贝.pub这个公钥文件,用于接下来的本地配置
[开源免费的全平台远程控制软件 RustDesk]

拷贝公钥文件

比如,我的公钥文件内容:C6bJn7*******************50nCK3y4=

接下来,我们可以进行本地的配置。

本地配置

到RustDesk上的客户端下载地址,下载我们的客户端:

通常情况下,我们下载最新的发布版本即可:
开源免费的全平台远程控制软件 RustDesk

下载最新版本客户端

比如: 我这里安装macOS,并打开:
开源免费的全平台远程控制软件 RustDesk

在macOS上打开RustDesk

点击上面的三个点,进入配置:
[开源免费的全平台远程控制软件 RustDesk]

进入RustDesk的配置界面

找到网络配置:
[开源免费的全平台远程控制软件 RustDesk]

网络配置界面

解锁网络配置,上方两个输入你的服务器IP,下方的Key输入上一步内我们拷贝的公钥(对于我是C6bJn7*******************50nCK3y4=),如果你有使用域名,IP部分也可以使用域名(CDN不行):
[开源免费的全平台远程控制软件 RustDesk]

配置我们自己的服务器

我们没有开启强制加密,所以理论上key不填写,也可以进行连接;只是,不填写key,网络传输可能不安全。

到此,我们的配置配置就完成了。我们可以体验一下。

测试使用

现在,我使用一台Linux虚拟机和我的macOS进行演示,首先在Kali Linux上安装RustDesk:

# 下载最新版本的RustDesk Debian客户端
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-aarch64.deb
# 使用dpkg进行安装
sudo dpkg -i rustdesk-1.2.2-aarch64.deb

BASH

[开源免费的全平台远程控制软件 RustDesk]

Linux上安装RustDesk

安装好后,打开RustDesk:
[开源免费的全平台远程控制软件 RustDesk]

Linux上打开RustDesk

和刚刚一样,我们需要配置好我们自己的服务器参数。在macOS上就可以远程它了:
[开源免费的全平台远程控制软件 RustDesk]
macOS上发起远程请求

这个时候,实际上Linux上也是可以直接点击接受的:
[开源免费的全平台远程控制软件 RustDesk]

Linux上接受远程请求

最后的“套娃”效果:
[开源免费的全平台远程控制软件 RustDesk]
远程协助的效果

注册服务

现在,我们回到服务端。刚刚使用的screen可能不太优雅,这里我们准备了两个方案注册为访问,方便管理。

使用pm2运行

如果要使用pm2运行,需要提前安装nodejs,使用nodejs的软件包管理器(npm或者yarn)安装pm2。

安装nodejs的方法,我在之前的文章内已经说的十分详细,这里就不再过多介绍,如果不知道如何操作,可以参考:

就简单说一下思路和使用命令吧:

# 安装nvm
git clone https://github.com/nvm-sh/nvm.git ~/.nvm
# 追加到环境变量
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.zshrc
# 重载环境变量
source ~/.zshrc
# 使用nvm安装18版本nodejs
nvm install 18
# 使用nodejs的npm安装pm2
npm install -g pm2

BASH

[开源免费的全平台远程控制软件 RustDesk]

安装好nvm

[开源免费的全平台远程控制软件 RustDesk]

安装好pm2

之后,使用pm2的命令,启动hbbr和hbbs:

# 当前正在RustDesk的目录内
pm2 start hbbs
pm2 start hbbr

BASH

之后,就可以发现。RustDesk已经启动。 具体的pm2使用,以后有机会和大家讲解。

使用Systemctl运行

我其实挺喜欢用systemctl的;但是上篇文章,其实已经足够详细,这里就直接给配置的脚本吧,我们需要创建两个Server,首先是hbbs:

[Unit]
Description=RustDesk Hbbs
After=network.target

[Service]
User=mintimate
Type=simple
WorkingDirectory=/home/mintimate/myApplication/RustDesk
ExecStart=/home/mintimate/myApplication/RustDesk/hbbs
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

BASH

之后是hbbr:

[Unit]
Description=RustDesk Hbbr
After=network.target

[Service]
User=mintimate
Type=simple
WorkingDirectory=/home/mintimate/myApplication/RustDesk
ExecStart=/home/mintimate/myApplication/RustDesk/hbbr
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

BASH

[开源免费的全平台远程控制软件 RustDesk]

启动完成后

到此,使用Systemctl注册为服务就完成啦。其实也可以使用screen,就是重启系统后,再次启动比较麻烦。

Q&A

个人的一些使用经验,还有一些常见的问题。

如何开启强制加密

如果你搭建好了RustDesk后,会发发现: 不需要设置key,也可以进行RustDesk的连接。

这是因为RustDesk默认服务器端会开启加密,但是并不强制。

如何你想开启强制加密,可以在启动hbbr和hbbs的时候,加上参数-k _:

./hbbr -k _
./hbbs -k _

BASH

这样,客户端建立的连接,就需要强制设置好key,也就是我们的*.pub文件,否则无法建立通讯和远程连接:
[开源免费的全平台远程控制软件 RustDesk]

强制密钥验证

END

好啦,本次的RustDesk演示就到这里;总的来说,还是很简单的;当然,对于小白用户可能会有一定的难度,建议配合教程和官方文档的同时,还需要配合一些网上Linux教程使用,尤其是亚马逊服务器的使用教程。

我在注册亚马逊服务器的时候,其实就卡了挺久的。

有什么问题,可以评论区留言哦。爱发电用户可以优先快速处理,我们有机会再见👋。

是不是看晕头了,直接薅站长的羊毛吧

安装好客户端,直接薅站长的中继服务器即可

软件官网:

https://rustdesk.com/zh/

官方下载地址:https://github.com/rustdesk/rustdesk/releases

自编译带站长中继服务器的版本:下载运行即可使用,有手机、电视、win、mac、linux、arm\x86 等版本

https://github.com/vbskycn/rustdesk/releases

有的朋友链接github比较慢,直接给你贴出直连下载地址了

适用于: Android 系统安装包,适用于: ARM64 架构的 Android 设备
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-aarch64.apk

适用于: Android 系统安装包,适用于: ARMv7 架构的 Android 设备
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-armv7.apk

适用于: Android 系统安装包,适用于: 支持所有 Android 设备的通用 APK
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-universal.apk

适用于: Android 系统安装包,适用于: 64位 x86 架构的 Android 设备
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86_64.apk

适用于: Linux (Debian/Ubuntu) 系统安装包,使用 dpkg -i 命令安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86_64.deb

适用于: macOS 系统安装包,双击安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-aarch64-aarch64.dmg

适用于: macOS 系统安装包,双击安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86_64-x86_64.dmg

适用于: Windows 系统可执行文件,双击直接运行
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86-sciter.exe

适用于: Windows 系统可执行文件,双击直接运行
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86_64.exe

适用于: Windows 系统安装包,适合批量部署
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-x86_64.msi

适用于: Linux (Arch/Manjaro) 系统安装包,使用 pacman -U 命令安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-0-x86_64.pkg.tar.zst

适用于: Linux (RHEL/Fedora/SUSE) 系统安装包,使用 rpm -ivhyum install 命令安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-0.x86_64-suse.rpm

适用于: Linux (RHEL/Fedora/SUSE) 系统安装包,使用 rpm -ivhyum install 命令安装
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-0.x86_64.rpm

适用于: Linux 通用压缩包,手动解压并执行
https://mirror.ghproxy.com/https://github.com/vbskycn/rustdesk/releases/download/nightly/rustdesk-1.3.0-unsigned.tar.gz

正文完
 0
周 杰
版权声明:本站原创文章,由 周 杰 于2023-11-15发表,共计8590字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。