RustDesk Server selbst hosten

Schritt-für-Schritt-Anleitung für einen selbst gehosteten RustDesk Server auf Ubuntu mit Docker Compose, Ports, Schlüssel und Client-Konfiguration.

Anleitung personalisieren

Trage Server-Adresse, Relay-Adresse und deinen öffentlichen RustDesk-Schlüssel ein, damit die Beispiele direkt zu deinem Setup passen.

RustDesk ist eine beliebte Open-Source-Alternative zu TeamViewer und AnyDesk. Wenn du den öffentlichen RustDesk-Server nicht verwenden willst, kannst du deine eigene Infrastruktur betreiben und damit die komplette Vermittlung und gegebenenfalls auch den Relay-Traffic selbst kontrollieren.

Für viele Homelab-, Support- oder kleine Business-Setups ist das attraktiv, weil du mehr Kontrolle über Verbindungen, Datenfluss und Verfügbarkeit bekommst. Laut offizieller RustDesk-Dokumentation besteht der Self-Hosted-Server aus zwei zentralen Komponenten: hbbs für ID/Rendezvous und hbbr als Relay-Server.

In dieser Anleitung richten wir den RustDesk Server OSS auf Ubuntu per Docker Compose ein, öffnen die nötigen Ports sauber und schauen uns an, wie du die Clients anschließend korrekt mit deinem eigenen Server verbindest.


1. Voraussetzungen

Bevor du loslegst, solltest du Folgendes bereit haben:

  • einen Ubuntu Server mit öffentlicher Erreichbarkeit
  • Docker und Docker Compose Plugin
  • eine feste IP oder besser eine Domain wie remote.example.com
  • Zugriff auf die Firewall oder Security Group deines Servers

Wenn du Docker auf dem Server noch nicht installiert hast, richte das zuerst sauber ein. Für RustDesk ist Docker Compose ein sehr praktischer und wartbarer Weg.


2. Benötigte Ports verstehen

RustDesk dokumentiert für Self-Hosting folgende Kernports:

  • TCP 21114-21119
  • UDP 21116

Die wichtigsten Basisports sind laut Doku vor allem 21115, 21116 und 21117. Für viele Setups ist es aber sinnvoll, die komplette empfohlene Range freizugeben, insbesondere wenn du später Web- oder Zusatzfunktionen nutzen willst.

Wenn du eine Firewall wie UFW verwendest, kannst du zum Beispiel Folgendes setzen:

sudo ufw allow 21114:21119/tcp
sudo ufw allow 21116/udp
sudo ufw reload

Wichtig: Wenn dein Server zusätzlich noch hinter einer Cloud-Firewall oder einem Router sitzt, müssen die Ports dort ebenfalls korrekt freigeschaltet sein.


3. Verzeichnis für RustDesk anlegen

Lege zuerst ein sauberes Arbeitsverzeichnis an:

mkdir -p ~/rustdesk-server
cd ~/rustdesk-server

Darin speichern wir gleich die Compose-Datei und die persistenten Daten von RustDesk.


4. Docker Compose Datei erstellen

RustDesk zeigt in der Docker-Dokumentation, dass die beiden Container hbbs und hbbr gemeinsam betrieben werden. Eine saubere Compose-Datei sieht zum Beispiel so aus:

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

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

Speichere die Datei als docker-compose.yml.

Hinweis: In der offiziellen Doku wird bei Linux häufig --net=host beziehungsweise Host Networking verwendet, damit RustDesk die echten eingehenden IP-Adressen sauber sieht. Genau deshalb nutzen wir hier network_mode: host.


5. Container starten

Starte die beiden Dienste jetzt:

docker compose up -d

Prüfe anschließend kurz, ob beide Container laufen:

docker compose ps

Wenn hier hbbs und hbbr als laufend erscheinen, ist der Server grundsätzlich online.


6. Logs prüfen

Gerade beim ersten Start lohnt sich ein schneller Blick in die Logs:

docker compose logs -f hbbs
docker compose logs -f hbbr

Damit siehst du sofort, ob Ports belegt sind, Volumes fehlen oder Netzwerkprobleme bestehen.


7. Öffentlichen Schlüssel auslesen

Damit sich deine Clients mit deinem eigenen RustDesk-Server verbinden können, brauchst du den öffentlichen Schlüssel des Servers. Nach dem ersten Start liegt er im Datenverzeichnis, typischerweise in:

~/rustdesk-server/data/id_ed25519.pub

Lies ihn mit folgendem Befehl aus:

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

Das Ergebnis sieht ungefähr so aus:

Ls0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0=

Diesen Wert brauchst du gleich auf den Clients. Behandle ihn sauber und kopiere ihn vollständig.


8. RustDesk Clients mit deinem Server verbinden

Öffne auf deinen Clients die Netzwerkeinstellungen beziehungsweise die Self-Hosted-Server-Einstellungen von RustDesk und trage dort deinen Server ein.

Typischerweise verwendest du dabei:

ID Server: remote.example.com
Relay Server: relay.example.com
Key: Ls0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0=

In vielen kleinen Setups zeigen ID- und Relay-Server auf denselben Host. Dann kannst du für beide Felder denselben Hostnamen verwenden.

Wenn du also nur einen Server betreibst, wäre das oft so:

ID Server: remote.example.com
Relay Server: remote.example.com

Wichtig ist vor allem, dass der Key exakt stimmt. Ein falscher oder abgeschnittener Schlüssel ist eine häufige Ursache dafür, dass Clients sich zwar zum Server verbinden, aber nicht sauber authentifizieren.


9. Verbindung testen

Nach dem Hinterlegen der Serverdaten solltest du einen Test zwischen zwei Clients durchführen. Idealerweise prüfst du:

  • erscheint die eigene ID sauber?
  • können sich zwei Clients gegenseitig erreichen?
  • funktioniert die Verbindung direkt oder zumindest per Relay?

Falls es hakt, prüfe zuerst Firewall, offene Ports, DNS und den eingetragenen öffentlichen Schlüssel.


10. Sicherheits- und Praxis-Tipps

RustDesk Self-Hosting ist praktisch, aber ein paar Punkte solltest du im Auge behalten:

  • öffne nur die wirklich benötigten Ports
  • halte Docker Images aktuell
  • überwache Logs und Ressourcenauslastung
  • setze nach Möglichkeit eine Domain statt roher IPs ein
  • mache regelmäßige Backups des Datenverzeichnisses

Für kleine Teams oder privaten Support reicht ein einzelner Server meist völlig aus. Wenn du das Setup produktiv für mehrere Personen nutzt, solltest du zusätzlich Monitoring und Updates fester einplanen.


11. Updates einspielen

Da wir RustDesk hier per Docker Compose betreiben, laufen Updates klassisch über neue Images:

cd ~/rustdesk-server
docker compose pull
docker compose up -d

Prüfe danach wieder kurz Status und Logs:

docker compose ps
docker compose logs --tail=50 hbbs
docker compose logs --tail=50 hbbr

12. Fazit

Mit einem selbst gehosteten RustDesk Server bekommst du eine schlanke und kontrollierbare Remote-Desktop-Infrastruktur, die sich gerade für Homelabs, Support-Setups und kleine Teams sehr gut eignet. Die Kombination aus hbbs und hbbr ist überschaubar, schnell aufgesetzt und in Docker angenehm wartbar.

Die wichtigsten Erfolgsfaktoren sind saubere Portfreigaben, ein korrekt verteilter öffentlicher Schlüssel und eine stabile Serveradresse wie remote.example.com. Wenn diese Punkte stimmen, ist RustDesk Self-Hosting ein sehr brauchbarer Ersatz für viele proprietäre Fernwartungslösungen.

Tipp:
Wenn du RustDesk regelmäßig produktiv nutzt, sichere zusätzlich das Verzeichnis ~/rustdesk-server/data und behalte Container-Updates sowie Logs im Blick.