在VPS上通过docker搭建RustDesk服务器

在VPS上通过docker搭建RustDesk服务器

一、RustDesk 服务器的搭建

我们需要一台运行 Linux 的服务器或 VPS 来部署 RustDesk Server,让它成为 RustDesk 服务器。此处以一台 1C1G 的 VPS 为例,操作系统为 Debian GNU/Linux 11 (bullseye) (x86_64)。

推荐服务器低至$10.96一年的RackNerd搬瓦工腾讯云轻量服务器莱卡云

RustDesk 官网给的 docker-compose.yml 就有问题,修改过的 docker-compose.yml 文件,经实测可以使用。

创建项目目录

mkdir ~/rustdeskserver

进入目录

cd ~/rustdeskserver

建立 docker-compose.yml 文件

nano ./docker-compose.yml

将以下内容粘贴到上述 docker-compose.yml 文件中:

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs: # RustDesk ID/Rendezvous 服务器
    container_name: hbbs
    ports:
      - 21115:21115           # 用于 NAT 类型测试的 TCP
      - 21116:21116           # TCP打孔
      - 21116:21116/udp       # UDP心跳/ID服务器
      - 21118:21118           # 如果要运行web客户端,则使用TCP进行web套接字
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - /data/rustdesk/hbbs:/root
    environment:
      - "RELAY=x.x.x.x:21117"   # 运行这些容器的服务器的【IP:port】或域名
      - "ENCRYPTED_ONLY=1"      # 开启加密
      # - "KEY=xxxxxx"            # 自定义KEY,去掉这一行可以自动生成
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr: # RustDesk 中继服务器
    container_name: hbbr
    ports:
      - 21117:21117           # TCP中继
      - 21119:21119           # 如果要运行web客户端,则使用TCP进行web套接字
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - /data/rustdesk/hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

下载 RustDesk Server 镜像并启动 docker 容器

docker compose up -d

还有,要在 VPS 的管理控制台创建上述五个端口的入站规则(注意 TCP 协议的 21116 端口和 UDP 协议的 21116 端口都要打开)。

这样,RustDesk 服务器搭建完成。

二、RustDesk Server 的组成与使用

RustDesk Server 由两个进程组成。一个是 hbbs,它是 ID 服务器,负责为每一个客户端生成 ID。一个是 hbbr,它是中继服务器,负责在两个客户端之间建立连接,能直连就直连,不能直连就通过服务器中转。

RustDesk 客户端连接自建服务器时,每个客户端需要输入自建服务器的域名(或 IP 地址)和公钥(Key)。

在 RustDesk Server for Linux 上,公钥储存在 /data/rustdesk/hbbs/id_ed25519.pub 文件中。

如果公钥或者私钥有一个缺失,那么在每次 RustDesk Server 运行时,就会生成一对新的公私钥。RustDesk 服务器管理员需要将公钥分发给客户端用户。

RustDesk 服务器管理员可以临时停止 RustDesk Server,以免持有公钥的用户未经许可使用 RustDesk Server,消耗服务器的流量。临时停止 RustDesk Server的方法:

cd ~/rustdeskserver
docker compose down

如果要重新启用 RustDesk 服务,就执行以下命令:

cd ~/rustdeskserver
docker compose up -d

三、RustDeskAPI服务器搭配合使用

配置lejianwen/rustdesk-server使用更佳。

进入/root/rustdeskserver 目录通过修改 docker-compose.yml 文件

  rustdesk-api:
    image: lejianwen/rustdesk-api
    container_name: rustdesk-api
    ports:
      - "21114:21114"
    volumes:
      - /data/rustdesk/api:/app/data
    environment:
      - TZ=Asia/Shanghai
      - RUSTDESK_API_LANG=zh-CN
      - RUSTDESK_API_RUSTDESK_ID_SERVER=hbbs:21116 # 使用服务名在内部网络通信
      - RUSTDESK_API_RUSTDESK_RELAY_SERVER=hbbr:21117
      - RUSTDESK_API_RUSTDESK_API_SERVER=http://你的公网IP或域名:21114
      - RUSTDESK_API_RUSTDESK_KEY=你的hbbs公钥
      - RUSTDESK_API_JWT_KEY=JWT秘钥 # 可选
    networks:
      - rustdesk-net # 确保与hbbs/hbbr在同一网络
    restart: unless-stopped

启动hbbs、hbbr、api三个容器

docker compose up -d

查看容器是否正常启动

docker ps

查看api服务的账目密码

docker logs rustdesk-api

输入ip:21114登录进入

填入API服务器的地址,这样就可以登录进来保存设备了

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注