RustDesk

远程桌面软件,开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。


Docker-Compose

创建 docker-compose.yml 文件

1
nano docker-compose.yml

command: hbbs -r desk.rahn.top:21117 desk.rahn.top 修改为反向代理的域名

hbbs 是一个服务,它运行在 Docker 容器中,并且可以通过多个端口进行访问。该服务的作用是提供远程桌面的功能,可以让用户通过网络连接到远程计算机并控制其操作。hbbs 服务使用了最新版本的rustdesk/rustdesk-server镜像,并且在容器内有一个数据卷(./hbbs),以保存数据和配置文件。此外,该服务依赖于另一个名为 hbbr 的服务。

hbbr 也是一个运行在 Docker 容器中的服务,它提供了 hbbs 所需的支持服务。hbbr 服务同样使用最新版本的 rustdesk/rustdesk-server 镜像,并且在容器内有一个数据卷(./hbbr),以保存数据和配置文件。该服务使用命令 hbbr 启动,并且可以通过多个端口进行访问。如果出现故障,hbbrhbbs 服务都将自动重启。

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 desk.rahn.top:21117
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
1
docker-compose up -d

打开 21115 21116 21117 21118 21119 端口

1
2
3
4
5
6
ufw allow 21115/tcp
ufw allow 21116/udp
ufw allow 21116/tcp
ufw allow 21117/tcp
ufw allow 21118/tcp
ufw allow 21119/tcp

允许通过 IP 访问

直接写 IP 地址,不需要加上端口号

在本地客户端打开 允许IP直接访问

访问也可以是加密的形式


加密通信

1
2
3
cd /hbbs
cat id_ed25519.pub
z9MtgU7HdltmURkatkcDkJDuW4Tk93NufAhZeWKT02U=

image-20230606201407154


一键脚本

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#! /bin/bash

red(){
echo -e "\033[31m\033[01m$1\033[0m"
}
green(){
echo -e "\033[32m\033[01m$1\033[0m"
}
yellow(){
echo -e "\033[33m\033[01m$1\033[0m"
}


# RustDesk

function rustdesk_install(){
if nc -z localhost 21115 && nc -z localhost 21116 && nc -z localhost 21117 && nc -z localhost 21118 && nc -z localhost 21119; then
echo " 21115 21116 21117 21118 21119 中的端口已经被占用,请检查相关进程"
exit 1
fi
if docker ps -a --format "{{.Names}}" | grep -q "hbbs" && docker ps -a --format "{{.Names}}" | grep -q "hbbr"; then
echo " hbbs hbbr 容器名已经被占用"
exit 1
fi
if [ ! -d /root/docker/RustDesk ]; then
mkdir -p /root/docker/RustDesk
fi
cd /root/docker/RustDesk
if [ -f "docker-compose.yml" ]; then
rm docker-compose.yml
fi
cat <<EOF > docker-compose.yml
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 https://rustdesk.rahn.top
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
EOF
docker-compose up -d
ufw allow 21115/tcp
ufw allow 21116/udp
ufw allow 21116/tcp
ufw allow 21117/tcp
ufw allow 21118/tcp
ufw allow 21119/tcp
yellow "-----------------------------------------------"
green " Web 端口:21117"
echo
green " Docker IP = $(ip addr show docker0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1):21117"
echo
green " Web 网址 = http://$(ifconfig $(ifconfig | grep -oP 'enp\w+') | grep 'inet ' | awk '{print $2}'):21117"
echo
green " ID 服务器 = https://rustdesk.rahn.top"
echo
cd /root/docker/RustDesk/hbbs
green " Key = $(cat id_ed25519.pub)"
echo
green " RustDesk 安装完毕!"
yellow "-----------------------------------------------"
}
rustdesk_install

内网穿透

在 RustDesk 软件中,nasrustdesk.rahn.top 填写在中继服务中

1
2
3
4
5
6
[rustdesk]
type = tcp
local_ip = 127.0.0.1
local_port = 21117
remote_port = 7019
custom_domains = nasrustdesk.rahn.top

官方:https://rustdesk.com/zh/

Docker: https://hub.docker.com/r/rustdesk/rustdesk-server