github: rustdesk/rustdesk-server: RustDesk Server Program (github.com)
一、创建 docker-compose.yml 文件,复制以下 docker-compose 配置文件内容到文件
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地址,或已正确解析并可访问的域名。
二、防火墙与安全组配置
1、设置服务器系统防火墙放行相关端口
2、设置云服务器网卡安全组放行相关端口
三、启动docker容器
# 启动docker容器
docker-compose up -d
# 查看docker运行情况
docker ps
# 进入当前正在运行容器
docker exec -it 容器id /bin/bash
四、客户端连接
把yml文件里改好的IP或域名,填写到使用端中【ID服务器】
-----------------------------------------------------
至此,测试远程控制使用应该已经没有问题了,即使centos重启,docker容器也会自启动。
但是,有一个风险点:如果其他人知道了该IP或域名部署了rustdesk服务器,那么他人也可以直接填写ID服务器,使用服务。
这样的话,流量就给别人白嫖了。
所以接下来,需要强制开启填写key才能连接服务器。
(非必须)五、开启key验证
在16行和31行末尾加上【-k _ 】,以强制开启验证key,即:
#第16行
command: hbbs -r rustdesk.example.com:21117 -k _
#第31行
command: hbbr -k _
注意16行填写自己的IP或域名。
(非必须)六、重新加载容器
docker-compose up -d
此时,重新测试用户端控制,没有填写KEY的情况下,会报错无法连上。
(非必须)七、查看公钥文件,客户端填写
在 docker-compose.yml 目录下可以看到生成了一个data文件夹,进入data文件夹
#显示文件,可以看到3个db文件,2个id文件
db_v2.sqlite3 db_v2.sqlite3-shm db_v2.sqlite3-wal id_ed25519 id_ed25519.pub
#查看公钥文件【id_ed25519.pub】,如:aMXQFBM+NpRIDqh0KZ7CUAXuQFxHqykAn5Fm0YqSQKM=
cat ./id_ed25519.pub
然后在客户端填写key
如果遇到连接问题,请尝试重启。
参考:docker-compose自建RustDesk远程控制服务器 - 痴心妄想 - 博客园 (cnblogs.com)