一个 开箱即用的 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;
}
}
注意:
hbbs和hbbr是 Docker Compose 内部服务名,可直接在 Nginx 容器中访问。- TLS 证书可用 Certbot 自动申请。
操作步骤
- 进入项目目录:
bash
cd ~/rustdesk-server
- 启动服务:
bash
docker-compose up -d
- 使用 Certbot 自动申请证书:
bash
sudo docker exec -it rustdesk-nginx bash
# 安装 certbot 并生成证书
certbot certonly --webroot -w /etc/letsencrypt -d rustdesk.yourdomain.com
- 确保防火墙放行端口:
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 客户端配置
-
打开 RustDesk → 设置 → 中继 / ID 服务器
-
输入域名和端口(假设 HTTPS 已代理):
- ID 服务器(Broker) :
rustdesk.yourdomain.com:443 - 中继服务器(Relay) :
rustdesk.yourdomain.com:443
- ID 服务器(Broker) :
使用域名 + TLS 可以保证公网安全访问,同时无需客户端手动信任自签证书。
✅ 特点
- 一键启动 RustDesk 自建服务端
- 支持公网访问和 NAT 穿透
- TLS 加密保证安全
- Docker 卷持久化日志和配置
- Windows 客户端配置简单