Self-Hosting
参考资料:自建远程桌面连接服务,RustDesk搭建教程 - 雨月空间站
完成self-hosting有三步走:
- 初始化云服务器(如AWS,Google Cloud)
- 使用ssh本地连接云账号
- 部署RustDesk服务
- (选择)注册服务方便管理服务器
初始化服务器
在这里我们选择亚马逊的EC2作为例子。首先。我们需要创建一个instance
接着选择最基础的配置即可,出于免费阶段的账户选择免费的1个CPU,1个内存,10GB存储就好
接着生成RSA Key,这个密钥会直接保存到本地,妥善保存,将会在你每次登陆是用到,就像是你每次开门时都需要钥匙一样。
在Network Setting里面先选默认之后再修改
最后其他就都默认,创建即可。
设置安全组
这一步很关键,只有设置好了安全组才能管理好自己的端口以防被攻击
在inbound rules里面按照如图格式填写相应的端口。为了方便连接Source-type统一都用Anywhere-IPv4。
现在挨个加入以下的端口即可
- TCP (21115, 21116, 21117, 21118, 21119)
- UDP (21116)
最后再加一个SSH的端口,这个端口是固定的22,同时也选择nywhere-IPv4。这个端口能保证你在任何地方都能连上你的云服务器。最后,保存,结束设置。
连接服务器
在着手连接服务器之前有两步需要进一步设置,这会方便我们后面的使用和连接:
- 换一个固定Public IPv4
- 换安全组
我们一个一个来,先换安全组:
在Action里面找到Change security groups,然后选择刚刚设置好的那个安全组即可,记得删除之前的安全组
接下来就是选一个固定IPv4:
进入Elastic IPs,选择Allocate Elastic IP address生成一个固定IP
选择好后,注意这里很顺序需要注意,先去Instances的Instance state里面Stop instance再回到Elastic IPs里你创建的ip进行关联。也就是选择Associate Elastic IP address,关联到你的那个instance即可(里面什么设置都不用管,选择关联你的instance就好)。
至此,设置就结束了,回到instance里面看看是否Public IPv4 address已经变成了Elastic IPs里面那个。
本地连接准备
接下来就需要用到我们都本地电脑了,本地电脑打开terminal(Windows不熟悉但应该差不多的终端)准备使用SSH连接我们的instance,这里你需要两个东西
- Public IPv4 address(在instance里面查看,可以点击复制图标,然后找个小本子记下来以后都要用)
- 在创建时生成的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而是一个服务包,你需要用这个链接找到
- Releases · rustdesk/rustdesk-server
还记得我们用的是什么版本架构吗?如果不出意外就是x86_64架构,那我们就选 rustdesk-server-linux-amd64.zip
这个包。但这里你需要做的是复制这个包的链接,然后在terminal里用这个命令
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包里去,会有两个文件hbbr
和hbbs
解释一下各个作用:
- hbbs: RustDesk的ID服务,用于分配和注册ID;
- hbbr: RustDesk的中继服务,主要远程访问就是这个,如果直连远程不行,会使用hbbr进行流量中继。
运行
这里使用screen
双开两个虚拟终端,并以前台模式挂起后端进程,首先先安装screen
sudo apt install screen
之后,我们使用两个screen进行启动:
screen -R hbbs
# run the hbbs
./hbbs
通常情况下就会启动成功,hbbs会一直弹出新的进程,因为它会不断验证身份,如果你没看到在加载新的进程那说明配置有问题。
紧接着,Ctrl+a
和d
返回主终端,启动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就好了。
现在你就可以直接用给你ID去登陆远程连接了。