【远程控制】开箱即用的 RustDesk 自建服务端完整 Docker Compose 模板

一个 开箱即用的 RustDesk 自建服务端完整 Docker Compose 模板,包含:

  • hbbs(Broker)和 hbbr(Relay)服务
  • 公网访问端口映射
  • Nginx 反向代理 + TLS(Let's Encrypt 自动证书)
  • 可直接启动使用

目录结构示例

复制代码
rustdesk-server/
├─ docker-compose.yml
├─ nginx/
│   ├─ conf.d/
│   │   └─ rustdesk.conf
│   └─ certs/   # TLS 证书(Let's Encrypt 自动生成后存放)

docker-compose.yml

yaml 复制代码
version: "3.8"

services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: hbbs
    restart: unless-stopped
    ports:
      - "21115:21115"
      - "21115:21115/udp"
    environment:
      - RUSTDESK_RELAY_HOST=hbbr
    volumes:
      - ./data/hbbs:/data

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: hbbr
    restart: unless-stopped
    ports:
      - "21116:21116"
      - "21116:21116/udp"
    volumes:
      - ./data/hbbr:/data

  nginx:
    image: nginx:latest
    container_name: rustdesk-nginx
    restart: unless-stopped
    ports:
      - "80:80"      # HTTP 用于 Let's Encrypt 验证
      - "443:443"    # HTTPS
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/certs:/etc/letsencrypt

Nginx 配置示例:nginx/conf.d/rustdesk.conf

假设域名为 rustdesk.yourdomain.com

nginx 复制代码
server {
    listen 80;
    server_name rustdesk.yourdomain.com;

    # HTTP 重定向到 HTTPS
    location / {
        return 301 https://$host$request_uri;
    }

    # 用于 Let's Encrypt 自动验证
    location /.well-known/acme-challenge/ {
        root /etc/letsencrypt;
    }
}

server {
    listen 443 ssl;
    server_name rustdesk.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/rustdesk.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rustdesk.yourdomain.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # Broker 转发
    location / {
        proxy_pass http://hbbs:21115;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Relay 转发
    location /relay {
        proxy_pass http://hbbr:21116;
    }
}

注意:

  • hbbshbbr 是 Docker Compose 内部服务名,可直接在 Nginx 容器中访问。
  • TLS 证书可用 Certbot 自动申请。

操作步骤

  1. 进入项目目录:
bash 复制代码
cd ~/rustdesk-server
  1. 启动服务:
bash 复制代码
docker-compose up -d
  1. 使用 Certbot 自动申请证书:
bash 复制代码
sudo docker exec -it rustdesk-nginx bash
# 安装 certbot 并生成证书
certbot certonly --webroot -w /etc/letsencrypt -d rustdesk.yourdomain.com
  1. 确保防火墙放行端口:
bash 复制代码
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21115/udp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw reload

Windows 客户端配置

  1. 打开 RustDesk → 设置 → 中继 / ID 服务器

  2. 输入域名和端口(假设 HTTPS 已代理):

    • ID 服务器(Broker) : rustdesk.yourdomain.com:443
    • 中继服务器(Relay) : rustdesk.yourdomain.com:443

使用域名 + TLS 可以保证公网安全访问,同时无需客户端手动信任自签证书。


特点

  • 一键启动 RustDesk 自建服务端
  • 支持公网访问和 NAT 穿透
  • TLS 加密保证安全
  • Docker 卷持久化日志和配置
  • Windows 客户端配置简单

相关推荐
C_心欲无痕3 小时前
Dockerfile:构建 Docker 镜像
运维·docker·容器
zz_nj4 小时前
工作的环境
linux·运维·服务器
C_心欲无痕5 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx
suijishengchengde5 小时前
****LINUX时间同步配置*****
linux·运维
幻云20105 小时前
AI自动化编排:从入门到精通(基于Dify构建AI智能系统)
运维·人工智能·自动化
qiuqyue5 小时前
基于虹软Linux Pro SDK的多路RTSP流并发接入、解码与帧级处理实践
linux·运维·网络
C_心欲无痕6 小时前
Docker 本地部署 CSR 前端项目完整指南
前端·docker·容器
爱跑马的程序员6 小时前
Linux 如何查看文件夹的大小(du、df、ls、find)
linux·运维·ubuntu
飞翔沫沫情8 小时前
MinIO 新版本 Docker 部署指南:告别 Web 控制台,拥抱 CLI 管理
docker·容器·docker-compose·对象存储·minio
代码AI弗森8 小时前
n8n 专题:从“自动化脚本”到“可视化工作流引擎”(自建、节点、Webhook、生产部署)
运维·自动化