先写官方中继服务器的实现:
首先得有一台有公网ip的服务器,安全组放行以下端口
TCP(21115, 21116, 21117, 21118, 21119)
UDP(21116)
mkdir -p /mnt/sda3/docker/files/rustdesk/data
cd /mnt/sda3/docker/files/rustdesk/data
sudo docker image pull rustdesk
sudo docker image pull rustdesk-server
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbs -r <公网IP或ddns域名>:21117 -k 12345678
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbr -k 12345678
docker exec -it hbbs cat id_ed25519.pub
输出的字符串就是key 它的最后一个字符是=
12345678就是key,key是保证别人不能在知道你中继服务器的IP后,利用你的IP做中继。如果不配置key,就做好中继IP的保密工作,不要泄露给其他人。 而只要服务端配置了密钥,无论是随机生成(生成后本身就固定了),还是自定义的,如果控制客户端不配置对应key就无法控制其他机器(被控机器可以不填key)
接下来是web 服务器的实现:
docker run -d \
--name rustdesk-api-server \
-p 21114:21114 \
-e CSRF_TRUSTED_ORIGINS=http://rdp.cycx.top:21114 \ #防跨域信任来源,可选
-e ID_SERVER=rdp.cycx.top \ #Web控制端使用的ID服务器
-v /mnt/sda3/docker/files/rustdesk/data:/rustdesk-api-server/db \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
--network bridge \
--restart unless-stopped \
ghcr.io/kingmo888/rustdesk-api-server:latest
docker run -d \
--name rustdesk-api-server \
-p 21114:21114 \
-e ID_SERVER=rdp.cycx.top \
-v /mnt/sda3/docker/files/rustdesk/data:/rustdesk-api-server/db \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
--network bridge \
--restart unless-stopped \
ghcr.io/kingmo888/rustdesk-api-server:latest
官方站点:https://github.com/kingmo888/rustdesk-api-server
API实现
docker run -d --name rustdesk-api -p 21114:21114 \
-v /mnt/sda3/docker/files/rustdesk-server/api:/app/data \
-e TZ=Asia/Shanghai \
-e RUSTDESK_API_LANG=zh-CN \
-e RUSTDESK_API_RUSTDESK_ID_SERVER=cycx.top:21116 \
-e RUSTDESK_API_RUSTDESK_RELAY_SERVER=cycx.top:21117 \
-e RUSTDESK_API_RUSTDESK_API_SERVER=http://cycx.top:21114 \
-e RUSTDESK_API_RUSTDESK_KEY=2peYBGXppLvTADXZLUNP2h0AJVnNF5yAlBE3XoVasqo= \
lejianwen/rustdesk-api