Quand tu montes un serveur de jeu sur un VPS Windows et que personne n'arrive à se connecter, le coupable est presque toujours le même : le pare-feu Windows bloque le port. Voici comment l'ouvrir en ligne de commande, ce qui est plus rapide que de passer par les menus et, surtout, se copie-colle sans erreur.
Sur un VPS, il n'y a pas de box à configurer. Oublie la « redirection de ports » des tutos : c'est pour les serveurs à la maison. Ton VPS a sa propre IP publique, donc la seule chose entre tes joueurs et ton serveur, c'est le pare-feu Windows.
Ouvre PowerShell en administrateur
Connecte-toi à ton VPS en Bureau à distance (on t'explique comment ici), fais un clic droit sur le bouton Démarrer et choisis Terminal (Admin) ou Windows PowerShell (Admin). Sans les droits d'administrateur, les commandes échoueront avec une erreur de permissions.
Ouvrir un port : TCP et UDP, en entrée et en sortie
Cet exemple ouvre le 30120 ; remplace le numéro et le nom par les tiens. Colle tout le bloc d'un coup :
$port = 30120
$nom = "Serveur de jeu"
New-NetFirewallRule -DisplayName "$nom TCP $port (entrant)" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nom UDP $port (entrant)" -Direction Inbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nom TCP $port (sortant)" -Direction Outbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "$nom UDP $port (sortant)" -Direction Outbound -Protocol UDP -LocalPort $port -Action Allow -Profile Any
Ce que fait chaque partie, si tu veux l'adapter :
-Direction Inbound, c'est ce qui arrive de l'extérieur (ce dont tu as vraiment besoin), etOutbound, ce qui sort.-ProtocolTCP ou UDP. Ils ne sont pas interchangeables. Si ton jeu utilise UDP et que tu n'ouvres que TCP, personne n'entre : c'est l'erreur la plus fréquente.-LocalPort, c'est le port sur lequel ton serveur écoute.-Profile Anyapplique la règle aux trois profils réseau (domaine, privé et public). Sur un VPS, la connexion est en général en « public », c'est donc important.
Les règles de sortie sont-elles nécessaires ? Sur Windows Server, le trafic sortant est autorisé par défaut, donc en principe non. Elles sont là parce qu'elles ne gênent pas et parce que, si quelqu'un a durci le pare-feu avant, ce seront justement celles qui manquaient.
Pour une plage de ports
New-NetFirewallRule -DisplayName "Jeu UDP 7777-7778 (entrant)" -Direction Inbound -Protocol UDP -LocalPort 7777-7778 -Action Allow -Profile Any
Une liste séparée par des virgules marche aussi : -LocalPort 27015,27020.
Vérifier que les règles sont bonnes
Get-NetFirewallRule -DisplayName "*30120*" | ForEach-Object {
$f = $_ | Get-NetFirewallPortFilter
[pscustomobject]@{
Regle = $_.DisplayName
Active = $_.Enabled
Sens = $_.Direction
Action = $_.Action
Protocole = $f.Protocol
Port = $f.LocalPort
}
} | Format-Table -AutoSize
Les quatre règles doivent apparaître, avec Enabled à True et Action à Allow.
Vérifier que ton serveur écoute
Ouvrir le port ne sert à rien si rien n'écoute derrière. Avec le serveur de jeu lancé :
Get-NetTCPConnection -LocalPort 30120 -State Listen
Get-NetUDPEndpoint -LocalPort 30120
S'ils ne renvoient rien, le problème n'est pas le pare-feu : ton serveur n'a pas démarré, il a planté ou il est configuré sur un autre port. Regarde la console du jeu avant de continuer à toucher aux règles.
Supprimer une règle
Remove-NetFirewallRule -DisplayName "Serveur de jeu TCP 30120 (entrant)"
Si tu préfères le faire à la souris
Appuie sur Win + R, tape wf.msc et Entrée. Dans le volet de gauche, choisis Inbound Rules (règles de trafic entrant) → New Rule… (nouvelle règle) à droite → Port → choisis TCP ou UDP et saisis le numéro dans Specific local ports (ports locaux spécifiques) → Allow the connection (autoriser la connexion) → laisse les trois profils cochés → donne un nom et termine. Recommence pour l'autre protocole : une règle ne couvre que TCP ou UDP, jamais les deux.
Ça ne marche toujours pas
Vérifie dans cet ordre, c'est celui qui élimine le plus vite :
- Le serveur écoute-t-il ? Les deux commandes ci-dessus. C'est de loin le problème le plus courant.
- As-tu ouvert le bon protocole ? La moitié des jeux passent par UDP. Ouvre TCP et UDP et tu n'auras plus de doute.
- Testes-tu depuis le serveur lui-même ? De l'intérieur, ça marche toujours. Teste depuis une autre connexion ou demande à quelqu'un de rejoindre.
- Filtrage AntiDDoS. Sur la fiche de ton service, onglet Sécurité, se trouvent les filtres du réseau. Si tu as créé des filtres à la main, vérifie qu'ils incluent le port et le protocole de ton jeu.
Ne désactive jamais tout le pare-feu « pour tester ». Un VPS avec une IP publique reçoit des scans automatiques quelques minutes après son démarrage. Ouvre les ports dont tu as besoin et laisse le reste fermé.