自建 Rustdesk 服务器
2024-03-28 10:32:53 # Tricks

无良的向日葵

收费的 TeamViewer

作妖的 todesk

开源的 Rustdesk ✔

docker 搭建

修改: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
hbbs:
image: rustdesk/rustdesk-server:latest
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
volumes:
- /opt/rustdesk/hbbs/data:/root
command: hbbs -r <公网IP>:21117 -k _
depends_on:
- hbbr
restart: unless-stopped
hbbr:
image: rustdesk/rustdesk-server:latest
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
volumes:
- /opt/rustdesk/hbbr/data:/root
command: hbbr -k _
restart: unless-stopped

需放开的端口:

  • 21115(tcp):hbbs 用于 NAT 类型测试
  • 21116(tcp/udp):TCP 用于打洞与连接服务,UDP 用于 ID 注册与心跳服务
  • 21117(tcp):hbbr 中继服务
  • 21118(tcp):网页客户端,hbbs WebSocket 服务
  • 21119(tcp):网页客户端,hbbr WebSocket 转发

容器外的端口可根据需要自行修改

hbbr 与 hbbs 启动命令中的 -k _ 为可选项,如果没有则使用明文通话,否则将会生成一对加密的私钥与公钥,用于加密通话

客户端配置

hbbr 和 hbbs 的docker 启动完成后,下载 rustdesk 的客户端配置中继服务器

ID/中继服务器配置

  • ID 服务器:hbbs 中 TCP 打洞与 UDP 注册的对应地址,默认端口为:21116
  • 中继服务器:hbbr 的中继服务地址,默认端口为:21117
  • Key:hbbr/hbbs 下的公钥

reset by peer 连接被对方关闭

搭建完后,尝试连接时出现了 连接被对方关闭 的异常

通过查看 hbbr 与 hbbs 的容器日志可以发现,这是因为 hbbr 与 hbbs 下的公钥与私钥不同导致

先停止服务

1
2
3
4
docker stop hbbr
docker rm hbbr
docker stop hbbs
docker rm hbbs

将 hbbs 下的密钥复制到 hbbr 下

1
2
rm -f /opt/rustdesk/hbbr/data/*
cp id_ed25519 id_ed25519.pub /opt/rustdesk/hbbr/data/

重启即可

1
docker-compose up -d