SSD Nodes Learn 🎉 VPS dès $4.99/mois
Guides Matt ConnorPar Matt Connor

Comment choisir un VPS pour serveur de jeu

Découvrez les besoins réels d’un VPS de jeu : fréquence d’un cœur CPU, RAM, ports, redémarrages systemd, sauvegardes et latence liée à la localisation.

De quel type de VPS de gaming parlez-vous ?

Un VPS pour héberger des serveurs de jeu est un bon choix pour un usage précis : exécuter un serveur dédié auquel vous et vos amis vous connectez depuis vos propres machines. En revanche, c’est un mauvais choix pour l’autre usage associé à cette expression : jouer au jeu directement sur le VPS via un bureau à distance. Ces deux usages nécessitent un matériel opposé. Un serveur dédié a besoin d’un cœur de CPU rapide et de suffisamment de RAM pour contenir le monde du jeu. Pour jouer, il faut un GPU (processeur graphique), alors qu’une offre VPS standard n’en fournit pas.

La suite concerne uniquement le premier usage. Le second mérite que vous y consacriez deux minutes, car beaucoup de personnes achètent une machine qui ne convient pas.

Pourquoi vous ne pouvez pas jouer à des jeux sur un VPS

Un VPS standard fournit des cœurs de processeur virtuels, mais aucune carte graphique. Aucun périphérique n’est exposé depuis l’hôte physique. Le jeu ne dispose donc d’aucun renderer matériel. Vous pouvez vérifier ce que vous avez réellement obtenu :

sudo apt install -y pciutils
lspci | grep -iE "vga|3d"

La réponse est un adaptateur d’affichage virtuel, par exemple un périphérique Cirrus Logic ou un GPU virtio. Il sert à afficher un écran dans la console web du fournisseur et ne fournit aucune accélération 3D. Si vous installez un environnement de bureau et un serveur VNC par-dessus, glxinfo -B indique que son renderer est llvmpipe, le renderer logiciel de Mesa qui s’exécute sur le processeur. Un jeu 3D moderne rendu par le processeur atteint quelques images par seconde. Il est donc injouable avant même que quoi que ce soit ne quitte le serveur. Les instances Windows rencontrent le même problème, sous une autre forme. De nombreux jeux se ferment au lancement en indiquant qu’ils n’ont pas pu créer de périphérique Direct3D, car aucun adaptateur d’affichage ne permet de le créer.

Le deuxième problème concerne le trajet de retour jusqu’à vous. Jouer sur une machine distante signifie que chaque image est encodée en vidéo, envoyée sur Internet, puis décodée sur votre écran. Cela ajoute le temps d’encodage et de décodage à la latence d’entrée du jeu. RDP et VNC ont été conçus pour les environnements de bureau, pas pour afficher des mouvements à 60 images par seconde. Les services de cloud gaming résolvent ce problème avec du matériel GPU réel et un protocole de streaming conçu à cet effet. Un VPS standard ne dispose ni de l’un ni de l’autre. Si vous voulez jouer, louez du temps GPU. Si vous voulez héberger, poursuivez la lecture.

Ce dont un serveur de jeu dédié a réellement besoin

Un serveur de jeu exécute une boucle de simulation. Il conserve le monde en mémoire et le fait avancer un nombre fixe de fois par seconde. Chaque joueur connecté reçoit ensuite la partie du monde qu’il peut voir.

Cette structure détermine le matériel. La boucle s’exécute principalement sur un seul thread : la fréquence du cœur compte donc davantage que le nombre de cœurs. Le monde réside en mémoire : la RAM est généralement la première limite atteinte. Le disque est peu sollicité pendant la partie, puis fortement sollicité lors du chargement et de la sauvegarde. Votre chemin réseau détermine le ping ; aucun niveau d’offre ne peut le modifier.

La vitesse d’un seul cœur prime sur le nombre de cœurs

La plupart des serveurs de jeu font avancer le monde sur un thread principal. La boucle de ticks de Minecraft et les frames serveur du moteur Source fonctionnent de cette manière. Chaque tick doit respecter une échéance. Minecraft Java exécute 20 ticks par seconde, ce qui laisse 50 millisecondes à chaque tick. Lorsque le travail dépasse ce délai, le serveur affiche exactement ceci :

[12:04:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2547ms or 50 ticks behind

Cette ligne signifie qu’un thread n’a pas terminé à temps. Ajouter des cœurs ne donne pas plus de temps à ce thread. Un plan avec 2 vCPU rapides maintiendra un taux de ticks qu’un plan avec 8 vCPU lents ne pourra pas tenir, car un seul de ces 8 vCPU effectue le travail qui compte.

Mesurez la vitesse d’un thread avant de vous engager :

sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

Lisez la ligne events per second. Le nombre n’a aucune signification pris seul, mais il est utile pour comparer. Exécutez donc le test sur deux plans candidats et placez les résultats côte à côte. Un benchmark complet de VPS couvre le disque et le réseau de la même manière.

Les cœurs supplémentaires restent utiles. Ils exécutent le deuxième serveur de jeu, la base de données, la sauvegarde nocturne et le pré-générateur de chunks sans prendre de temps au thread des ticks. Les logiciels serveur ont également appris à répartir la charge. Paper, un fork populaire de serveur Minecraft, déplace une partie du travail hors du thread principal des ticks. Le bon choix consiste donc à prendre quelques cœurs rapides, et non beaucoup de cœurs lents.

Un nombre n’apparaît jamais sur la page d’un plan, alors qu’il détermine si le cœur rapide que vous avez payé vous est réellement réservé :

vmstat 1 5

La colonne st indique le pourcentage de temps pendant lequel votre vCPU était prêt à s’exécuter, mais où l’hôte physique a attribué le cœur à un autre utilisateur. Une valeur st stable au-dessus de quelques pour cent indique que l’hôte est surchargé en souscriptions. Les joueurs ressentent alors des saccades, tandis que top sur votre serveur affiche encore un CPU inactif, car ce temps d’inactivité ne vous est pas disponible.

De quelle quantité de RAM un serveur de jeu a-t-il besoin ?

ChartCommon starting RAM per game server (published guidance, not a measurement)
The data behind this chart
[
  {
    "label": "Minecraft Java, vanilla",
    "players": 10,
    "ram_gb": 2
  },
  {
    "label": "Minecraft Java, large modpack",
    "players": 10,
    "ram_gb": 8
  },
  {
    "label": "Valheim",
    "players": 10,
    "ram_gb": 4
  },
  {
    "label": "Palworld",
    "players": 32,
    "ram_gb": 16
  }
]

Voici les allocations de départ publiées par la documentation des jeux et des modpacks, en août 2026. Il s’agit de recommandations, pas de mesures effectuées sur une machine précise. Minecraft Java vanilla fonctionne correctement avec 2 Go de heap pour environ 10 joueurs. Le même nombre de joueurs sur un modpack important nécessite 8 Go, car les mods ajoutent des entités et des structures générées qui résident toutes dans ce heap. Le minimum indiqué par Valheim est de 2 Go, tandis que des opérateurs disposant d’un petit monde indiquent que le processus se stabilise plutôt autour de 3 Go. 4 Go est donc un bon point de départ. Palworld fait exception avec 16 Go pour son maximum de 32 joueurs, conformément aux recommandations de Pocketpair.

La RAM n’évolue pas avec le nombre de connexions. Elle dépend du monde chargé. Chaque joueur maintient chargée la région qui l’entoure. Deux joueurs proches l’un de l’autre consomment donc beaucoup moins de mémoire que deux joueurs qui explorent des zones opposées de la carte. C’est pourquoi la « RAM par joueur » n’est qu’une indication approximative. Le facteur déterminant est la « RAM par zone active ». Un petit groupe qui explore beaucoup peut donc dépasser la capacité prévue pour deux fois plus de joueurs.

Les serveurs Java nécessitent deux précautions supplémentaires. Définissez le heap minimal et maximal à la même valeur afin que la JVM ne s’interrompe jamais pour le redimensionner :

java -Xms4G -Xmx4G -jar server.jar nogui

Prévoyez ensuite une marge. La JVM utilise de la mémoire en dehors du heap qui lui est attribué, notamment pour les piles des threads et les buffers natifs. Le kernel a également besoin du page cache pour lire rapidement les fichiers du monde. Sur une machine avec 6 Go de RAM, un heap de 4 Go est raisonnable. Un heap de 6 Go ne l’est pas.

Les deux types de panne mémoire sont très différents. Apprenez donc à reconnaître leurs messages. Un heap trop petit provoque une erreur dans Java, et le serveur continue généralement à fonctionner avec des performances dégradées :

java.lang.OutOfMemoryError: Java heap space

Un heap plus grand que la mémoire disponible entraîne l’arrêt du processus par le système. La console affiche seulement Killed. Les éléments permettant de confirmer la cause se trouvent dans le kernel log :

sudo dmesg -T | grep -i "out of memory"

Ajouter du swap empêche l’arrêt du processus, mais ne corrige rien. Une boucle de ticks qui doit relire le monde depuis le swap dépasse toutes ses échéances. Vos joueurs obtiennent donc un serveur figé au lieu d’un serveur arrêté.

Une précision concernant les versions, valable en août 2026 : Minecraft Java 1.20.5 et les versions ultérieures nécessitent Java 21. Un runtime plus ancien démarre, puis échoue avec une erreur de version de fichier de classe non prise en charge. Le message ressemble à celui d’un compilateur et déroute généralement les utilisateurs la première fois qu’ils le rencontrent.

sudo apt install -y openjdk-21-jre-headless
java -version

La vitesse du disque a-t-elle de l’importance pour un serveur de jeu ?

Moins qu’on ne le pense pendant le jeu, mais beaucoup à deux moments précis. Le monde est chargé en mémoire au démarrage, puis réécrit sur le disque lors de l’autosave. La vitesse du disque se traduit donc par un démarrage lent et par une pause pendant la sauvegarde. Entre ces deux opérations, la plupart des lectures sont servies depuis la RAM.

Deux éléments rendent le disque plus important que ne le laisse penser ce résumé. L’exploration charge de nouveaux chunks ou de nouvelles zones depuis le disque pendant que les joueurs se déplacent, et cette lecture s’effectue dans le tick budget. L’autosave d’un monde volumineux écrit beaucoup de données d’un coup. Sur un volume lent, l’écriture bloque la boucle assez longtemps pour afficher l’avertissement « Can't keep up » mentionné plus haut. Dans les deux cas, le problème vient de la latence, pas du débit. C’est pourquoi l’écart entre un SSD NVMe et un SSD SATA sur un VPS compte davantage ici que ne le suggère le débit en mégaoctets par seconde. Ce qui importe, c’est la durée d’une petite opération.

Prévoyez une capacité suffisante pour la croissance. Un monde grossit chaque fois qu’un joueur explore un nouvel endroit, et vos sauvegardes multiplient l’espace occupé. Exécutez du -sh world une fois par semaine pendant un mois pour connaître votre taux de croissance réel.

Fréquence des ticks, ping et différence entre les deux

La fréquence des ticks correspond au nombre de recalculs du monde effectués par seconde par le serveur. Minecraft Java fonctionne à 20. Les serveurs du moteur Source fonctionnent généralement à 64. Dans Minecraft, vous ne pouvez pas acheter une fréquence plus élevée, car elle fait partie de la conception du jeu. L’objectif est donc de maintenir 20 ticks, et non de dépasser cette valeur.

Le ping correspond à l’aller-retour réseau entre un joueur et le serveur. Ces deux problèmes provoquent des symptômes différents. Distinguez-les avant de dépenser de l’argent. Lorsque le serveur manque des ticks, tous les joueurs subissent un rubber-banding au même moment, et le journal du serveur l’indique clairement. Lorsqu’un joueur a un chemin réseau long, lui seul subit des ralentissements, tandis que les autres joueurs n’ont aucun problème. Un processeur plus puissant ne corrigera jamais le second cas.

La latence dépend de l’emplacement, pas de la formule

La lumière se propage à environ 200 kilomètres par milliseconde dans la fibre. Un aller-retour couvre deux fois la distance. Le minimum est donc d’environ 1 ms pour chaque tranche de 100 km entre le joueur et le serveur. Aucun fournisseur ne peut faire mieux. Aucune montée en gamme ne change ce résultat.

ChartRound trip floor by distance, fibre physics only
The data behind this chart
[
  {
    "label": "Toronto to New York",
    "distance_km": 550,
    "rtt_floor_ms": 5.5
  },
  {
    "label": "Dallas to Chicago",
    "distance_km": 1290,
    "rtt_floor_ms": 12.9
  },
  {
    "label": "Dallas to Los Angeles",
    "distance_km": 1990,
    "rtt_floor_ms": 19.9
  },
  {
    "label": "New York to London",
    "distance_km": 5570,
    "rtt_floor_ms": 55.7
  },
  {
    "label": "Los Angeles to Sydney",
    "distance_km": 12070,
    "rtt_floor_ms": 120.7
  }
]

Ces minimums sont calculés à partir de la distance orthodromique. Les câbles en fibre ne suivent pas une ligne droite, et chaque routeur sur le chemin ajoute un petit délai. En pratique, un bon résultat réel se situe généralement autour du double du minimum théorique. Un joueur à Toronto qui rejoint un serveur à New York, distant de 550 km, a un minimum de 5.5 ms et observera généralement une latence de l’ordre de quelques dizaines de millisecondes. La liaison entre Los Angeles et Sydney a un minimum de 120.7 ms. Aucun budget ne peut le réduire.

Placez donc le serveur près des joueurs qui l’utilisent. Si votre groupe est réparti de part et d’autre d’un océan, certains subiront un trajet long. Le choix le plus équitable consiste généralement à retenir la région où se trouve la majorité des joueurs.

Mesurez le chemin au lieu de l’estimer :

sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10

Commencez par lire la dernière ligne. Elle correspond au serveur. Sa perte de paquets et sa latence sont les seuls éléments qui déterminent les sensations en jeu. Une perte affichée sur un saut intermédiaire, avec un dernier saut propre, indique presque toujours une limitation du débit ICMP sur ce routeur. Les routeurs donnent une priorité moindre aux réponses des paquets de sonde, tout en acheminant normalement le trafic réel. Demandez à chaque joueur d’exécuter la commande vers le serveur, car chacun emprunte un chemin différent.

Calcul du minimum d’un aller-retour

La lumière se déplace dans le verre à environ deux tiers de sa vitesse dans le vide, soit près de 200 km par milliseconde. Un aller-retour couvre deux fois la distance. Le minimum en millisecondes correspond donc à la distance aller simple en kilomètres divisée par 100. New York et Londres sont séparées de 5,570 km. 5570 divisé par 100 donne 55.7 ms. Chaque mesure réelle est supérieure à cette valeur, car les câbles suivent les côtes et les routeurs ont besoin d’un certain temps pour traiter les paquets.

Ouvrez uniquement les ports nécessaires au jeu

Un serveur de jeu nécessite l’ouverture d’un ou deux ports, et de rien d’autre. Les valeurs par défaut les plus courantes sont les suivantes :

  • Minecraft Java Edition : TCP 25565
  • Minecraft Bedrock Edition : UDP 19132
  • Valheim : UDP 2456 et UDP 2457
  • Palworld : UDP 8211
  • Jeux utilisant le moteur Source, comme Counter-Strike 2 : UDP 27015

Consultez la documentation du jeu, car plusieurs titres utilisent un port de requête supplémentaire. Valheim en est l’exemple le plus clair : 2456 transporte le trafic du jeu et 2457 répond aux requêtes du serveur Steam, ce qui permet à votre serveur d’apparaître dans la liste des serveurs. Ouvrir ces ports en TCP ne sert à rien, car Valheim utilise uniquement UDP.

Autorisez SSH avant d’activer le firewall, sinon vous risquez de vous verrouiller vous-même hors de votre serveur :

sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

De nombreux fournisseurs exécutent également un firewall réseau dans leur panneau de contrôle, indépendamment de celui de la machine. Un port ouvert dans ufw mais fermé dans ce firewall refuse toujours les connexions. Le symptôme est identique depuis l’extérieur. Vérifiez donc les deux emplacements avant de modifier les fichiers de configuration.

Vérifier un port TCP depuis une autre machine est simple :

sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565

UDP ne peut pas être testé de cette manière. Un port UDP fermé reste normalement silencieux. Une probe qui ne reçoit aucune réponse ne vous apprend donc rien. Effectuez plutôt la vérification depuis le serveur et recherchez le processus du jeu à l’écoute sur le port attendu :

sudo ss -lunp | grep 2456

N’exposez jamais RCON, le protocole de console distante, sur Internet. Il s’agit d’un simple mot de passe envoyé sur une connexion en clair, généralement sur le port 25575. Liez-le à 127.0.0.1 et utilisez-le au moyen d’un tunnel SSH. Exécutez également le serveur de jeu avec son propre utilisateur sans privilèges, afin qu’un bug dans un mod ne puisse pas atteindre le reste de la machine. Les dix premières minutes sur un nouveau VPS couvre la création du compte utilisateur et le renforcement de la sécurité SSH que cette section suppose déjà effectués.

Exécutez le serveur avec systemd pour le redémarrer automatiquement

Un serveur lancé manuellement dans une session SSH s’arrête lorsque la session se ferme. Il reste aussi arrêté après un redémarrage. systemd résout ces deux problèmes. Écrivez /etc/systemd/system/minecraft.service :

[Unit]
Description=Minecraft Java server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar server.jar nogui
Restart=on-failure
RestartSec=15
TimeoutStopSec=180

[Install]
WantedBy=multi-user.target

Restart=on-failure redémarre le serveur après un crash et le laisse arrêté après un arrêt normal. C’est le comportement recherché. Restart=always vous gêne chaque fois que vous arrêtez volontairement le serveur. TimeoutStopSec=180 est plus important qu’il n’y paraît. systemctl stop envoie SIGTERM. Le serveur Minecraft vanilla intercepte ce signal et sauvegarde le monde avant de quitter. Lorsque le délai expire, systemd envoie alors SIGKILL. Un monde volumineux peut nécessiter plus que les 90 secondes par défaut pour être écrit. Les données qui ne sont pas encore écrites sur le disque au moment où SIGKILL intervient sont perdues.

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo journalctl -u minecraft -f

Un démarrage correct se termine par une ligne telle que Done (12.345s)! For help, type "help". Si l’unité alterne entre les états activating et failed, journalctl -u minecraft -n 50 contient la cause. Il s’agit généralement d’un chemin incorrect dans WorkingDirectory ou d’un heap trop volumineux pour la machine.

systemd ne fournit pas de console interactive. Prévoyez donc ce point dès le départ. Utilisez RCON sur localhost pour exécuter les commandes, ou lancez le serveur dans une session tmux. C’est la même méthode qui permet de maintenir une session Claude Code longue durée active sur un VPS entre deux connexions.

Les jeux distribués via Steam nécessitent SteamCMD avant toute cette configuration. Le package Ubuntu est un binaire 32 bit. C’est pourquoi la ligne d’architecture est présente. Si vous l’omettez, apt indique qu’il ne dispose d’aucun candidat d’installation :

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

Certains serveurs de jeu augmentent leur consommation mémoire au fil du temps. Un redémarrage planifié à une heure creuse est alors la solution généralement utilisée, plutôt qu’un correctif. Un timer systemd qui appelle systemctl restart est plus facile à suivre qu’une entrée cron, car systemctl list-timers indique exactement quand il sera déclenché.

Planifier des sauvegardes du monde

Sur un serveur de jeu, tout peut être remplacé, sauf le répertoire du monde et les données des joueurs. Réinstaller le jeu prend quelques minutes. Reconstruire ce que votre groupe a bâti prend des mois.

Une sauvegarde fiable est effectuée lorsqu’aucun processus n’écrit dans les fichiers. Arrêter le serveur pendant une minute est la méthode la plus simple pour garantir que :

sudo systemctl stop minecraft
sudo tar czf /var/backups/mc-$(date +%F).tgz -C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft

Si une interruption chaque nuit n’est pas acceptable, forcez d’abord l’écriture du monde. Dans la console Minecraft, save-off désactive la sauvegarde automatique, save-all flush écrit toutes les données encore en attente et save-on réactive la sauvegarde automatique une fois la copie terminée. Copier un monde pendant que le serveur écrit peut produire un fichier de région partiellement écrit. Vous ne le découvrirez que le jour où vous devrez effectuer la restauration.

Conservez au moins une copie sur une autre machine. Une sauvegarde présente sur le même disque ne survit pas à une panne du disque. Un snapshot fourni par l’hébergeur est une commodité, pas une sauvegarde, car il reste dans le même compte que vous pourriez perdre. Sauvegardes restic planifiées vers un stockage externe gère la rétention et la déduplication. Ainsi, un mois de copies nocturnes du monde ne remplit pas votre volume.

Effectuez ensuite une restauration. Une sauvegarde que vous n’avez jamais restaurée reste une supposition. Extrayez l’archive de la nuit précédente dans un répertoire temporaire, configurez un serveur de test pour l’utiliser et vérifiez que le monde se charge et que les bâtiments sont bien à leur place.

Vérifiez ces points avant de vous engager

Achetez un mois plutôt qu’une année et faites un test avec de vrais joueurs pendant une soirée. Exécutez le test mono-thread sysbench, puis demandez à chaque joueur d’exécuter mtr vers le serveur. La procédure complète de benchmark d’un VPS présente ces outils et montre à quoi ressemble un mauvais résultat. Le coût réel d’un VPS par mois vous aide à vérifier que vous payez pour la ressource qui limite votre serveur, et non pour celle qui est affichée en plus gros sur la page de l’offre.

Deux articles poursuivent ce sujet. Créer un serveur Minecraft sur un VPS reprend pas à pas tout ce qui précède, avec le jeu par lequel la plupart des utilisateurs commencent. La liste élargie des services qu’un VPS peut héberger mérite votre attention si vous préférez que le serveur serve à autre chose entre deux soirées de jeu.

FAQ

Puis-je jouer à des jeux sur un VPS au lieu d’acheter un PC de gaming ?

Non. Un VPS standard n’a pas de GPU, seulement un adaptateur d’affichage virtuel pour la console du fournisseur. Une fois un environnement de bureau installé, glxinfo -B indique le renderer logiciel llvmpipe et un jeu en 3D tourne à quelques images par seconde. Même avec un GPU attaché, le jeu à distance ajoute l’encodage et le décodage vidéo au trajet aller-retour de chaque image, et RDP et VNC n’ont jamais été conçus pour cela. Un VPS sert à héberger le dedicated server auquel votre groupe se connecte. Si vous voulez jouer, louez du temps GPU ou utilisez un service de cloud gaming.

De combien de cœurs CPU un serveur de jeu a-t-il besoin ?

Pour la plupart des jeux, deux cœurs rapides sont plus performants que huit cœurs lents, car la simulation du monde s’exécute sur un thread principal et les cœurs supplémentaires ne peuvent pas aider ce thread à respecter son délai de 50 ms. Comparez les offres candidates avec sysbench cpu --cpu-max-prime=20000 --threads=1 run et consultez la valeur d’événements par seconde. Des cœurs supplémentaires justifient leur coût si vous exécutez aussi un deuxième serveur ou une base de données sur la même machine, car ces charges peuvent alors s’exécuter sans prendre de temps au thread chargé des ticks.

De combien de RAM un serveur Minecraft a-t-il besoin ?

Comptez environ 2 GB de heap pour un monde vanilla avec environ 10 joueurs, et 8 GB pour un modpack important avec le même nombre de joueurs. Définissez -Xms et -Xmx avec la même valeur et laissez 1 GB à 2 GB de mémoire libre pour le système d’exploitation, car la JVM utilise de la mémoire en dehors du heap et le kernel a besoin du page cache. Si le heap est plus grand que la machine, le kernel tue le processus. Dans dmesg, cela apparaît comme une ligne indiquant un manque de mémoire, et non comme une erreur Java.

Pourquoi mes joueurs subissent-ils des ralentissements alors que le serveur a encore du CPU et de la RAM disponibles ?

Deux causes correspondent à cette situation. Consultez le log du serveur pour rechercher Can't keep up! Is the server overloaded?, ce qui signifie que le thread principal n’a pas respecté son budget de 50 ms par tick alors que les autres cœurs sont restés inactifs. Si cette ligne est absente, le problème vient du chemin réseau. Demandez alors à chaque joueur d’exécuter mtr -rwzc 100 203.0.113.10 vers l’adresse de votre serveur et de lire la dernière ligne. Vérifiez aussi la colonne st dans vmstat 1 : un steal time supérieur à quelques pourcents signifie que l’hôte est surabonné. Le CPU que vous voyez comme inactif ne vous est donc pas réellement disponible.

Quels ports dois-je ouvrir pour un serveur de jeu ?

Uniquement le port utilisé par le jeu, ainsi que SSH. Minecraft Java utilise TCP 25565, Minecraft Bedrock utilise UDP 19132, Valheim utilise UDP 2456 et 2457, et Palworld utilise UDP 8211. Ajoutez la règle SSH avant d’exécuter ufw enable, sinon vous perdrez l’accès à la machine. N’oubliez pas que de nombreux fournisseurs utilisent un deuxième firewall dans leur panneau de contrôle. Le port doit donc être ouvert dans les deux firewalls. N’ouvrez jamais RCON sur le port 25575 sur Internet, car il s’agit d’un mot de passe envoyé en clair.