部署架构图

客户端连接

Docker 容器

开始部署 RustDesk

安装 Docker & Docker Compose

创建部署目录

配置 docker-compose.yml

启动 hbbs & hbbr 服务

生成密钥

配置防火墙端口

客户端连接配置

部署完成

hbbs
ID/中继服务器

hbbr
中继服务器

远程设备

通过 hbbs 注册

通过 hbbr 中继数据

背景

1、服务器系统:Ubuntu 22.04.5 LTS
2、Rustdesk An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

第一步:安装 Docker 和 Docker Compose

依次执行以下命令:

# 先更新软件包列表,然后升级所有已安装的软件(确保系统最新,减少后续错误)
sudo apt update && sudo apt upgrade -y

# 安装 Docker
sudo apt install -y docker.io docker-compose

# 开机自启
sudo systemctl enable --now docker

# 把当前用户加入 docker 组,避免每次都要 sudo(推荐)
sudo usermod -aG docker $USER

执行完后,重新登录服务器(退出 SSH 再重新连),让 docker 组权限生效。

第二步:创建部署目录

# 创建 RustDesk 部署目录
mkdir -p ~/rustdesk/data

# 进入目录
cd ~/rustdesk

第三步:创建 docker-compose.yml 文件

服务架构说明

Docker 配置

RustDesk 服务架构

中继连接

启动

启动

挂载

挂载

hbbs 服务
ID/中继服务器
端口: 21115-21119

hbbr 服务
中继服务器
端口: 21116

客户端 A

客户端 B

docker-compose.yml

数据卷
~/rustdesk/data

在当前目录(~/rustdesk)中执行以下命令创建配置文件:

nano docker-compose.yml

然后把下面完整内容复制粘贴进去:

version: '3'

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r your_server_ip:21117   # 把 your_server_ip 改成你服务器的公网 IP
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

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

your_server_ip 替换成你服务器的实际公网 IP(例如 123.45.67.89)。

保存并退出:

  1. 按键盘 Ctrl + O(保存文件)
  2. Enter(确认文件名)
  3. Ctrl + X(退出 nano)

第四步:检查配置文件并启动服务

~/rustdesk 目录下依次执行以下命令:

# 1. 查看你刚才创建的文件内容(确认是否正确)
cat docker-compose.yml

# 2. 启动两个服务(hbbs 和 hbbr)
sudo docker compose up -d

在这里插入图片描述

第五步:查看服务日志并生成密钥

依次执行以下命令

# 查看 hbbs 日志(最重要的)
sudo docker logs hbbs

# 查看 hbbr 日志
sudo docker logs hbbr

# 查看两个容器运行状态
sudo docker compose ps

在这里插入图片描述

在这里插入图片描述

第六步:开放防火墙端口

依次执行以下命令:

sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp

sudo ufw reload

第七步:启用 UFW 防火墙

依次执行以下命令:

# 先允许 SSH(防止启用后把自己锁在外面!)
sudo ufw allow 22/tcp

# 启用 UFW
sudo ufw enable

# 查看最终状态
sudo ufw status

在这里插入图片描述

第八步:获取 Key 并完成部署

密钥生成与验证流程

RustDesk 客户端 密钥文件 Docker 容器 用户 RustDesk 客户端 密钥文件 Docker 容器 用户 ID服务器: 服务器IP 中继服务器: IP:21117 Key: 公钥内容 启动 hbbs/hbbr 服务 自动生成密钥对 读取公钥 cat id_ed25519.pub 返回公钥文本 配置服务器信息 使用公钥进行身份验证 验证成功,建立连接

执行以下命令,获取你的 Key(公钥):

cat ~/rustdesk/data/id_ed25519.pub

其中id_ed25519为文件名每次生成不一样

记录以下信息:

  • ID 服务器:服务器 IP 地址
  • 中继服务器:服务器 IP 地址:21117
  • Key(公钥):text3rmxxxx-xxxYcrXIqs4ZA=

将信息填入RustDesk程序

在这里插入图片描述

常用

服务状态监控视图

00:00 03:00 06:00 09:00 12:00 15:00 18:00 21:00 运行中 状态检查 资源监控 日志查看 重启操作 日常维护 密钥重置 密钥轮换 服务状态 监控检查 维护窗口 RustDesk 服务生命周期管理

端口与协议关系图

必需端口

UDP 端口

TCP 端口

21115/tcp
hbbs

21116/tcp
hbbs/hbbr

21117/tcp
hbbs

21118/tcp
hbbs

21119/tcp
hbbs

21116/udp
hbbs

22/tcp
SSH

客户端

管理员

查看服务状态

# 查看两个服务的运行状态
sudo docker compose ps

# 查看 CPU、内存占用
sudo docker stats

重启服务

cd ~/rustdesk
sudo docker compose restart

重置 / 重新生成 Key

# 1. 停止服务
cd ~/rustdesk
sudo docker compose down

# 2. 删除旧的密钥文件
rm -f ~/rustdesk/data/id_ed25519*
rm -f ~/rustdesk/data/*.pub

# 3. 重新启动服务(会自动生成新的 Key)
sudo docker compose up -d

# 4. 查看新的 Key
cat ~/rustdesk/data/id_ed25519.pub

希望本片文章对你有所帮助,掰掰~👋

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐