开始搭建

创建一下安装的目录:

1
2
3
4
5
mkdir -p /root/data/docker_data/rustdesk

cd /root/data/docker_data/rustdesk

nano docker-compose.yml

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
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 hbbs.example.com:21117 # hbbs.example.com改成自己的服务器ip或者域名
volumes:
- ./hbbs:/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:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped

没问题的话,ctrl+x退出,按y保存,enter确认。

打开防火墙的端口2111521116211172111821119

默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听21117(tcp), 21119(tcp)

务必在防火墙开启这几个端口, **请注意21116同时要开启TCPUDP**。

其中21115是hbbs用作NAT类型测试,21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务,21117是hbbr用作中继服务, 2111821119是为了支持网页客户端。

如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。

  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)

image-20220630215240864
image-20220630220546335
image-20220630215134217
image-20220630220629996

查看端口是否被占用(以21115为例),输入:

1
lsof -i:21115  #查看21115端口是否被占用,如果被占用,重新自定义一个端口

如果出现:

1
-bash: lsof: command not found

运行:

1
apt install lsof  #安装lsof

如果端口没有被占用,我们接着可以运行:

1
2
3
cd /root/data/docker_data/rustdesk

docker-compose up -d

注意:

1、不知道服务器IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的IP。

2、遇到访问不了的情况,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。

更新

1
2
3
4
5
6
7
cp -r /root/data/docker_data/rustdesk /root/data/docker_data/rustdesk.archive  # 万事先备份,以防万一

cd /root/data/docker_data/rustdesk # 进入docker-compose所在的文件夹

docker-compose pull # 拉取最新的镜像

docker-compose up -d # 重新更新当前镜像

利用Docker-compose搭建的应用,更新非常容易~

卸载

1
2
3
4
5
cd /root/data/docker_data/rustdesk  # 进入docker-compose所在的文件夹

docker-compose down # 停止容器,此时不会删除映射到本地的数据

rm -rf /root/data/docker_data/rustdesk # 完全删除映射到本地的数据

使用教程

安装和配置

见咕咕鸽的视频

点击 ID 右侧的菜单按钮如下,选择“ ID/中继服务器”。

img

在 ID 服务器输入框中(被控端+主控端)输入 hbbs 主机或 ip 地址,另外两个地址可以不填,RustDesk会自动推导(如果没有特别设定),中继服务器指的是hbbr(21116)端口。

例如:

1
hbbs.example.com

或者

1
hbbs.example.com:21116

img
image-20220630230905895
image-20220630231000711
image-20220630231648227
image-20220630231211642

功能展示

image-20220630231557544
image-20220630231732435
image-20220630231801433

传输文件

image-20220630231912131
image-20220630232034319

几个小问题

加密通话

最新版必须过设置Key,来加密通话。

以下来自官方文档

hbbs在第一次运行时,会自动产生一对加密私钥和公钥(分别位于运行目录下的id_ed25519id_ed25519.pub文件中),其主要用途是为了通讯加密。

image-20220630223952511

如果您在上一步骤中没有填写Key:(公钥文件id_ed25519.pub中的内容),会影响连接,且无法加密。

1
cat /root/data/docker_data/rustdesk/hbbs/id_ed25519.pub

image-20220630224047960

如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _ 参数,例如:

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
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 hbbs.example.com:21117 -k _ # 加上-k _
volumes:
- ./hbbs:/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 -k _ # 加上-k _
volumes:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped

实测加上-k _参数后,会导致无法连接,不确定是不是BUG,有解决的小伙伴欢迎在评论区留言交流!

如果要更改key,请删除 id_ed25519id_ed25519.pub 文件并重新启动 hbbs/hbbr,hbbs将会产生新的密钥对。

把配置放在可执行文件名里 (Windows only)

rustdesk.exe 修改为 rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe, 例如: rustdesk-host=192.168.1.137,key=xfdsfsd32=32.exe,你可以在About窗口看到配置结果,如下图所示。

hostkey 都需要添加,缺少一个就不好使。

如果密钥中有无效字符而不能用于文件名,请删除id_ed25519文件并重新启动hbbs/hbbr,id_ed25519.pub文件将被重新生成,请重复操作直到获得有效字符。

MenuAbout Page
imgimg

结尾

祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。

同时,有能力给项目做贡献的同学,也欢迎积极加入到项目中来,贡献自己的一份力量!

参考资料

https://github.com/rustdesk/rustdesk-server