Rust sorgt für besonders viel Verwirrung, weil es drei verschiedene Ports für drei verschiedene Dinge nutzt, und einer davon läuft über TCP, während die anderen UDP nutzen. Wer nur den Spielport öffnet, erreicht, dass man per IP beitreten kann, aber der Server erscheint nicht im Browser.
Die Ports
| Port | Protokoll | Wofür | Öffnen? |
|---|---|---|---|
| 28015 | UDP | Das Spiel: Hierüber kommen die Spieler rein | Ja |
| 28017 | UDP | Steam-Abfrage: bringt dich in den Community-Browser | Ja |
| 28016 | TCP | RCON / Webkonsole | Nur, wenn du es von außen nutzt |
| 28083 | TCP | Rust+-App | Nur, wenn du Rust+ willst |
Zwei Hinweise zu dieser Tabelle:
- Der Abfrageport stellt sich nicht von selbst ein. Wenn du kein
+server.queryportsetzt, wählt Rust einen oberhalb des größeren Werts von Spiel- und RCON-Port, was bei einer normalen Installation den 28017 ergibt. Hast du einen davon geändert, rechne nach oder leg ihn von Hand fest. - Rust+ lauscht auf dem Port, den du mit
+app.portangibst. Ohne Angabe nimmt es den größeren Wert von Spiel- und RCON-Port plus 67, also den 28083 bei einer Standardinstallation.
Windows (PowerShell als Administrator)
# Spiel und Abfrage: das Nötigste
New-NetFirewallRule -DisplayName "Rust Spiel UDP 28015 (eingehend)" -Direction Inbound -Protocol UDP -LocalPort 28015 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust Abfrage UDP 28017 (eingehend)" -Direction Inbound -Protocol UDP -LocalPort 28017 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust Spiel UDP 28015 (ausgehend)" -Direction Outbound -Protocol UDP -LocalPort 28015 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust Abfrage UDP 28017 (ausgehend)" -Direction Outbound -Protocol UDP -LocalPort 28017 -Action Allow -Profile Any
Und wenn du RCON oder Rust+ von außen nutzen willst (nur dann):
New-NetFirewallRule -DisplayName "Rust RCON TCP 28016 (eingehend)" -Direction Inbound -Protocol TCP -LocalPort 28016 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust+ TCP 28083 (eingehend)" -Direction Inbound -Protocol TCP -LocalPort 28083 -Action Allow -Profile Any
Linux
# Ubuntu / Debian
ufw allow 28015/udp
ufw allow 28017/udp
ufw allow 28016/tcp # nur, wenn du RCON von außen nutzt
# AlmaLinux / Rocky
firewall-cmd --permanent --add-port=28015/udp
firewall-cmd --permanent --add-port=28017/udp
firewall-cmd --permanent --add-port=28016/tcp
firewall-cmd --reload
# Lauscht er?
ss -lntup | grep -E '28015|28016|28017'
RCON, aber mit Vorsicht
RCON gibt dir die volle Kontrolle über die Serverkonsole. Wenn du es mit einem kurzen Passwort ins Internet öffnest, ist es eine Frage von Tagen, bis jemand es errät und dir die Map löscht. Setze ein langes, einzigartiges Passwort in +rcon.password und, wenn nur du es nutzt, besser per SSH-Tunnel:
ssh -L 28016:localhost:28016 root@DEINE_IP
So verbindest du dich mit deinem RCON-Tool auf localhost:28016, ohne etwas nach außen zu öffnen.
Ich erscheine nicht im Community-Browser
- Der Abfrageport fehlt (UDP 28017). Das ist die häufigste Ursache: Mit offenem Spielport kann man per IP beitreten, aber Steam listet dich nicht.
- Falsches Protokoll. Spiel- und Abfrageport sind UDP. Eine Regel für TCP 28015 öffnet nichts Brauchbares.
- Der Server braucht etwas, bis er erscheint. Nach dem Start kann Steam ein paar Minuten zum Indexieren brauchen. Gib ihm Zeit, bevor du etwas änderst.
- Gerade gewiped. Der Server startet neu und registriert sich erneut; es ist normal, dass er eine Weile verschwindet.
- AntiDDoS-Filterung: Reiter Sicherheit deines Dienstes. Wenn du Filter von Hand angelegt hast, müssen 28015 und 28017 mit UDP drin sein.
Zur Planung der Maschine vor dem Wipe: Der Verbrauch von Rust steigt im Laufe des Zyklus, weil alles, was die Spieler bauen, bleibt. Unser Rust-Rechner berücksichtigt das.