简介
Rustdesk是一个开源的虚拟远程桌面软件,可以使用官方注册/中继服务器,或者自服务器。
本文使用Docker-compose的方式部署运行Rustdesk服务器。在部署前请检查你的操作系统是否安装启用了Docker-compose。
部署
配置文件
创建并进入容器目录
mkdir .rustdesk_data && cd .rustdesk_data
新建yml配置文件,并写入保存配置
vim docker-compose.yml
yml文件配置内容如下
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r rustdesk.example.com
volumes:
- /home/cieyget/.rustdesk-server/hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- /home/cieyget/.rustdesk-server/hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped
给yml配置文件设置权限
chmod 755 docker-compose.yml
注意:
其中第16行 rustdesk.example.com
更改为本机服务器公网ip地址,或已正确解析并可访问的域名。
防火墙
设置服务器防火墙放行
21115/tcp
21116/tcp/upd
21117/tcp
21118/tcp
21119/tcp
这作为测试环境,我直接把墙关停方便测试。如果投入生产环境,请不要关闭防火墙!!!
#临时关停防火墙
systemctl stop firewalld.service
#永久关停防火墙
systemctl disable firewalld.service
#查看防火墙状态
systemctl status firewalld.service
启动容器
因为yml文件第15行和30行已经填写rustdesk官方的docker hub在线路径,所以执行时候会自动pull运行。
启动docker容器
docker-compose up -d
查看docker运行情况
sudo docker ps
把yml文件里改好的IP或域名,填写到使用端中[ID服务器]
至此,测试远程控制使用应该已经没有问题了,即使服务器重启,docker容器也会自启动。
安全&鉴权
按照以上流程官方流程部署后有一个风险点,如果其他人知道了该IP或域名部署了rustdesk服务器,那么他人也可以直接填写ID服务器使用服务。这样的话,流量就给别人白嫖了。
所以接下来,需要强制开启填写key才能连接服务器
开启验证
修改并保存第3步配置的yml文件 docker-compose.yml
vim docker-compose.yml
在16行和31行末尾加上-k _
参数,以强制开启验证key
第16行
command: hbbs -r rustdesk.example.com:21117 -k _
第31行
command: hbbr -k _
注意16行填写自己的IP或域名
重新加载容器
进入容器文件夹
cd .rustdesk_data
执行命令
docker-compose pull
docker-compose up -d
此时,重新测试用户端控制,没有填写KEY的情况下,会报错无法连上。
查看key
进入rustdesk_data文件夹
cd /root/rusrdesk_data/data
可以看到3个db文件,2个id文件
$ ls -l
total 1144
-rw-r--r-- 1 root root 4096 Dec 25 19:23 db_v2.sqlite3
-rw-r--r-- 1 root root 32768 Mar 16 02:41 db_v2.sqlite3-shm
-rw-r--r-- 1 root root 1120672 Mar 16 02:41 db_v2.sqlite3-wal
-rw-r--r-- 1 root root 88 Dec 25 19:23 id_ed25519
-rw-r--r-- 1 root root 44 Dec 25 19:23 id_ed25519.pub
查看公钥文件id_ed25519.pub
cat ./id_ed25519.pub
aMXQFBM+NpRIDqh0KZ7CUAXuQFxHqykAn5Fm0YqSQKM=
将输出的id_ed25519.pub公钥复制到用户端
重启
reboot
注意进行重启,否则可能即使填写KEY仍连不上。