Docker-compose自建RustDesk

Administrator 39 2024-07-28

Docker-compose自建RustDesk

Rustdesk-docker 镜像下载:

tag:rustdesk/rustdesk-server:latest

https://weiii.xyz/upload/rustdesk.tar

一、创建 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

其中第【rustdesk.example.com】更改为本机服务器公网ip地址,或已正确解析并可访问的域名。

二、防火墙与安全组配置

1、设置服务器系统防火墙放行相关端口

2、设置云服务器网卡安全组放行相关端口

三、启动docker容器

# 启动docker容器
docker-compose up -d
 
 
# 查看docker运行情况
docker ps
 
# 进入当前正在运行容器
docker exec -it 容器id /bin/bash

四、客户端连接

把yml文件里改好的IP或域名,填写到使用端中【ID服务器】

image-ptid.png

---------------------------------------------------------------------------------------------------------------------------------------------------------------

至此,测试远程控制使用应该已经没有问题了,即使centos重启,docker容器也会自启动。
但是,有一个风险点:如果其他人知道了该IP或域名部署了rustdesk服务器,那么他人也可以直接填写ID服务器,使用服务。
这样的话,流量就给别人白嫖了。
所以接下来,需要强制开启填写key才能连接服务器。

(非必须)五、开启key验证

在command启动命令行末尾加上【-k _ 】,以强制开启验证key,即:

#第16行

command: hbbs -r rustdesk.example.com:21117 -k _ 
#第31行

command: hbbr -k _ 

(非必须)六、重新加载容器

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