1,7K
6) Traefik: EntryPoints/Ports wirklich öffnen
Damit RustDesk über Traefik funktioniert, müssen die EntryPoints in Traefik existieren und die zugehörigen Ports am Host geöffnet sein (Firewall/NAT).
A) Traefik EntryPoints definieren
In deiner Traefik-Config (z. B. traefik.yml) müssen die in .env verwendeten EntryPoints angelegt sein, z. B.:
- UDP (RustDesk ID/Heartbeat): 21116/udp
- TCP:
- 21115/tcp (NAT Type Test)
- 21116/tcp (TCP Hole Punching)
- 21117/tcp (Relay)
- HTTPS (Download-Webseite): 443/tcp (sollte ja eigentlich schon sein )
Beispiel (schematisch, Namen müssen zu deiner .env passen):
nano /opt/containers/traefik-crowdsec-stack/data/traefik/traefik.yml
füge dort ein unter entryPoints :
hbbs-udp:
address: ":21116/udp"
hbbs-tcp-1:
address: ":21115/tcp"
hbbs-tcp-2:
address: ":21116/tcp"
hbbr-tcp-1:
address: ":21117/tcp"Code-Sprache: JavaScript (javascript)
So sieht es dann bei mir aus:
...
...
entryPoints:
ping:
address: ':88'
web:
address: ':80'
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ':443'
http3: {}
http:
middlewares:
- crowdsec@file
- default@file
hbbs-udp:
address: ":21116/udp"
hbbs-tcp-1:
address: ":21115/tcp"
hbbs-tcp-2:
address: ":21116/tcp"
hbbr-tcp-1:
address: ":21117/tcp"
...
...Code-Sprache: JavaScript (javascript)
Anschließend passen wir die Docker Compose Datei noch an:
nano /opt/containers/traefik-crowdsec-stack/compose/traefik.yml
vorher:
...
...
ports:
- mode: host
target: 80
published: "80"
protocol: tcp
- mode: host
target: 443
published: "443"
protocol: tcp
- mode: host
target: 443
published: "443"
protocol: udp
restart: unless-stopped
...
...Code-Sprache: JavaScript (javascript)
nachher:
...
...
ports:
- mode: host
target: 80
published: "80"
protocol: tcp
- mode: host
target: 443
published: "443"
protocol: tcp
- mode: host
target: 443
published: "443"
protocol: udp
- mode: host
target: 21115
published: "21115"
protocol: tcp
- mode: host
target: 21116
published: "21116"
protocol: udp
- mode: host
target: 21116
published: "21116"
protocol: tcp
- mode: host
target: 21117
published: "21117"
protocol: tcp
restart: unless-stopped
...
...Code-Sprache: JavaScript (javascript)
Nun starten wir Traefik neu, damit alle Änderungen übernommen werden.
cd /opt/containers/traefik-crowdsec-stack/
docker compose up -d --force-recreate
B) Firewall / Security Groups / Router Port-Forwarding
Je nach Umgebung müssen die Ports auch “außen” erreichbar sein:
- Host-Firewall (z. B. ufw/iptables/nftables)
- Cloud Security Groups
- Router Port-Forwarding (bei Heimanschluss)
Mindestens erforderlich:
- 21116/udp
- 21115/tcp, 21116/tcp, 21117/tcp
- 443/tcp (nur wenn du die Download-Webseite über HTTPS bereitstellst)
Tipp: Wenn Verbindungen instabil sind, ist 21116/udp oft der erste Prüfpunkt.

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.