自己搭建远程控制RustDesk服务端

概述

RuskDesk 是一个使用 rust 语言编写的开源的远程控制,支持自行搭建服务端

官网地址:https://rustdesk.com

准备

  • 公网 IP
  • 服务器
  • 域名(可选)

路由器映射以下几个端口:

  • hbbs:
    • 21114 (TCP): 用于网页控制台,仅在 Pro 版本中可用。
    • 21115 (TCP): 用于 NAT 类型测试。
    • 21116 (TCP/UDP): 请注意 21116 应该同时为 TCP 和 UDP 启用。 21116/UDP 用于 ID 注册和心跳服务。21116/TCP 用于 TCP 打洞和连接服务。
    • 21118 (TCP): 用于支持网页客户端。
  • hbbr:
    • 21117 (TCP): 用于中继服务。
    • 21119 (TCP): 用于支持网页客户端。

如果您不需要网页客户端支持,可以禁用相应的端口 2111821119

服务端

Docker

docker compose

 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
networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - "21115:21115"
      - "21116:21116"      # 自定义 hbbs 映射端口
      - "21116:21116/udp"  # 自定义 hbbs 映射端口
    image: rustdesk/rustdesk-server
    command: hbbs
    volumes:
      - "./hbbs:/root"  # 自定义挂载目录
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - "21117:21117"      # 自定义 hbbr 映射端口
    image: rustdesk/rustdesk-server
    command: hbbr
    volumes:
      - "./hbbr:/root"  # 自定义挂载目录
    networks:
      - rustdesk-net
    restart: unless-stopped

官方

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

第三方服务实现

 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
networks:
  rustdesk_net:
    external: false

services:
  rustdesk:
    image: lejianwen/rustdesk-server-s6:latest
    container_name: rustdesk-server-s6
    ports:
      - 21114:21114
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    environment:
      - RELAY=反代21117的域名:端口
      - ENCRYPTED_ONLY=1
      - MUST_LOGIN=N
      - TZ=Asia/Shanghai
      - RUSTDESK_API_RUSTDESK_ID_SERVER=反代21116的域名:端口
      - RUSTDESK_API_RUSTDESK_RELAY_SERVER=反代21117的域名:端口
      - RUSTDESK_API_RUSTDESK_API_SERVER=反代21114的域名:端口
      - RUSTDESK_API_RUSTDESK_WS_HOST=反代21114的域名:端口
      - RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
      - RUSTDESK_API_JWT_KEY=
      - RUSTDESK_API_JWT_EXPIRE_DURATION=
    volumes:
      - ./rustdesk_data/server:/data
      - ./rustdesk_data/api:/app/data
    networks:
      - rustdesk_net
    restart: unless-stopped

反向代理:

21118 端口:(前端:21114 地址/ws/id) ‍ 21119 端口 : (前端:21114 地址/ws/relay )

windows

下载两个工具:NSSMRuskDesk Server

解压它们,放到各自的文件夹下,把 NSSM 加入到系统的环境变量,确保可随处执行

xxxxxxxxxx nssm stop JupyterLabService​​nssm remove JupyterLabServicecmd

1
2
nssm install "RustDesk hbbs service" "C:\Program Files\RustDesk Server\hbbs.exe" -r 0.0.0.0 -k _
nssm install "RustDesk hbbr service" "C:\Program Files\RustDesk Server\hbbr.exe" -k _

比如我的如下

1
nssm install "RustDesk hbbs service" "D:\Program Files\rustdesk-server-windows-x86_64\hbbs.exe" -r 0.0.0.0 -k _

执行完成之后应该在 服务 能够看到这个 image.png

启动服务

1
nssm start "RustDesk hbbs service"

关闭服务

1
nssm stop "RustDesk hbbs service"

客户端

下载客户端:点此下载

安装到本地,安装过程不做介绍。

打开软件,进入设置

接着点击网络,解锁网络设置

填如 id 服务器,和 Key。等等,我发现了个问题,web 端官方给出的文档是 21114 端口,好像无法访问,先打开打开 cmd,查看监听的端口,

果然没有 21114 端口,然后我去 github 官方找 doc 了, 搜索 21114,有一个相关的回答,官方说 web 端被移除了,合着我白忙活了??

不过别慌,不就是没有 web 客户端嘛,先填写本机 ip 试试先,至于这个 key 嘛,如果你留意文件夹还记得是否还记得有个 .pub结尾的。熟悉证书的都有点灵感了,这个一般都是公钥,使用记事本打开复制到 key 中试试

返回主页,看中间的底部,有个 就绪字样

可以了??为了确定到底是不是,然后我就把那个 id 服务器随便填了一个 ip,发现还真就不行了,多试了几次也还是这样,填回自己的就好了,为了给你们看看还是截图为证

好了,关于这部分应该就是可以了,至于远程连接实际有没有问题,下次再测试测试,现在已经晚上 12:23 了。

在后来我找解决 web 客户端的时候,我发现 rustdesk server 文件夹下有个RustDeskServer.Setup.exe 好家伙,这不就是 server 安装程序嘛,我还用 nssm 干嘛,点击下一步下一步就好了,后面测试了确实是可以的,不过有一步是弹出个程序框,需要点击启动。好了,现在真的 12:30 了。

参考文档:

  1. https://post.smzdm.com/p/a94pmrd0/
  2. https://github.com/lejianwen/rustdesk-api
页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading

-->