Self-Hosting

参考资料:自建远程桌面连接服务,RustDesk搭建教程 - 雨月空间站

完成self-hosting有三步走:

  1. 初始化云服务器(如AWS,Google Cloud)
  2. 使用ssh本地连接云账号
  3. 部署RustDesk服务
  4. (选择)注册服务方便管理服务器

初始化服务器

在这里我们选择亚马逊的EC2作为例子。首先。我们需要创建一个instance
create_instance.png
接着选择最基础的配置即可,出于免费阶段的账户选择免费的1个CPU,1个内存,10GB存储就好
instance_type.png
接着生成RSA Key,这个密钥会直接保存到本地,妥善保存,将会在你每次登陆是用到,就像是你每次开门时都需要钥匙一样。

在Network Setting里面先选默认之后再修改
get key.png
最后其他就都默认,创建即可。

设置安全组

这一步很关键,只有设置好了安全组才能管理好自己的端口以防被攻击
set security.png
在inbound rules里面按照如图格式填写相应的端口。为了方便连接Source-type统一都用Anywhere-IPv4。
setting port.png
现在挨个加入以下的端口即可

连接服务器

在着手连接服务器之前有两步需要进一步设置,这会方便我们后面的使用和连接:

我们一个一个来,先换安全组:
在Action里面找到Change security groups,然后选择刚刚设置好的那个安全组即可,记得删除之前的安全组
change security.png

接下来就是选一个固定IPv4:
进入Elastic IPs,选择Allocate Elastic IP address生成一个固定IP
elastic ip.png
选择好后,注意这里很顺序需要注意,先去Instances的Instance state里面Stop instance再回到Elastic IPs里你创建的ip进行关联。也就是选择Associate Elastic IP address,关联到你的那个instance即可(里面什么设置都不用管,选择关联你的instance就好)。

至此,设置就结束了,回到instance里面看看是否Public IPv4 address已经变成了Elastic IPs里面那个。

本地连接准备

接下来就需要用到我们都本地电脑了,本地电脑打开terminal(Windows不熟悉但应该差不多的终端)准备使用SSH连接我们的instance,这里你需要两个东西

  1. Public IPv4 address(在instance里面查看,可以点击复制图标,然后找个小本子记下来以后都要用)
  2. 在创建时生成的RSA Key(此时应该在你本地电脑上)
    然后使用命令行
ssh ubuntu@<Public IPv4 address> -i <RSA Key path>

注意⚠️: 此处我们的用户名是ubuntu是因为这个操作系统的默认管理用户是ubuntu,每一个不太Linux的默认管理用户都不是一样的比如Debian的就是admin。如果你使用的是不同的系统在这儿查看你的默认名。

设置用户

在你第一次连接ssh时应该是不会成功,你会收到Key too open的安全度不够的提示,你只需要简单用一串命令提高它的安全度即可

chmod 700 <RSA Key path>

OK,至此你就成功登陆上了你的服务器。

为了方便应用管理和设置方便我们可以定制一个自己的用户,当然也是拥有root权限的。现在你所看到的账户名是ubuntu,我们需要设置一个我们自己的名字,你可以使用这个命令

sudo adduser qifeng

为了方便说明qifeng就是我的用户名,接着它会提示你设置密码,设置即可。

接下来我们需要把qifeng设置成root用户,使用这个命令

sudo usermod -aG sudo qifeng

至此,qifeng就是root用户了,你可以使用这个命令切换到这个用户

sudo su - qifeng

但你想要直接在本地连到qifeng还是不行,因为你缺少了密钥的验证,就好像你开门带钥匙但没锁,你还是开不了门。因此,我们需要把ubuntu的authorized key复制过来。首先,在qifeng里建一个管理文件夹

mkdir ~/.ssh
chmod 700 ~/.ssh

接着切换回ubuntu账号(这里你只需使用退出即可回到管理用户)

exit

找到这个路径下的文件/home/ubuntu/.ssh/authorized_keys,复制里面所有的信息。我们要在qifeng里面存一个一样的。现在仍然使用命令回到qifeng账号

sudo su - qifeng

~/.ssh里面建一个一模一样的文件authorized_keys并粘贴内容到这里面,最后使用命令

chmod 600 ~/.ssh/authorized_keys

至此,你应该就能直接连qifeng的账号了,连续使用两次退出命令退到本地。

你可以试试这行命令能不能连上

ssh -i /path/to/your-key.pem qifeng@public_ip

部署服务

好了,现在我们有了服务器准备就绪,qifeng的账号也就绪,本地电脑也能连上服务器,剩下的就是部署了

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

mkdir ~/Application

进入Application

下载服务端

这个服务端并不是RustDesk的app而是一个服务包,你需要用这个链接找到

wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip

接着你能在Application里找到这个包rustdesk-server-linux-amd64.zip。接下来你需要解压这个包用命令

unzip rustdesk-server-linux-amd64.zip

注意 你可能会被告知没有找到unzip命令,这时你需要简单下载一下就好了

sudo apt install unzip

解压好了之后你会有一个包叫amd64,你需要做的就是重命名方便记忆

mv amd64 RustDesk

现在进入RustDesk包里去,会有两个文件hbbrhbbs
解释一下各个作用:

运行

这里使用screen双开两个虚拟终端,并以前台模式挂起后端进程,首先先安装screen

sudo apt install screen

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

screen -R hbbs

# run the hbbs
./hbbs

通常情况下就会启动成功,hbbs会一直弹出新的进程,因为它会不断验证身份,如果你没看到在加载新的进程那说明配置有问题。

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

screen -R hbbr

# run the hbbs
./hbbr

查看这个RustDesk目录,就可以发现,多了一些数据库文件和一个证书文件,其中最重要的就是id_ed25519.pub这个是密钥需要用在RustDesk的设置里面。所以,我们需要把它记到小本本里面

cat id_ed25519.pub

它大概长这样:C6bJn7*******************50nCK3y4=

本地配置

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

打开app后找到Network界面,在ID server和Relay server里面放入你服务器的Public IPv4(之前应该记过),然后在Key里面放入上面的id_ed25519.pub密钥,最后点apply就好了。
rustdesk config.png
现在你就可以直接用给你ID去登陆远程连接了。