【远程控制】开箱即用的 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 客户端配置简单

相关推荐
不能跑的代码不是好代码5 小时前
Linux系统常用命令中文速查表
linux·运维·服务器
石一峰6996 小时前
深入理解 Linux 中断三层机制与 1-Wire 时序锁原理
linux·运维·服务器
运维老郭6 小时前
PostgreSQL编译安装实战
运维·postgresql
无限码农7 小时前
Linux上通过cmake编译uchardet
linux·运维·服务器
运维大师8 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
007张三丰8 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
ACP广源盛139246256738 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
探索云原生10 小时前
终于搞懂 Kueue:5 个核心对象一次讲透
linux·docker·ai·云原生·kubernetes
huainingning11 小时前
交换机通过ftp下载文件或者传输文件到ftp服务器
运维·服务器·网络
edwarddamon11 小时前
CentOS 7 国内安装 Docker CE(阿里云源)
运维