自建RustDesk服务端以及Web管理

对于RustDesk就不过多介绍了,自建服务端也很简单,本篇主要是介绍如何一次性搭建服务端以及使用第三方来达成Web管理,并且使用https来访问Web端

Server端

需要修改的变量说明:

变量 说明
your-web-domain.com 你的Web访问域名
any-key 用于加密的key

需要放行的端口:RustDesk文档

默认情况下Docker映射的端口是直接放行的,所以我也懒得测到底需要放行哪些端口

端口 类型
21114 TCP
21115 TCP
21116 TCP/UDP
21117 TCP
21118 TCP
21119 TCP
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
mkdir -p /home/rustdesk
cd /home/rustdesk
vim docker-compose.yml

networks:
rustdesk-net:
external: false
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: lejianwen/rustdesk-server-s6:latest
environment:
- RELAY=your-web-domain.com
- ENCRYPTED_ONLY=1
volumes:
- ./data/server:/data
restart: unless-stopped
rustdesk-api:
container_name: rustdesk-api
ports:
- 21114:21114
image: lejianwen/rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=your-web-domain.com
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=your-web-domain.com
- RUSTDESK_API_RUSTDESK_API_SERVER=https://your-web-domain.com
- RUSTDESK_API_RUSTDESK_KEY=any-key
volumes:
- ./data/api:/app/data
networks:
- rustdesk-net
restart: unless-stopped

Nginx配置https 来源以及http配置参考

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
server {
server_name <YOUR_DOMAIN>;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:21114/;
}

location /ws/id {
proxy_pass http://localhost:21118;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /ws/relay {
proxy_pass http://localhost:21119;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/<YOUR_DOMAIN>/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/<YOUR_DOMAIN>/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
if ($host = <YOUR_DOMAIN>) {
return 301 https://$host$request_uri;
} # managed by Certbot

server_name <YOUR_DOMAIN>;
listen 80;
return 404; # managed by Certbot
}

Web端

访问地址:

  1. http://ip:port/_admin/
  2. https://your-web-domain.com/_admin/

登录密码获取方式:

1
docker logs rustdesk-api

get_passwd.png

用户名:admin
密码:在上面步骤中看到的密码

web_login.png

Web远程的访问地址:
https://your-web-domain.com/webclient2/

客户端

下载地址

安装好之后打开客户端 点击右上角的按钮

open_app.png

选择安全 点击解锁安全设置

unlock_security.png

设置你的远程访问方式

set_passwd.png

配置服务端 选择网络 解锁之后点击ID/中继服务器

set_server.png

前三个都填你的Web访问域名 keydocker-compose.yml文件中配置的key 填写完毕后点击确认保存

input_server.png

如果要使用账户进行管理就点击账户进行登录,可以使用admin,也可以在Web端新建用户

app_login.png

其他的Web功能自行研究,功能太多了,不一一介绍了