Zum Inhalt

Eigenen RustDesk-Server mit Docker installieren

Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 4 Minuten

Mit einem eigenen RustDesk-Server laufen Verbindungsaufbau und bei Bedarf auch der Relay-Datenverkehr über deinen Server. hbbs vermittelt die Geräte, hbbr leitet eine Verbindung weiter, falls keine direkte Verbindung möglich ist. Die Einrichtung auf einem Linux-Server dauert ungefähr 20 Minuten.

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose
  • Eine feste öffentliche IP oder ein DNS-Name für den Server
  • Freie Ports 21115 bis 21117/TCP und 21116/UDP
  • SSH-Zugriff und ein Benutzer mit sudo-Rechten

1. Ordner vorbereiten

Führe diese Befehle auf dem RustDesk-Server aus. Der Unterordner data enthält später Datenbank und Schlüsselpaar:

sudo mkdir -p /opt/rustdesk-server/data
sudo chown -R "$USER":"$USER" /opt/rustdesk-server
cd /opt/rustdesk-server

2. Compose-Datei anlegen

Erstelle in /opt/rustdesk-server die Datei compose.yaml. Diese Konfiguration verwendet das von RustDesk für Linux empfohlene Host-Netzwerk.

services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbs
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: host
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbr
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: host
    restart: unless-stopped

Nur für Linux

network_mode: host funktioniert in dieser Form auf Linux. Nutzt du Docker Desktop auf Windows oder macOS, verwende stattdessen die dort passenden Portfreigaben aus der offiziellen RustDesk-Dokumentation.

3. Firewall öffnen

Bei einer aktiven UFW-Firewall öffnest du auf dem Server nur die für Desktop- Clients erforderlichen Ports:

sudo ufw allow 21115:21117/tcp
sudo ufw allow 21116/udp
sudo ufw status

Wenn der Server zu Hause steht, leite dieselben Ports im Router an seine feste interne IP weiter. Bei einem gemieteten Server müssen sie zusätzlich in der Firewall des Anbieters erlaubt sein.

Web-Client nicht benötigt

Die Ports 21118 und 21119 bleiben hier bewusst geschlossen. RustDesk warnt, dass diese WebSocket-Ports nur geschützt hinter einem korrekt eingerichteten Reverse Proxy veröffentlicht werden sollten.

4. Server starten

Starte beide Dienste im Ordner /opt/rustdesk-server:

docker compose up -d

Prüfe ihren Zustand:

docker compose ps

Kontrolliere anschließend die letzten Meldungen von Vermittlungs- und Relay- Server:

docker compose logs --tail=50 hbbs hbbr

5. Öffentlichen Schlüssel anzeigen

Beim ersten Start erzeugt hbbs ein Schlüsselpaar. Zeige den öffentlichen Schlüssel auf dem Server an:

cat /opt/rustdesk-server/data/id_ed25519.pub

Kopiere ausschließlich die angezeigte einzelne Zeile. Die Datei id_ed25519 ohne .pub ist der private Schlüssel und darf den Server nie verlassen.

6. RustDesk-Clients verbinden

Öffne auf jedem beteiligten Gerät im RustDesk-Client das Menü neben der eigenen ID und gehe zu Netzwerk. Trage folgende Werte ein:

  • ID-Server: <rustdesk-domain>:21116
  • Relay-Server: leer lassen; RustDesk leitet ihn normalerweise selbst her
  • Key: Inhalt aus id_ed25519.pub
  • API-Server: leer lassen; er gehört zur Pro-Ausgabe

Ersetze <rustdesk-domain> durch den DNS-Namen oder die öffentliche IP deines Servers. Die Einstellungen müssen auf beiden Geräten stimmen.

Fernzugriff bewusst freigeben

Akzeptiere niemals unerwartete Verbindungsanfragen. Aktiviere unbeaufsichtigten Zugriff nur auf eigenen Geräten, verwende dafür ein langes, einmaliges Passwort und beschränke die erlaubten Rechte im RustDesk-Client.

7. Backup und Rückweg

Das Backup muss besonders das Schlüsselpaar enthalten. Ohne den bisherigen Schlüssel melden bereits eingerichtete Clients einen falschen Serverschlüssel.

Stoppe den Stack kurz:

cd /opt/rustdesk-server
docker compose down

Lege den Zielordner an, falls er noch nicht vorhanden ist:

sudo mkdir -p /var/backups

Erstelle auf dem Server ein datiertes Archiv:

sudo tar -czf "/var/backups/rustdesk-server-$(date +%F).tar.gz" -C /opt/rustdesk-server data compose.yaml

Starte die Dienste wieder:

docker compose up -d

Für den Rückweg entpackst du bei gestopptem Stack das gewünschte Archiv wieder nach /opt/rustdesk-server. Bewahre das Backup verschlüsselt auf, weil es den privaten Serverschlüssel enthält.

8. Aktualisieren und typische Fehler

Lege zuerst ein Backup an. Aktualisiere danach das Image und erstelle beide Container neu:

cd /opt/rustdesk-server
docker compose pull
docker compose up -d
  • „Key mismatch“: Auf beiden Clients den Inhalt der aktuellen Datei id_ed25519.pub eintragen. Prüfen, ob das Datenverzeichnis ersetzt wurde.
  • „Not ready“ oder keine ID: TCP 21116 und UDP 21116 in Server-Firewall, Anbieter-Firewall und Router prüfen.
  • Direktverbindung scheitert: TCP 21117 muss für den Relay-Server erreichbar sein; Relay-Verkehr kann deutlich mehr Bandbreite verbrauchen.
  • Container startet ständig neu: Mit dem folgenden Befehl die Ursache lesen:
docker compose logs --tail=100 hbbs hbbr

9. Quellen und Video

Fertig

hbbs und hbbr laufen nun mit dauerhaft gespeicherten Schlüsseln. Starte auf zwei eingerichteten Geräten RustDesk, gib die ID des jeweils anderen Geräts ein und baue eine genehmigte Testverbindung auf. In docker compose logs hbbs hbbr sollten dabei neue Verbindungen erscheinen.