1,7K
10) Empfehlungen / Pflege / Betrieb
10.1 Download-Frontend absichern
Auch wenn es “nur Downloads” sind, sind Einschränkungen sinnvoll:
- IP-Whitelist (nur VPN/Heimnetz)
- Basic Auth / vorgeschaltete Auth (Authelia/Authentik)
- Rate-Limit / Bot-Schutz
10.2 Clients regelmäßig aktualisieren
Empfehlung: Skript regelmäßig laufen lassen (z. B. alle 2 Wochen) oder automatisch per Cronjob:
sudo crontab -e
Inhalt:
0 3 */14 * * cd /opt/containers/rustdesk && ./build_clients.sh >/var/log/rustdesk-clientbuild.log 2>&1Code-Sprache: JavaScript (javascript)
Damit bleiben:
- Clients aktuell
- VERSION.txt nachvollziehbar
- Downloadseite & Readmes automatisch synchron
10.3 Backups & Betrieb
- ./db und ./data sichern (z. B. nightly)
- Bei Verbindungsproblemen: UDP 21116 + Traefik EntryPoints + Key-Paar prüfen
- Logs prüfen:
docker logs rustdesk --tail=200
docker logs rustdesk-clients --tail=200
10.4 Keys nach dem initialen Start auslesen (Fallback)
Wenn du nicht Schritt 3 genutzt hast und RustDesk die Keys beim ersten Start erzeugt hat:
# Public Key (je nach Image/Setup in /data oder /root)
docker exec -it rustdesk sh -lc 'cat /data/id_ed25519.pub 2>/dev/null || cat /root/id_ed25519.pub 2>/dev/null'
# Private Key (nur lokal ansehen, nicht teilen!)
docker exec -it rustdesk sh -lc 'cat /data/id_ed25519 2>/dev/null || cat /root/id_ed25519 2>/dev/null'Code-Sprache: PHP (php)
Empfehlung: Danach die Keys in .env übernehmen und den Container neu starten:
docker compose restart rustdesk
10.5 (Optional) Wann braucht man den Relay-Server – und wann nicht?
RustDesk kann Verbindungen auf zwei Arten herstellen:
- Direktverbindung (Peer-to-Peer): optimal, schnell, wenig Server-Last
- Relay über hbbr (Port 21117): “Umweg” über deinen Server, wenn direkt nicht klappt
Relay brauchst du typischerweise, wenn …
- mindestens ein Gerät hinter strengen Firewalls oder symmetrischem NAT sitzt (häufig in Firmennetzen, Hotels, Mobilfunk)
- UDP (insb. 21116/udp) blockiert oder stark eingeschränkt ist
- Verbindungen zwar gefunden werden, aber nicht stabil zustande kommen oder abbrechen
- du möglichst hohe Erfolgsquote “überall” willst, auch in schwierigen Netzen
Relay brauchst du oft NICHT, wenn …
- beide Geräte im gleichen LAN sind oder in gut konfigurierten Heimnetzen
- UDP/TCP nach außen sauber erlaubt ist und NAT nicht zu restriktiv ist
- du primär innerhalb deines VPN/Heimnetzes arbeitest
Empfehlung in dieser Anleitung
- Wir stellen zwei Client-Konfigurationen bereit:
- RustDesk2.min.toml → ohne Relay (Standardfall, weniger Abhängigkeiten)
- RustDesk2.full.toml → mit Relay (Fallback für “schwierige Netze”)
- Wenn Nutzer melden „geht nicht“, ist der schnellste Support-Schritt meist:
- erst min testen
- wenn nicht zuverlässig: auf full wechseln (Relay aktiv)
Betriebshinweis
- Wenn Relay oft genutzt wird, steigt die Server-Bandbreite/Last deutlich, weil der gesamte Bildschirm-/Datenverkehr über deinen Server läuft.

Hallo Frank,
ich habe in meinem trafik-crowsec-stack schon einen Container laufen, welcher über Port 80/443 angebunden ist. Wie schaut den die config aus, wenn ich den Rustdesk-Webserver auf Port 8000 betreiben möchte und über https 4443 zugreifen möchte? Ich habe mir zwar schon die Ports soweit eingebaut, aber es hapert bei mir noch mit den EntryPoints im trafik-crowsec-stack
2.Thema: Kann man auch die Linux-Clients (z.B. Debian) bauen lassen mit dem Skipt?
Hallo Frank, danke für die Anleitung und auch die super Idee mit der Downloadseite.
Mir ist ein kleiner Fehler beim Generieren der Windows Quick-Start-EXE über dein build_client.sh Scriptaufgefallen.
Problem: Im Abschnitt
Windows Option 1: QUICKwird am Ende des Dateinamens hartcodiert ein zusätzliches Gleichheitszeichen eingefügt:RENAMED_EXE="rustdesk-host=${RUSTDESK_HOST},key=${KEY_PUB_SAFE}=.exe"Dies führt dazu, dass der Public Key im Dateinamen ungültig wird (da er nun auf ein
=zu viel endet), wodurch der RustDesk-Client den Key nicht mehr korrekt ausliest und keine Verbindung zum Server herstellen kann.Lösung: Das zusätzliche
=vor der Dateiendung muss entfernt werden, da der Key in der Variable${KEY_PUB_SAFE}bereits das korrekte Base64-Format (inkl. notwendigem Padding) besitzt.# Vorher: RENAMED_EXE=“rustdesk-host=${RUSTDESK_HOST},key=${KEY_PUB_SAFE}=.exe”
# Nachher: RENAMED_EXE=“rustdesk-host=${RUSTDESK_HOST},key=${KEY_PUB_SAFE}.exe”
Hallo Frank, danke nochmal für die tolle Anleitung.
Ich habe Aliase zum Öffnen und Schließen der Ports angelegt, weil ich Rustdesk nur gelegentlich brauche und ich die Ports nicht dauerhaft geöffnet haben möchte.
Wer die ufw aktiviert hat muss die folgenden Befehle nehmen:
# Zum Öffnen der Ports
sudo ufw allow proto tcp from any to any port 21115,21116,21117 && sudo ufw allow 21116/udp && sudo ufw status
# Zum Schließen der Ports
sudo ufw deny proto tcp from any to any port 21115,21116,21117 && sudo ufw deny 21116/udp && sudo ufw status
Zum dauerhaften Anlegen der Aliase kann ich das Ubuntu-Wiki empfehlen, da ist das Anlegen der Aliase sehr gut beschrieben.
Hallo
Frank, ich habe Rustdesk mal neu nach deiner Anleitung installiert und es hat alles geklappt. Ich kann Verbindungen aufbauen. Aber nur wenn ich den Relayserver mit eintrage. Auch die Webseite mit dem Clients ist echt super. Ich muss mich mal noch weiter damit beschäftigen. Aber vielen Dank für deine gute Anleitung.