Docker-Compose完整部署RustDesk自建服务器

Docker-Compose完整部署RustDesk自建服务器

一、环境准备与前置条件

在开始部署前,您需要确保服务器满足以下基本要求:
服务器要求:

  • 具有公网IP的服务器(云主机如阿里云、腾讯云等)
  • 最低配置:1核1G内存(仅内网使用可更低)
  • 至少1GB磁盘空间用于镜像和数据存储

软件要求:

 

环境检查命令:

1
2
3
4
5
6
7
8
# 检查Docker是否安装
docker --version

# 检查Docker Compose是否安装
docker compose version

# 若未安装,执行安装命令(Ubuntu示例)
sudo apt update && sudo apt install -y docker.io docker-compose-plugin

二、完整的Docker-Compose配置文件

创建项目目录并编写配置文件:

1
2
# 创建专用目录
mkdir -p /opt/rustdesk-server && cd /opt/rustdesk-server

创建docker-compose.yml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
version: '3.8'

networks:
rustdesk-net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24

services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r 你的服务器IP或域名:21117 -k _
ports:
- "21115:21115" # TCP - 注册与心跳服务[6](@ref)
- "21116:21116" # TCP - 数据传输端口[6](@ref)
- "21116:21116/udp" # UDP - NAT类型探测[6](@ref)
- "21118:21118" # TCP - HTTP API(管理用)[6](@ref)
volumes:
- ./rustdesk_data:/root
networks:
rustdesk-net:
ipv4_address: 172.20.0.10
depends_on:
- hbbr
restart: unless-stopped
healthcheck:
test: ["CMD", "/usr/bin/healthcheck.sh"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
memory: 128M
cpus: '0.5'

hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
ports:
- "21117:21117" # TCP - 中继服务[6](@ref)
- "21119:21119" # TCP - HTTP API(管理用)[6](@ref)
volumes:
- ./rustdesk_data:/root
networks:
rustdesk-net:
ipv4_address: 172.20.0.11
restart: unless-stopped
healthcheck:
test: ["CMD", "/usr/bin/healthcheck.sh"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
memory: 128M
cpus: '0.5'

关键配置说明:

网络配置:

  • 使用自定义bridge网络 rustdesk-net 
  • 为hbbs和hbbr分配固定IP(172.20.0.10和172.20.0.11),增强网络稳定性

端口映射:

  • 必须开放的端口:21115-21119/TCP和21116/UDP
  • 各端口用途明确区分,便于防火墙配置

安全配置:

  •  -k_参数:自动生成加密密钥,强制客户端使用密钥连接
  • 数据持久化:将密钥和配置数据挂载到本地目录 ./rustdesk_data

 

健康检查:

  • 内置健康检查脚本,确保服务正常运行
  • 30秒检查间隔,3次重试机制

三、部署执行步骤

修改配置文件
将配置文件中的”你的服务器IP或域名”替换为实际值:

1
2
# 自动获取公网IP并替换(可选)
sed -i "s/你的服务器IP或域名/$(curl -s icanhazip.com)/" docker-compose.yml

启动服务

1
2
3
4
5
6
7
8
9
10
11
# 拉取最新镜像
docker compose pull

# 后台启动服务
docker compose up -d

# 查看服务状态
docker compose ps

# 查看实时日志
docker compose logs -f

获取密钥
服务启动后,需要获取生成的公钥用于客户端配置:

1
2
3
4
5
# 方法一:查看日志获取密钥
docker compose logs hbbs | grep "key:"

# 方法二:直接查看公钥文件
cat ./rustdesk_data/id_ed25519.pub

密钥格式类似: aMXQFBM+NpRIDqh0KZ7CUAXuQFxHqykAn5Fm0YqSQKM=
配置防火墙
确保服务器防火墙开放必要端口:

1
2
3
4
5
6
7
8
# 开放TCP端口21115-21119
sudo firewall-cmd --zone=public --add-port=21115-21119/tcp --permanent

# 开放UDP端口21116
sudo firewall-cmd --zone=public --add-port=21116/udp --permanent

# 重新加载防火墙规则
sudo firewall-cmd --reload

如果是云服务器的话,在厂商控制台进行放开
alt text
alt text

四、客户端配置

Windows/Linux/macOS客户端:
下载并安装RustDesk客户端
 Rustdesk官网

alt text
点击下载会跳转到github ,根据你自己需要的版本和架构下载就好
alt text
进入设置 -> 网络
alt text
alt text
配置以下参数:

  • ID服务器:你的服务器IP或域名:21116
  • 中继服务器:你的服务器IP或域名:21117
  • Key:从 id_ed255  19.pub 文件中获取的公钥

我的key是自定义的,服务器是搭再局域网写教程的,所以比较草率,不要学我
alt text
到这里,需要远程的电脑都配置到之后,就可以开启远程了
alt text
也可以在软件上设置密码,使用一次性或者长期固定密码
在控制端输入被控端的远程代码即可远程
alt text

好了,其他功能请自行摸索,并且,自建中继服务器支持对手机的远程操控,官方提供是不支持的,(zp太多),谨慎使用,自己用无所谓了

命令行参数配置(高级):

1
2
3
4
5
6
7
8
# Windows
rustdesk.exe --server 你的服务器IP --port 21115 --relay 你的服务器IP:21117

# Linux
./rustdesk --server 你的服务器IP --port 21115 --relay 你的服务器IP:21117

# macOS
open -a RustDesk --args --server 你的服务器IP --port 21115 --relay 你的服务器IP:21117

服务升级:

1
2
3
4
5
6
7
8
# 拉取最新镜像
docker compose pull

# 重启服务(自动使用新镜像)
docker compose up -d

# 查看当前使用的镜像版本
docker images | grep rustdesk-server