Zet je een gameserver op een Windows VPS en kan niemand verbinden, dan is de boosdoener bijna altijd dezelfde: de Windows-firewall blokkeert de poort. Hier lees je hoe je die met commando's opent. Dat gaat sneller dan via de menu's en, belangrijker nog, je kunt het foutloos kopiëren en plakken.
Op een VPS hoef je geen router in te stellen. Vergeet de “port forwarding” uit de tutorials: dat is voor servers thuis. Je VPS heeft een eigen publiek IP-adres, dus het enige wat tussen je spelers en je server staat, is de Windows-firewall.
Open PowerShell als administrator
Maak via Extern bureaublad verbinding met je VPS (hier leggen we uit hoe), klik met de rechtermuisknop op de Startknop en kies Terminal (Admin) of Windows PowerShell (Admin). Staat er geen “Admin” bij, dan mislukken de commando's met een fout over ontbrekende rechten.
Een poort openen: TCP en UDP, inkomend en uitgaand
Dit voorbeeld opent poort 30120; vervang het nummer en de naam door die van jou. Plak het hele blok in één keer:
$poort = 30120
$naam = "Gameserver"
New-NetFirewallRule -DisplayName "$naam TCP $poort (inkomend)" -Direction Inbound -Protocol TCP -LocalPort $poort -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$naam UDP $poort (inkomend)" -Direction Inbound -Protocol UDP -LocalPort $poort -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$naam TCP $poort (uitgaand)" -Direction Outbound -Protocol TCP -LocalPort $poort -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$naam UDP $poort (uitgaand)" -Direction Outbound -Protocol UDP -LocalPort $poort -Action Allow -Profile Any
Wat elk onderdeel doet, voor als je het wilt aanpassen:
-Direction Inboundis wat van buitenaf binnenkomt (wat je echt nodig hebt) enOutboundwat naar buiten gaat.-ProtocolTCP of UDP. Die zijn niet uitwisselbaar. Gebruikt je game UDP en open je alleen TCP, dan komt niemand erin: dat is veruit de meest gemaakte fout.-LocalPortis de poort waarop je server luistert.-Profile Anypast de regel toe op alle drie de netwerkprofielen (domein, privé en openbaar). Op een VPS valt de verbinding meestal onder “Public” (openbaar), dus dat is belangrijk.
Zijn de uitgaande regels nodig? Op Windows Server is uitgaand verkeer standaard toegestaan, dus normaal gesproken niet. Ze staan erbij omdat ze geen kwaad kunnen en omdat ze precies zijn wat er ontbrak als iemand de firewall eerder heeft aangescherpt.
Voor een reeks poorten
New-NetFirewallRule -DisplayName "Game UDP 7777-7778 (inkomend)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any
Een lijst gescheiden door komma's werkt ook: -LocalPort 27015,27020.
Controleren of de regels goed staan
Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
$f = $_ | Get-NetFirewallPortFilter
[pscustomobject]@{
Regel = $_.DisplayName
Actief = $_.Enabled
Richting = $_.Direction
Actie = $_.Action
Protocol = $f.Protocol
Poort = $f.LocalPort
}
} | Format-Table -AutoSize
Alle vier de regels moeten verschijnen, met Enabled op True en Action op Allow.
Controleren of je server luistert
Een poort openen heeft geen zin als er niets achter luistert. Met de gameserver gestart:
Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint -LocalPort 30120
Geven ze niets terug, dan ligt het probleem niet aan de firewall: je server is niet gestart, is gecrasht of is ingesteld op een andere poort. Kijk in de console van de game voordat je verder aan de regels gaat sleutelen.
Een regel verwijderen
Remove-NetFirewallRule -DisplayName "Gameserver TCP 30120 (inkomend)"
Doe je het liever met de muis?
Druk op Win + R, typ wf.msc en druk op Enter. Kies in het linkerdeelvenster Inbound Rules (regels voor binnenkomende verbindingen) → New Rule… (nieuwe regel) in de rechterkolom → Port (poort) → kies TCP of UDP en typ het nummer bij Specific local ports (specifieke lokale poorten) → Allow the connection (de verbinding toestaan) → laat alle drie de profielen aangevinkt → geef de regel een naam en rond af. Herhaal dit voor het andere protocol: een regel geldt altijd voor TCP of UDP, nooit voor allebei.
Het werkt nog steeds niet
Loop het in deze volgorde na; zo sluit je het snelst dingen uit:
- Luistert de server? Gebruik de twee commando's hierboven. Dit is veruit de meest voorkomende fout.
- Heb je het juiste protocol geopend? De helft van de games draait op UDP. Open TCP én UDP, dan weet je het zeker.
- Test je het vanaf de server zelf? Van binnenuit werkt het altijd. Test vanaf een andere verbinding of vraag iemand om te verbinden.
- AntiDDoS-filtering. Op de pagina van je dienst, tabblad Beveiliging, staan de netwerkfilters. Heb je zelf filters aangemaakt, controleer dan of de poort en het protocol van je game erin staan.
Schakel nooit de hele firewall uit om “even te testen”. Een VPS met een publiek IP-adres wordt al een paar minuten na het opstarten automatisch gescand. Open de poorten die je nodig hebt en laat de rest dicht.