自建 RustDesk 远程服务器

准备条件

1)一台服务器

端口说明
自行放开以下端口的防火墙
21114 (TCP):用于网页控制台,仅在 Pro 版本中可用。

21115 (TCP):用于 NAT 类型测试。

21116 (TCP/UDP):请注意 21116 应该同时为 TCP 和 UDP 启用。

21116/UDP 用于 ID 注册和心跳服务。

21116/TCP 用于 TCP 打洞和连接服务。

21117 (TCP):用于中继服务。

21118 (TCP):用于支持网页客户端。

21119 (TCP):用于支持网页客户端。

2)本项目使用到的项目
本项目的官方github地址
https://github.com/rustdesk/rustdesk
本项目还使用了
自定义 Rustdesk API 服务器,包括 Web 管理后台、Web 客户端、Web 客户端 v2 预览版和 OIDC 登录
https://github.com/lejianwen/rustdesk-api
更多功能或者二次修改可以访问开源项目地址

3)域名(可选)
根据自己的需求

创建docker-compose.yml文件

登录服务器使用root账户执行以下步骤

创建一个目录,并进入此目录

1
mkdir  rustdesk;cd rustdesk

然后再新建docker-compose.yml

1
vim 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
services:
rustdesk:
ports:
- 21114:21114 # 映射 21114 端口 (TCP):用于网页控制台,仅在 Pro 版本中可用。
- 21115:21115 # 映射 21115 端口 (TCP):用于 NAT 类型测试。
- 21116:21116 # 映射 21116 端口 (TCP/UDP):用于 ID 注册和心跳服务 (UDP),以及 TCP 打洞和连接服务 (TCP)。需要同时启用 TCP 和 UDP。
- 21116:21116/udp # 映射 21116 端口 (UDP):用于 ID 注册和心跳服务。
- 21117:21117 # 映射 21117 端口 (TCP):用于中继服务。
- 21118:21118 # 映射 21118 端口 (TCP):用于支持网页客户端。
- 21119:21119 # 映射 21119 端口 (TCP):用于支持网页客户端。
image: lejianwen/rustdesk-server-s6:latest # 使用的镜像
environment:
- RELAY=http://服务器IP或域名:21117 # 设置中继服务器地址
- ENCRYPTED_ONLY=1 # 启用加密模式
- MUST_LOGIN=N # 是否必须登录才能远程,N表示不强制登录
- TZ=Asia/Shanghai # 设置时区为上海
- RUSTDESK_API_RUSTDESK_ID_SERVER=http://服务器IP或域名:21116 # 设置 ID 服务器地址
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=http://服务器IP或域名:21117 # 设置中继服务器地址
- RUSTDESK_API_RUSTDESK_API_SERVER=http://服务器IP或域名:21114 # 设置 API 服务器地址
- RUSTDESK_API_RUSTDESK_WS_HOST=http://服务器IP或域名:21114 # 设置 WebSocket 服务器地址
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub # API 密钥文件路径
- RUSTDESK_API_JWT_KEY= # JWT 密钥,留空表示不启用
- RUSTDESK_API_JWT_EXPIRE_DURATION= # JWT 过期时间,留空表示不启用
volumes:
- ./data/rustdesk/server:/data # 将本地数据目录挂载到容器的 /data 目录
- ./data/rustdesk/api:/app/data # 将本地 API 数据挂载到容器的 /app/data 目录
restart: unless-stopped # 容器停止时自动重启,除非手动停止

networks:
rustdesk-net:
external: false # 使用本地定义的网络而非外部网络

记得将服务器IP或域名改为自己服务器的IP

执行容器运行命令

1
2
docker-compose up -d #运行容器
docker-compose ps #查看是否启动成功

正常启动如下所示

1
2
3
docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
rustdesk-rustdesk-1 lejianwen/rustdesk-server-s6:latest "/init" rustdesk 53 minutes ago Up 53 minutes (healthy) 0.0.0.0:21114-21119->21114-21119/tcp, [::]:21114-21119->21114-21119/tcp, 0.0.0.0:21116->21116/udp, [::]:21116->21116/udp

服务端完成

打开web页面使用

成功以后需要打开自己相应的端口21114)防火墙就可以web端访问了

默认用户名是admin
密码和key可以通过查看日志获取

1
docker-compose logs
1
cat id_ed25519.pub

根据图示在各平台客户端填入自己的服务器信息以及Key即可使用

配置