自建RustDeskServer
Rustdesk Server安装与使用
安装Rustdesk Server
-
在服务器输入
lscpu
或uname -m
查看CPU构架1
2uname -m
# x86_64 -
比如我是x86_64,随后在rustdesk-server/releases找到相应的版本则下载rustdesk-server-linux-amd64.zip
"x86_64"和"amd64"实际上是同一种CPU架构的两种不同称呼,都指的是64位的x86处理器架构。
这种架构最早由AMD公司引入,因此有时被称为"AMD64",但后来也被Intel和其他制造商采纳。
1 | wget --no-check-certificate https://github.com/rustdesk/rustdesk-server/releases/download/1.1.10-3/rustdesk-server-linux-amd64.zip |
-
解压文件,进入到解压后的目录
amd64
1
unzip rustdesk-server-linux-amd64.zip
-
尝试运行
hbbs
1
./hbbs
会输出一些日志,随后
ctrl+c
关掉即可 -
尝试运行
hbbr
1
./hbbs
会输出一些日志,随后
ctrl+c
关掉即可
随后,在目录中,有个id_ed25519.pub
的pub文件,查看id_ed25519.pub文件,里面是密钥
1 | cat id_ed25519.pub |
将密钥保存,后续会用上
至此,安装与测试RustDesk Server就结束了
后台运行与管理
为了更好的管理RustDesk Server,我们使用pm2来进行管理
PM2是一个流行的Node.js应用程序的进程管理器,提供了一系列强大的功能来管理和维护应用程序
- 安装pm2
1 | sudo apt install npm |
- 用pm2启动RustDesk Server
1 | pm2 start hbbs -- -r 自己的服务器IP地址 -k _ |
参数解析
-
– 中间的这两个-一定要添加,这是pm2的参数传输结构
-
-r Relay(中继)服务器地址(和ID服务器可以是同一个,ID服务器就是正在将RustDesk Server部署到的服务器),这个参数不写也可以
-
-k _:必须用上面拿到的密钥才能访问
- 最后,要打开防火墙端口
返回控制台,打开防火墙-添加规则,以下端口全部开放:
1 | 21115、21116(TCP/UDP)、21117、21118、21119 |
从错误日志中可以看出,pm2
正在尝试运行一个JavaScript文件,而不是一个shell脚本。这是因为pm2
默认认为所有脚本是Node.js脚本。要运行一个shell脚本,你需要在pm2
命令中显式指定它是一个shell脚本。
以下是解决方法的步骤:
-
确保你的脚本文件是一个有效的shell脚本,并且已经具有可执行权限。如果没有,请执行以下命令:
1
chmod +x /media/dongli911/Document/Workflow/WanLingHong/Project/AIGC/ComfyUI/runByPm2
-
使用
pm2
启动shell脚本时,使用--interpreter
参数指定使用bash
来运行该脚本:1
pm2 start /media/dongli911/Document/Workflow/WanLingHong/Project/AIGC/ComfyUI/runByPm2 --name Comfyui --interpreter bash
这是你shell脚本的可能内容:
1 |
|
完整的步骤如下:
-
确保
runByPm2
脚本的内容正确无误,并确保它具有执行权限:1
2
3
source activate sdv3
python /path/to/your/main.py --listen 0.0.0.0 -
给予执行权限:
1
chmod +x /media/dongli911/Document/Workflow/WanLingHong/Project/AIGC/ComfyUI/runByPm2
-
使用
pm2
启动脚本:1
pm2 start /media/dongli911/Document/Workflow/WanLingHong/Project/AIGC/ComfyUI/runByPm2 --name Comfyui --interpreter bash
通过这样设置,pm2
将会使用bash
来解释并运行你的脚本,从而避免语法错误。
RustDesk 客户端安装与使用
现在,我使用一台Linux上安装RustDesk:
同理,先用lscpu
或unmae -m
查看cpu架构,再下载对应版本,这里用x86_64举例
1 | # 下载最新版本的RustDesk Debian客户端 |
随后打开rustdesk,在设置中填写
- ID server: 写ID服务器IP
- Relay server: 写Relay服务器IP
- API server: 空着
- Key: 写密钥
如果命令用的是pm2 start hbbs -- -r 自己的服务器IP地址
,就要写Relay服务器
如果命令用的是pm2 start hbbs
,Relay server可以空着
附录:PM2管理命令
要管理和控制使用PM2启动的进程,你可以使用PM2提供的一系列命令行工具。下面是一些常用命令,包括如何查看正在运行的进程列表和如何停止(杀掉)进程。
查看PM2管理的进程列表
要查看PM2管理的所有进程及其状态,你可以使用:
1 | pm2 list |
或者,为了获取更详细的信息,包括每个进程的CPU和内存使用情况,可以使用:
1 | pm2 status |
这些命令会显示一个表格,列出所有由PM2管理的进程的状态信息,如进程ID(PID)、名称、状态、CPU和内存使用情况等。
停止进程
如果你需要停止一个由PM2管理的进程,可以使用pm2 stop
命令,后面跟上进程的名称或ID。例如,如果你的进程名称为rustdesk-server
,你可以运行:
1 | pm2 stop rustdesk-server |
如果你知道进程的ID,假设是0,你也可以使用:
1 | pm2 stop 0 |
重启进程
如果你需要重启一个进程,可以使用restart
命令,这对于应用更新后重新加载服务特别有用:
1 | pm2 restart rustdesk-server |
删除进程
停止进程后,它仍然会在PM2的列表中显示,但状态会变为已停止。如果你想从PM2的列表中完全移除这个进程,可以使用delete
命令,如:
1 | pm2 delete rustdesk-server |
或者使用进程的ID:
1 | pm2 delete 0 |
查看日志
了解如何查看PM2管理的应用的日志也很重要,特别是在调试时。使用下面的命令可以实时查看日志:
1 | pm2 logs |
如果你只想查看特定进程的日志,可以加上进程的名称或ID:
1 | pm2 logs rustdesk-server |
PM2的这些命令提供了强大的进程管理功能,使得运行在服务器上的应用更加稳定和可靠。
使用Systemctl运行
我们需要创建两个Server,首先是hbbs:
vim /usr/lib/systemd/system/RustDeskHbbs.service
1 | [Unit] |
之后是hbbr:
vim /usr/lib/systemd/system/RustDeskHbbr.service
1 | [Unit] |
随后,让其自启动
1 | systemctl enable RustDeskHbbs.service |
让这两个服务启动
1 | systemctl start RustDeskHbbs.service |
查看运行状态
1 | systemctl status RustDeskHbbs.service |