自建 RustDesk 服务
上一次华为云搞活动,20块买下 7 年的域名,于是才有了现在这个博客。
服务器
今天看到服务器也在搞活动,先看看配置:
CPU:2核
内存:2G
带宽:3M
硬盘:40G
流量:400G/月
带宽虽然低了点,但是46块能用一年,比其他家的首单甚至学生优惠都要便宜,直接下单一个。购买后首先要重置服务器密码,找到控制台 > 我的资源 > L 实例 > 重置密码,之后就可以通过 ssh 连接到服务器。
RustDesk
在需要居家办公那段时期,基本把市面上流行的远程软件都用了一遍,最后主要用 ToDesk。备用 RustDesk。当时就注意到它支持使用自建的服务器,所以很快就找到部署文档。
连上服务器后,先安装 git、wget、curl 这些常用的包。
node 我选择用 nvm 管理,安装 nvm 时问题就来了:连不上 GitHub。
第一时间想到修改 hosts,在修改并清除 DNS 缓存后,发现无济于事,想起了可以利用 Gitee 克隆 GitHub 仓库的功能(也可以上传 release 文件)。这样就可以拿到仓库/文件的链接,用来代替 GitHub 上的文件连接。虽然有点曲折,但总归是个快速的方法。
Ubuntu 下查看/清除 DNS 缓存
resolvectl statistics
resolvectl flush-caches
开放端口
RustDesk 要求开放以下端口
端口 | 作用 |
---|---|
21115(tcp) | hbbs 用作 NAT 类型测试 |
21116(tcp) | hbbs用作TCP打洞与连接服务 |
21116(udp) | hbbs 用作 ID 注册与心跳服务 |
21118(tcp) | 网页客户端,可不开启 |
21117(tcp) | hbbr用作中继服务 |
21119(tcp) | 网页客户端,可不开启 |
一般云服务器供应商,都会提供开放端口的控制面板,以华为云为例:
控制台 > 我的资源 > L 实例 > 进入需要修改的实例 > 服务器操作 > 更改安全组
在以上弹窗中,点击新建安全组,会跳转到管理安全组的页面,名称填写 rustdesk,模板随意,因为待会可以全部删除,添加上述表格里的端口即可。
回到更改安全组的弹窗,勾选上新建的安全组,重启服务器即可。
安装 rustdesk-server
在 releases 页面下载 rustdesk-server-linux-amd64.zip,下载后上传到 Gitee。在适当位置下载这个文件,解压。
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.10-3/rustdesk-server-linux-amd64.zip
解压后得到一个文件夹 amd64,文件夹里只有两个文件:hbbs 与 hbbr。这是两个可以直接执行的文件,这时候其实可以直接启动这两个服务了:
./hbbs
./hbbr
但实际使用中,需要让服务保持启动,这就需要用到守护进程(daemon)
systemctl 与 pm2
systemctl 提供了一个统一的方式来启动、停止、重启、启用或禁用系统服务,是 Linux 下最正统的系统服务管理工具:
systemctl start [服务名称].service // 启动一个服务
systemctl stop [服务名称].service // 停止一个服务
systemctl restart [服务名称].service // 重启一个服务
systemctl reload [服务名称].service // 重新加载服务的配置文件
systemctl enable [服务名称].service // 设置服务在系统启动时自动启动
systemctl disable [服务名称].service // 取消服务在系统启动时自动启
systemctl status [服务名称].service // 查看服务的当前状态和详细信息
systemctl list-units --type=service // 查看所有当前已启动的服务
而在 rustdesk-server 的安装教程中,第一次看到了 pm2,既然遇到,那就试试看
首先在全局安装 pm2
npm install pm2@latest -g
进入到上面的 amd64 文件夹
pm2 start hbbs
pm2 start hbbr
可以使用 pm2 list
查看当前的进程
在客户端配置服务器
服务启动后,会在可执行文件目录(在例子中是amd64)下生成公钥,可以用 cat 命令查看,这个就是下图中用到的 key
cat id_ed25519.pub
写在最后
之前一直没买服务器,是因为有 Vercel。可以部署静态页面,要写接口就用他的 serverless 函数,有着足够个人学习使用的免费额度,除了不能用 websocket 以及速度差了点,简直完美。为了搭博客而买服务器,完全没必要。
而现在手上这个服务器,3M 的带宽注定也只能作为接口,做个图床都嫌他太慢,更别说搭建流媒体服务。
希望接下来一年里,它能稍微发挥点作用。
留言