Wenn du auf einem Windows-VPS einen Spieleserver aufsetzt und sich niemand verbinden kann, ist der Schuldige fast immer derselbe: Die Windows-Firewall blockiert den Port. So öffnest du ihn mit Befehlen – das ist schneller als über die Menüs und lässt sich vor allem fehlerfrei kopieren und einfügen.
Auf einem VPS gibt es keinen Router zu konfigurieren. Vergiss das „Port Forwarding“ aus den Tutorials: Das ist für Server zu Hause. Dein VPS hat eine eigene öffentliche IP, also steht zwischen deinen Spielern und deinem Server nur die Windows-Firewall.
PowerShell als Administrator öffnen
Verbinde dich per Remotedesktop mit deinem VPS (hier erklären wir, wie), klicke mit der rechten Maustaste auf den Start-Button und wähle Terminal (Admin) oder Windows PowerShell (Admin). Ohne Administratorrechte schlagen die Befehle mit einem Berechtigungsfehler fehl.
Einen Port öffnen: TCP und UDP, eingehend und ausgehend
Dieses Beispiel öffnet den 30120; ersetze Nummer und Namen durch deine. Füge den ganzen Block auf einmal ein:
$port = 30120
$name = "Spieleserver"
New-NetFirewallRule -DisplayName "$name TCP $port (eingehend)" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name UDP $port (eingehend)" -Direction Inbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name TCP $port (ausgehend)" -Direction Outbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$name UDP $port (ausgehend)" -Direction Outbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
Was die einzelnen Teile machen, falls du es anpassen willst:
-Direction Inboundist der Verkehr von außen (den brauchst du wirklich),Outboundder ausgehende.-ProtocolTCP oder UDP. Die sind nicht austauschbar. Wenn dein Spiel UDP nutzt und du nur TCP öffnest, kommt niemand rein: Das ist der häufigste Fehler.-LocalPortist der Port, auf dem dein Server lauscht.-Profile Anywendet die Regel auf alle drei Netzwerkprofile an (Domäne, privat und öffentlich). Auf einem VPS ist die Verbindung meist „öffentlich“, deshalb ist das wichtig.
Braucht man die ausgehenden Regeln? Unter Windows Server ist ausgehender Verkehr standardmäßig erlaubt, also normalerweise nicht. Sie sind dabei, weil sie nicht stören und weil sie genau das Fehlende sind, falls jemand die Firewall vorher verschärft hat.
Für einen Portbereich
New-NetFirewallRule -DisplayName "Spiel UDP 7777-7778 (eingehend)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any
Eine durch Kommas getrennte Liste geht auch: -LocalPort 27015,27020.
Prüfen, ob die Regeln stimmen
Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
$f = $_ | Get-NetFirewallPortFilter
[pscustomobject]@{
Regel = $_.DisplayName
Aktiv = $_.Enabled
Richtung = $_.Direction
Aktion = $_.Action
Protokoll = $f.Protocol
Port = $f.LocalPort
}
} | Format-Table -AutoSize
Es müssen alle vier Regeln erscheinen, mit Enabled auf True und Action auf Allow.
Prüfen, ob dein Server lauscht
Einen Port zu öffnen bringt nichts, wenn dahinter niemand lauscht. Bei laufendem Spieleserver:
Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint -LocalPort 30120
Wenn nichts zurückkommt, ist nicht die Firewall das Problem: Dein Server ist nicht gestartet, abgestürzt oder auf einen anderen Port eingestellt. Sieh dir die Konsole des Spiels an, bevor du weiter an Regeln drehst.
Eine Regel löschen
Remove-NetFirewallRule -DisplayName "Spieleserver TCP 30120 (eingehend)"
Wenn du es lieber mit der Maus machst
Drücke Win + R, tippe wf.msc und Enter. Wähle links Inbound Rules (eingehende Regeln) → rechts New Rule… (neue Regel) → Port → wähle TCP oder UDP und trage die Nummer unter Specific local ports (bestimmte lokale Ports) ein → Allow the connection (Verbindung zulassen) → lass alle drei Profile angehakt → gib einen Namen ein und schließe ab. Wiederhole das für das andere Protokoll: Eine Regel deckt immer nur TCP oder UDP ab, nie beides.
Es geht immer noch nicht
Geh in dieser Reihenfolge vor, so schließt du am schnellsten etwas aus:
- Lauscht der Server? Die beiden Befehle oben. Das ist mit Abstand der häufigste Fehler.
- Hast du das richtige Protokoll geöffnet? Die Hälfte der Spiele läuft über UDP. Öffne TCP und UDP, dann bist du sicher.
- Testest du vom Server selbst aus? Von innen funktioniert es immer. Teste von einer anderen Verbindung aus oder lass jemanden beitreten.
- AntiDDoS-Filterung. Auf der Seite deines Dienstes, Reiter Sicherheit, liegen die Filter des Netzwerks. Wenn du dort Filter von Hand angelegt hast, müssen sie den Port und das Protokoll deines Spiels enthalten.
Schalte niemals die ganze Firewall ab, „nur zum Testen“. Ein VPS mit öffentlicher IP wird wenige Minuten nach dem Start automatisch gescannt. Öffne die Ports, die du brauchst, und lass den Rest zu.