Unter Linux hängt die Firewall von der Distribution ab: ufw bei Ubuntu und Debian, firewalld bei AlmaLinux und Rocky. Beide machen dasselbe, nur die Befehle sind anders.
Zuallererst: Wenn du die Firewall zum ersten Mal aktivierst, öffne Port 22 (SSH), bevor du sie einschaltest. Das ist der schnellste und dümmste Weg, dich aus deinem eigenen Server auszusperren. Falls es dir passiert, kommst du immer noch über den Reiter VNC im Panel hinein.
Ubuntu und Debian (ufw)
# Zuerst, IMMER
ufw allow 22/tcp
# Dein Port, mit beiden Protokollen
ufw allow 30120/tcp
ufw allow 30120/udp
# Ein Bereich
ufw allow 7777:7778/udp
# Aktivieren (falls noch nicht aktiv) und Ergebnis ansehen
ufw enable
ufw status numbered
Um eine Regel zu entfernen, schau dir die Nummer in ufw status numbered an und lösche sie mit ufw delete 3. ufw delete allow 30120/udp geht auch.
AlmaLinux und Rocky (firewalld)
# Zuerst, IMMER
firewall-cmd --permanent --add-service=ssh
# Dein Port, mit beiden Protokollen
firewall-cmd --permanent --add-port=30120/tcp
firewall-cmd --permanent --add-port=30120/udp
# Ein Bereich
firewall-cmd --permanent --add-port=7777-7778/udp
# Anwenden und prüfen
firewall-cmd --reload
firewall-cmd --list-all
--permanent sorgt dafür, dass die Regel einen Neustart übersteht; ohne geht sie verloren. Und --reload wendet sie an: Ohne Neuladen passiert nichts. Zum Entfernen derselbe Befehl mit --remove-port.
Prüfen, ob dein Server lauscht
Bei laufendem Spieleserver:
ss -lntup | grep 30120
Du musst eine Zeile mit LISTEN (für TCP) oder UNCONN (für UDP, das ist normal) sehen. Wenn nichts erscheint, ist die Firewall nicht dein Problem: Der Server läuft nicht oder lauscht auf einem anderen Port.
Achte auch auf die Adresse: Steht dort 127.0.0.1:30120 statt 0.0.0.0:30120, nimmt dein Server nur lokale Verbindungen an, und egal wie viele Regeln du öffnest, es kommt niemand rein. Das behebst du in der Konfiguration des Spiels, nicht in der Firewall.
Welche Ports du NICHT öffnen solltest
- Den der Datenbank (3306 bei MySQL, 5432 bei PostgreSQL). Wenn Spiel und Datenbank auf derselben Maschine laufen, muss sie nicht ins Internet: Sie verbinden sich über
localhost. Eine weltweit offene MySQL ist eine Einladung. - Verwaltungs-Panels wie das von txAdmin. Besser per SSH-Tunnel:
ssh -L 40120:localhost:40120 root@DEINE_IP, dann öffnest du es im Browser unterlocalhost:40120. - RCON, außer du brauchst es wirklich von außen. Und wenn du es öffnest, dann mit einem langen, einzigartigen Passwort.
Wenn es immer noch nicht geht
- Lauscht der Server, und zwar auf
0.0.0.0? Siehe dasssoben. - Richtiges Protokoll? Viele Spiele laufen über UDP; öffne beide, dann bist du sicher.
- Testest du von außen? Vom Server selbst funktioniert es immer.
- Sieh dir die Filter im Reiter Sicherheit deines Dienstes im Panel an: Dort liegt die AntiDDoS-Filterung des Netzwerks, eine andere Ebene als die Firewall des Systems.