购买腾讯云
选择地理上最近的地域,以便速度最快,我在武汉,选择的是成都。
云服务器基本配置:
镜像信息:Ubuntu 22.04 LTS
实例规格:CPU: 2核 内存: 2GB
系统盘:40GB SSD云硬盘
流量包:300GB/月(带宽:4Mbps)
远程登录选择WebShell一键登录,简单方便。
腾讯云 产业智变·云启未来 - 腾讯 (tencent.com)
→控制台→产品管理→最近访问→轻量服务器→服务器→Ubuntu→远程登录→一键登录→进入远程Bash界面
安装配置Docker容器
文章来源:docker-compose自建RustDesk远程控制服务器
所有操作均在root权限进行,需要先切换用户
sudo -i
1、新建文件夹【/root/rustdesk_data】
mkdir /root/rustdesk_data
2、进入文件夹
cd /root/rustdesk_data
3、新建yml文件,并写入保存配置
vi 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:21117
volumes:
- ./data:/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:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped
注意:
①其中第16行【rustdesk.example.com】更改为本机centos服务器公网ip地址,或已正确解析并可访问的域名。
②设置云服务器网卡安全组放行相关端口。
③设置centos系统防火墙放行相关端口,或直接把墙关停。
#临时关停防火墙
systemctl stop firewalld.service
#永久关停防火墙
systemctl disable firewalld.service
#查看防火墙状态
systemctl status firewalld.service
由于害怕关停防火墙会引起安全问题,因此通过手动在管理页面配置了防火墙规则,打开了相关网络断口
添加规则1:
应用类型:自定义
协议:TCP
断口:21115-21119
策略:允许
添加规则2:
应用类型:自定义
协议:UDP
断口:21116
策略:允许
4、给yml文件开权限
chmod 755 docker-compose.yml
5、执行下载镜像和启动docker容器
docker-compose up -d
因为yml文件第15行和30行已经填写rustdesk官方的docker hub在线路径,所以执行时候会自动pull运行。
6、查看docker运行情况
docker ps
7、把yml文件里改好的IP或域名,填写到使用端中【ID服务器】
至此,测试远程控制使用应该已经没有问题了,即使服务器重启,docker容器也会自启动。
但是,有一个风险点:如果其他人知道了该IP或域名部署了rustdesk服务器,那么他人也可以直接填写ID服务器,使用服务。
这样的话,流量就给别人白嫖了。
所以接下来,需要强制开启填写key才能连接服务器。
8、修改并保存第3步配置的yml文件【/root/rustdesk_data/docker-compose.yml】
vi /root/rustdesk_data/docker-compose.yml
在16行和31行末尾加上【-k _ 】,以强制开启验证key,即:
#第16行
command: hbbs -r rustdesk.example.com:21117 -k _
#第31行
command: hbbr -k _
注意16行填写自己的IP或域名
9、重新加载容器
#进入容器文件夹
cd /root/rustdesk_data
#执行命令
docker-compose pull
docker-compose up -d
此时,重新测试用户端控制,没有填写KEY的情况下,会报错无法连上。
10、找到KEY,并复制出来
#进入容器文件夹里【data文件夹】
cd /root/rusrdesk_data/data
#显示文件,可以看到2个id文件
#如:id_ed25519 id_ed25519.pub
ls
#查看公钥文件【id_ed25519.pub】,如:aMXQFBM+NpRIDqh0KZ7CUAXuQFxHqykAn5Fm0YqSQKM= 10 cat ./id_ed25519.pub
11、把KEY粘贴到用户端
12、重启服务器
reboot
注意进行重启,否则可能即使填写KEY仍连不上。
ersion: '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 162.14.75.216:21117 -k _
volumes:
- ./data:/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 -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped