Skip to content
Tenvo AI · TRỰC TIẾP · v0.16.2 · TLS · Chứng chỉ cho từng thiết bị · AGPL-3.0 · MIỄN PHÍ · 30 THIẾT BỊ · HẠ TẦNG TỰ LƯU TRỮ · BYO API KEY · MCP CHO CLAUDE & CURSOR
Quay lại BlogHướng dẫn

rustdesk docker: hướng dẫn máy chủ RustDesk dạng container

Tenvo Editorial Team7 phút đọc
rustdesk docker: hướng dẫn máy chủ RustDesk dạng container

Bạn muốn tự lưu trữ RustDesk mà không phải vật lộn với build thủ công, rắc rối phụ thuộc hoặc ảnh VM dễ vỡ. Hướng dẫn này chỉ cách chạy một ngăn xếp máy chủ RustDesk sẵn cho production bằng Docker và Docker Compose, để bạn quản lý cập nhật, sao lưu và mở rộng như một kỹ sư ops — không phải người nghiệp dư.

Bạn muốn tự lưu trữ RustDesk mà không phải vật lộn với việc build thủ công, cơn ác mộng phụ thuộc, hay ảnh đĩa VM dễ vỡ. Hướng dẫn này trình bày cách chạy một ngăn xếp máy chủ RustDesk sẵn cho production bằng Docker và Docker Compose, để bạn quản lý cập nhật, sao lưu và mở rộng như một kỹ sư vận hành — không phải người chơi nghiệp dư.

Tại sao dùng docker cho RustDesk

Containers đem lại hai lợi ích trực tiếp cho ngăn xếp remote‑access tự lưu trữ: triển khai có thể tái tạo và cô lập. Thay vì biên dịch hbbs/hbbr cục bộ hoặc chạy các gói phụ thuộc nền tảng, bạn kéo một Docker image, mount một volume bền và khởi động. Điều này đơn giản hóa việc nâng cấp, CI/CD và di chuyển host. Nếu bạn đã chạy các dịch vụ khác trong container (NGINX, certbot, monitoring), thêm RustDesk theo cách này giữ cho ngăn xếp nhất quán.

Khi không nên containerize: nếu bạn cần binary được vá tùy chỉnh hoặc tích hợp sâu vào kernel cho relay có hiệu năng rất cao, cài đặt native có thể phù hợp hơn. Ngoài ra, nếu bạn cần SLA doanh nghiệp chính thức từ nhà cung cấp, kiểm tra xem họ có hỗ trợ container hay không.

RustDesk server components — brief overview

RustDesk chia vai trò máy chủ thành ít nhất hai phần:

  • hbbs — máy chủ ID/tín hiệu. Nó xử lý đăng ký và điều phối rendezvous cho các client.
  • hbbr — máy chủ relay (nếu NAT traversal thất bại). Nó trung chuyển lưu lượng giữa các peer.

Trong môi trường production thường chạy cả hai. Một host nhẹ có thể chạy cả hai dịch vụ; triển khai lớn hơn tách chúng ra, đặt các instance hbbr phía sau load balancer và thêm autoscaling để mở rộng năng lực relay.

Bắt đầu nhanh: ví dụ triển khai Docker Compose

Yêu cầu trước: Ubuntu 22.04 LTS (hoặc bất kỳ Linux nào có Docker Engine 20.10+), Docker Compose v2.x, một tên miền (ví dụ: rustdesk.example.com). Cấp ít nhất 512 MB RAM cho server thử nhỏ; khuyến nghị 1 GB+ cho relay xử lý nhiều phiên hoạt động.

Dưới đây là ví dụ Docker Compose thực tế chạy hbbs và hbbr như các dịch vụ riêng biệt, mount dữ liệu bền và publish các cổng RustDesk chuẩn. Trước khi chạy, kiểm tra tag image chính thức rustdesk/rustdesk-server để biết tag stable mới nhất và thay rustdesk/rustdesk-server:latest nếu bạn muốn khóa phiên bản.

version: '3.8'

services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbs
    command: ["hbbs", "--listen", "0.0.0.0:21115"]
    ports:
      - "21115:21115/tcp"
      - "21115:21115/udp"
    volumes:
      - ./data/hbbs:/data
    restart: unless-stopped

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbr
    command: ["hbbr", "--listen", "0.0.0.0:21116", "--relay", "0.0.0.0:21116"]
    ports:
      - "21116:21116/tcp"
      - "21116:21116/udp"
    volumes:
      - ./data/hbbr:/data
    restart: unless-stopped

networks:
  default:
    external: false

Giải thích:

  • Chúng ta chạy hbbs trên TCP/UDP port 21115 và hbbr trên 21116 — đây là mặc định phổ biến cho các build server RustDesk. Xác nhận ánh xạ cổng cho image bạn dùng (một số bản community dùng mặc định khác).
  • Persistent volumes ./data/hbbs./data/hbbr giữ dữ liệu đăng ký và relay qua các lần khởi động lại.
  • Dùng restart: unless-stopped để có độ bền cơ bản; cho production, tích hợp với chính sách restart của nền tảng orchestration của bạn.

Mở truy cập an toàn: TLS, reverse proxy và firewall

Lưu lượng tín hiệu và relay của RustDesk có thể được bảo vệ bằng TLS và quy tắc firewall tiêu chuẩn. Có hai phương pháp phổ biến:

  1. TLS trực tiếp với một proxy phía trước hbbs (khuyến nghị cho quản lý chứng chỉ ở mức web).
  2. Giữ hbbr dưới dạng relay TCP/UDP thô và bảo vệ mạng host (dùng ufw/nftables) trong khi bảo mật hbbs bằng TLS.

Hầu hết cấu hình dùng NGINX hoặc Traefik để terminate TLS và forward lưu lượng đến hbbs. Ví dụ khối server NGINX để terminate TLS cho rustdesk.example.com:

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

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

  location / {
    proxy_pass http://127.0.0.1:21115;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

# Optional: redirect http to https
server {
  listen 80;
  server_name rustdesk.example.com;
  return 301 https://$host$request_uri;
}

Dùng certbot (Let's Encrypt) hoặc CA của bạn để lấy chứng chỉ. Nếu relay (hbbr) chạy trên UDP/TCP công khai, mở các cổng đó trực tiếp và giới hạn bằng firewall theo dải IP bạn mong đợi, hoặc đặt các node relay vào subnet riêng phía sau load balancer.

DNS, client và NAT traversal

Trỏ một bản ghi DNS A (ví dụ rustdesk.example.com) tới IP công khai của server. Trong client RustDesk, đặt địa chỉ server thành tên miền đó (cho lookup ID và relay). Clients dùng ID server để rendezvous; nếu cả hai client đều ở sau NAT hạn chế, hbbr sẽ trung chuyển phiên qua relay của bạn.

Nếu bạn kiểm soát máy client trong LAN, có thể chạy DNS nội bộ hoặc phân phối file cấu hình để trỏ client tới IP nội bộ của hbbs nhằm kết nối nội bộ nhanh hơn.

Mở rộng và hướng dẫn tài nguyên

Relay cần bao nhiêu CPU/RAM? Tùy thuộc vào số phiên đồng thời và loại phiên:

  • Server thử nhỏ: 1 vCPU, 512 MB RAM — vài kết nối không hoạt động.
  • Relay production (sử dụng nhẹ): 2 vCPU, 1–2 GB RAM — vài chục phiên đồng thời.
  • Relay băng thông cao: 4+ vCPU, 4+ GB RAM và băng thông mạng tương ứng với lưu lượng mong đợi (ví dụ 100+ Mbps).

Khuyến nghị autoscaling các instance hbbr phía sau load balancer nếu bạn kỳ vọng spike (điều khiển từ xa nhiều media, chia sẻ màn hình). Dùng orchestration container (Kubernetes, Docker Swarm) hoặc scaling ngang đơn giản với TCP/UDP load balancer (haproxy, cloud LB) giữ nguyên địa chỉ IP client.

Sao lưu, cập nhật và khóa phiên bản

Luôn mount persistent volumes cho dữ liệu và sao lưu định kỳ. Một script sao lưu tối thiểu:

# daily-backup.sh
TIMESTAMP=$(date +%F)
mkdir -p /backups/rustdesk/$TIMESTAMP
rsync -a ./data /backups/rustdesk/$TIMESTAMP/
# rotate: keep 14 days
find /backups/rustdesk -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;

Về cập nhật, khóa Docker image bằng tag thay vì :latest. Chạy kiểm thử staging khi nâng phiên bản server. Quy trình ví dụ:

  1. Pull image mới: docker pull rustdesk/rustdesk-server:1.3.0 (ví dụ).
  2. Khởi một container thử với cùng volumes và chạy smoke tests.
  3. Lên lịch maintenance window và thay thế container trên host production.

Khắc phục sự cố và các lỗi thường gặp

Bắt đầu với logs: docker logs rustdesk-hbbsdocker logs rustdesk-hbbr. Vấn đề thường gặp:

  • Clients không thể đăng ký: kiểm tra hbbs có thể truy cập qua domain và TLS còn hợp lệ.
  • Phiên rơi về relay nhưng hiệu năng kém: kiểm tra CPU/memory và mạng của host relay. Gói relay thường là UDP; đảm bảo UDP được phép qua firewall và trong security group của cloud.
  • Clients báo phiên bản không khớp: dùng phiên bản client/server tương thích hoặc khớp. Nếu bạn khóa image server, đảm bảo client không dùng các tính năng giao thức đã bị loại bỏ.

Nếu NAT traversal thất bại thường xuyên cho nhiều client, vấn đề thường là symmetric NAT hoặc firewall doanh nghiệp. Trong trường hợp đó, dựa vào các relay hbbr và theo dõi độ trễ/băng thông để đảm bảo trải nghiệm người dùng chấp nhận được.

Cân nhắc về bảo mật

Tự lưu trữ chuyển trách nhiệm về bạn. Các bước chính:

  • Terminate TLS tại reverse proxy và dùng cipher mạnh. Lấy chứng chỉ từ Let's Encrypt hoặc CA tin cậy.
  • Harden host: chỉ mở các port cần thiết, bật cập nhật bảo mật tự động trên OS và dùng firewall (ufw/nftables).
  • Giới hạn truy cập giao diện admin và theo dõi logs để phát hiện brute force. Xem xét phân đoạn mạng; đặt node relay vào subnet riêng nếu có thể.

Nếu bạn muốn thảo luận sâu hơn về khoá chặt truy cập từ xa, xem các bài viết của chúng tôi về bảo mật remote desktop và các đánh đổi thực tiễn trong remote desktop tự lưu trữ.

Khi nhà cung cấp quản lý là lựa chọn tốt hơn

Tự lưu trữ với docker đem lại kiểm soát và riêng tư, nhưng nếu bạn cần SLA quản lý đầy đủ, tính năng doanh nghiệp chính thức (quản lý người dùng, thanh toán tập trung), hoặc tích hợp Windows AD plug‑and‑play, nhà cung cấp thương mại như TeamViewer hoặc AnyDesk có thể là lựa chọn tốt hơn. Trung thực về các đánh đổi: tự lưu trữ tiết kiệm phí theo ghế định kỳ và mang lại tính địa phương dữ liệu, nhưng tốn thời gian vận hành để duy trì, giám sát và bảo mật.

Bước tiếp theo và tài liệu tham khảo

Danh sách kiểm tra để chuyển từ lab sang production:

  1. Chọn host có Docker Engine 20.10+ và Docker Compose v2.x.
  2. Tạo persistent volumes và job sao lưu hàng ngày.
  3. Khóa image server và xác thực cập nhật trong staging.
  4. Terminate TLS bằng NGINX/Traefik và lấy chứng chỉ từ Let's Encrypt.
  5. Theo dõi các host relay và scale hbbr khi CPU hoặc băng thông chạm ngưỡng sức khỏe.

Muốn một bản tải xuống sạch để so sánh song song với cách tiếp cận container? Tải các binary hoặc installer của Tenvo tại /download và kiểm tra trang /pricing của chúng tôi cho các tuỳ chọn triển khai. Nếu bạn muốn theo hướng cấu hình remote access rộng hơn, hướng dẫn thiết lập remote access của chúng tôi bao quát mạng, xác thực và tính khả dụng giữa các công cụ.

Chạy RustDesk dưới Docker là một cách tiếp cận vững chắc và dễ duy trì cho hầu hết người tự lưu trữ: nó đơn giản hóa nâng cấp và tương thích tốt với hạ tầng container hiện có. Nếu bạn cần một bản compose file hoặc trợ giúp chuyển sang Kubernetes, quay lại và tôi sẽ cung cấp manifest K8s và ví dụ Helm chart.

Sẵn sàng thử? Tải client cần thiết hoặc image thử nghiệm từ /download và đưa server RustDesk containerized của bạn vào chạy ngay hôm nay.

Nhận Tenvo

Sẵn sàng tự trải nghiệm?

Miễn phí cho 30 thiết bị, không cần thẻ tín dụng. Kết nối và hoạt động trong hai phút.