Docker部署RustDesk中继服务器

RustDesk官方文档

新建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
networks:
rustdesk-net:
external: false

services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- <hbbs_port>:21116 # 自定义 hbbs 映射端口
- <hbbs_port>:21116/udp # 自定义 hbbs 映射端口
image: rustdesk/rustdesk-server
command: hbbs -r <your_domain>:<hbbr_port> # 填入个人域名或 IP + hbbr 暴露端口
volumes:
- <mount_path>:/root # 自定义挂载目录
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M

hbbr:
container_name: hbbr
ports:
- <hbbr_port>:21117 # 自定义 hbbr 映射端口
image: rustdesk/rustdesk-server
command: hbbr
volumes:
- <mount_path>:/root # 自定义挂载目录
networks:
- rustdesk-net
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M

启动

1
docker compose up -d # 想像后面一样看到日志的,可以先把-d去掉

🔔 有些云服务器的防火墙需要放行几个用到的端口

配置客户端(被控端+主控端)

Docker部署RustDesk中继服务器-2024-09-06-16-49-54image

Docker部署RustDesk中继服务器-2024-09-06-16-50-12image 1

填ID服务器和中继服务器和KEY,不填KEY也可以,但是链接无法加密

Docker部署RustDesk中继服务器-2024-09-06-16-50-56image 2

ID 服务器指的是 hbbs 主机或 ip 地址(21116)端口。

中继服务器指的是 hbbr 主机或 ip 地址(21117)端口。

在之前docker映射出来的hbbs目录里查看key

1
cat ./hbbs/id_ed25519.pub

应用之后关闭客户端重新打开等到网络就绪,服务器的日志会输出下面一样的一条日志

Docker部署RustDesk中继服务器-2024-09-06-16-51-18image 3

Docker部署RustDesk中继服务器-2024-09-06-16-51-18image 4

禁止没有key的用户建立非加密连接

在上面的compose.yml里的hbbs和hbbr命令加-k _ 参数

1
2
hbbs -r <relay-server-ip[:port]> -k _
hbbr -k _

杂话

一般情况: RustDesk首先尝试建立直接P2P连接,如果P2P失败,将使用中继服务器。
确认连接方式,首先连接到远程主机,可以将鼠标移动到工具栏图标(绿色图标/红色图标),将显示它是直接连接还是通过中继服务器连接。

Docker部署RustDesk中继服务器-2024-09-06-16-51-31image 5

按道理来说如果使用tailscale或其他vpn将两台机器放在同一个局域网里,rustdesk能否探测到两台机器是同一局域网的,然后直接走P2P了,就没必要再搭建rustdesk中继服务器

下面试一下开启允许IP直接访问,然后用tailscale给的ip进行连接

Docker部署RustDesk中继服务器-2024-09-06-16-51-38image 6

是的,使用直连了,验证了猜想

Docker部署RustDesk中继服务器-2024-09-06-16-51-45image 7