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.