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

相关推荐
月走乂山2 小时前
Windows 10 WSL2 安装问题排查与解决全记录
windows·docker·hyper-v·故障排查·wsl2
SilentSamsara3 小时前
concurrent.futures 实战:进程池与线程池的统一抽象
运维·开发语言·python·青少年编程
疯狂成瘾者3 小时前
常见的 Linux 版本
linux·运维·服务器
xingyuzhisuan3 小时前
GPU服务器集群搭建指南——选型、部署、优化+避坑全解析
运维·服务器·人工智能·gpu算力
tianrun12344 小时前
Ubuntu 24.04 安装 Fcitx5 + Rime + 搜狗词库(替代 IBus 与 Linux 搜狗输入法)
linux·运维·ubuntu
2601_955256474 小时前
云服务器采购避坑指南:如何通过官方渠道获得更低折扣与更快服务
运维·服务器
清欢渡---4 小时前
三次握手四次挥手(对话场景)
运维·服务器·网络·hcia
YIN_尹4 小时前
【Linux 系统编程】手撕一个简易版的shell命令行解释器
android·linux·运维
小脑斧1235 小时前
从入门到精通:Linux 进程间通信 IPC 全解析|管道、共享内存、信号量、消息队列实战
linux·运维·服务器
難釋懷5 小时前
Nginx反向代理
运维·nginx