码上焚香

Yahocen

RustDesk安全的远程桌面访问使用说明

363
2024-04-03

RustDesk 介绍

官方地址:https://rustdesk.com/zh/

RustDesk 是一款可以平替 TeamViewer/ToDesk/向日葵 的开源软件,旨在提供安全便捷的自建方案。RustDesk 是一款功能齐全的远程桌面应用,支持 Windows、macOS、Linux、iOS、Android、Web 等多个平台。

自建中继服务

请在安装前仔细阅读本段内容。

为了安装中继服务,需要准备一个具有公网IP的服务器。本文采用Docker Compose方式进行安装,因此需要先安装Docker和Docker Compose。需要注意的是,一旦服务器安装了中继服务,就无法再将其用作被控端或控制端。同时,RustDesk中继服务会占用21115、21116、21117端口,当然也可以自行映射其他端口,但这里不进行讨论。

安装中继

在安装目录下新建docker-compose.yml文件,并替换自定义部分。在这里,使用了-k _参数来启用密钥认证。开启密钥认证后,客户端需要携带公钥才能进行远程控制操作,有效地防止恶意刷流量的情况发生。以下是已完成的文件内容:

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
    image: rustdesk/rustdesk-server
    command: hbbs -r <公网IP或域名>:21117 -k _ 
    volumes:
      - ./hbb_data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
    image: rustdesk/rustdesk-server
    command: hbbr -k _ 
    volumes:
      - ./hbb_data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

执行 docker-compose up -d 命令启动容器,然后使用 docker ps 命令检查容器是否成功启动,你会在安装目录下看到生成的 hbb_data 目录。

防火墙端口规则

RustDesk会占用 211152111621117 端口。为了让 RustDesk 正常运行,需要在防火墙中开放这几个端口。以下是开放端口并重启防火墙的命令:

firewall-cmd --zone=public --add-port=21115/tcp --add-port=21116/tcp --add-port=21116/udp --add-port=21117/tcp --permanent && firewall-cmd --reload

如果使用了阿里云,请确保在安全组中开启以上端口。21116端口需要同时开启TCPUDP协议。请注意这一点。

获取公钥

hbb_data目录下的 id_ed25519.pub 是公钥文件,包含公钥信息。为了保护安全,应妥善保管此公钥。

如果需要重置公钥,可以删除 id_ed25519id_ed25519.pub 密钥文件,然后重启中继服务,系统会自动生成新的密钥。

使用中继服务

相关的客户端请在RustDesk官网获取。RustDesk的各个端都有与 ID/中继服务器 相关的设置,只需将中继服务器的IP或域名填写到 ID服务器 中即可。如果中继服务器启用了密钥验证,控制端还需要将相应的公钥填写到 Key 中。其他配置将由RustDesk自动获取。