Comment créer un serveur Minecraft sur un VPS ou un serveur dédié
Ce guide vous explique comment installer et configurer un serveur Minecraft Java Edition sur votre VPS ou serveur dédié Linux.
Commander un serveur
Pour héberger votre serveur Minecraft, HostMyServers propose plusieurs offres adaptées au gaming :
- VPS Performance - Idéal pour les serveurs de jeux
- VPS NVMe - Excellent rapport qualité/prix
- Serveurs dédiés Eco - Pour les serveurs avec beaucoup de joueurs
- Serveurs dédiés Performance - Performance maximale pour les gros serveurs
Prérequis
- Accès SSH root ou utilisateur avec sudo
- Système Debian/Ubuntu à jour
- Minimum 2 Go de RAM (4 Go recommandés pour 10+ joueurs)
- Port 25565 accessible (TCP)
- Connexion internet stable
Configuration requise
| Nombre de joueurs | RAM minimale | RAM recommandée |
|---|---|---|
| 1-5 | 1 Go | 2 Go |
| 5-10 | 2 Go | 4 Go |
| 10-20 | 4 Go | 6 Go |
| 20+ | 6 Go | 8 Go+ |
Mise à jour du système
sudo apt update && sudo apt upgrade -y
Installation de Java
Minecraft 1.17+ nécessite Java 17 minimum. Pour les versions récentes (1.20+), Java 21 est recommandé.
Installer Java 21 (recommandé)
sudo apt install -y openjdk-21-jdk
Vérifier l'installation
java --version
Vous devriez voir une sortie similaire à :
openjdk 21.0.x 2024-xx-xx
OpenJDK Runtime Environment (build 21.0.x+xx-xx)
OpenJDK 64-Bit Server VM (build 21.0.x+xx-xx, mixed mode, sharing)
Création d'un utilisateur dédié
Pour des raisons de sécurité, ne faites jamais tourner le serveur en root. Créez un utilisateur dédié :
sudo adduser --system --home /opt/minecraft --shell /bin/bash minecraft
Installation des outils nécessaires
sudo apt install -y screen wget curl unzip
- screen : permet de garder le serveur actif après la déconnexion SSH
- wget/curl : pour télécharger les fichiers
- unzip : pour extraire les archives
Téléchargement du serveur Minecraft
Connectez-vous en tant qu'utilisateur minecraft
sudo -u minecraft bash
cd /opt/minecraft
mkdir server
cd server
Téléchargez le serveur officiel
Récupérez le lien de la dernière version sur minecraft.net/download/server puis :
wget -O server.jar https://piston-data.mojang.com/v1/objects/XXXXXXX/server.jar
Remplacez l'URL par le lien officiel de la version souhaitée.
Acceptation du EULA
Vous devez accepter le contrat de licence Minecraft :
echo "eula=true" > eula.txt
Premier lancement
Lancez le serveur une première fois pour générer les fichiers de configuration :
java -Xms1G -Xmx2G -jar server.jar nogui
Paramètres de mémoire :
-Xms1G: mémoire initiale (1 Go)-Xmx2G: mémoire maximale (2 Go)nogui: désactive l'interface graphique
Arrêtez le serveur avec stop ou Ctrl+C apr ès le premier lancement.
Configuration du serveur
Modifiez le fichier server.properties selon vos besoins :
nano server.properties
Paramètres importants
# Port du serveur (par défaut : 25565)
server-port=25565
# Nombre maximum de joueurs
max-players=20
# Mode de jeu (survival, creative, adventure, spectator)
gamemode=survival
# Difficulté (peaceful, easy, normal, hard)
difficulty=normal
# Message affiché dans la liste des serveurs
motd=Mon Serveur Minecraft
# Distance de rendu (réduire si lag)
view-distance=10
# Activer la whitelist
white-list=false
# Mode online (vérification des comptes Mojang)
online-mode=true
# Activer le PvP
pvp=true
# Spawn protection (rayon en blocs)
spawn-protection=16
Configuration du pare-feu
Ouvrez le port Minecraft dans le pare-feu :
Avec UFW
sudo ufw allow 25565/tcp
sudo ufw reload
Avec iptables
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Lancement avec screen
Pour garder le serveur actif après la déconnexion SSH :
Démarrer le serveur dans screen
screen -S minecraft
cd /opt/minecraft/server
java -Xms1G -Xmx2G -jar server.jar nogui
Détacher la session
Appuyez sur Ctrl+A puis D pour détacher la session.
Revenir à la session
screen -r minecraft
Lister les sessions
screen -ls
Configuration en tant que service systemd
Pour un démarrage automatique au boot du serveur :
Créer le fichier de service
sudo nano /etc/systemd/system/minecraft.service
Contenu du fichier :
[Unit]
Description=Minecraft Java Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar /opt/minecraft/server/server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=20
StandardInput=null
[Install]
WantedBy=multi-user.target
Activer et démarrer le service
sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service
Commandes de gestion
# Vérifier le statut
sudo systemctl status minecraft.service
# Arrêter le serveur
sudo systemctl stop minecraft.service
# Redémarrer le serveur
sudo systemctl restart minecraft.service
# Voir les logs
sudo journalctl -u minecraft.service -f
Gestion du serveur
Commandes console utiles
Une fois connecté à la console du serveur (via screen) :
| Commande | Description |
|---|---|
stop | Arrête le serveur proprement |
save-all | Sauvegarde le monde |
list | Affiche les joueurs connectés |
op <joueur> | Donne les droits admin à un joueur |
deop <joueur> | Retire les droits admin |
kick <joueur> | Expulse un joueur |
ban <joueur> | Bannit un joueur |
whitelist add <joueur> | Ajoute un joueur à la whitelist |
whitelist remove <joueur> | Retire un joueur de la whitelist |
gamemode <mode> <joueur> | Change le mode de jeu |
difficulty <niveau> | Change la difficulté |
Optimisation des performances
Script de démarrage optimisé
Créez un script de lancement avec des flags optimisés :
nano /opt/minecraft/server/start.sh
#!/bin/bash
cd /opt/minecraft/server
java -Xms2G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar server.jar nogui
Rendez le script exécutable :
chmod +x /opt/minecraft/server/start.sh
Réduire le lag
Dans server.properties :
# Réduire la distance de rendu
view-distance=8
# Réduire la distance de simulation
simulation-distance=6
# Limiter les entités
max-tick-time=60000
Sauvegarde automatique
Script de sauvegarde
sudo nano /opt/minecraft/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p $BACKUP_DIR
# Sauvegarde du monde
tar -czf $BACKUP_DIR/world_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end
# Supprimer les sauvegardes de plus de 7 jours
find $BACKUP_DIR -name "world_*.tar.gz" -mtime +7 -delete
echo "Sauvegarde terminée : world_$DATE.tar.gz"
chmod +x /opt/minecraft/backup.sh
Planifier la sauvegarde
sudo crontab -e
Ajoutez :
# Sauvegarde quotidienne à 4h du matin
0 4 * * * /opt/minecraft/backup.sh
Connexion au serveur
Les joueurs peuvent se connecter en utilisant :
- Adresse :
IP_DE_VOTRE_SERVEURouvotre_domaine.com - Port :
25565(par défaut)
Dans Minecraft : Multijoueur → Ajouter un serveur → Entrer l'adresse
En cas de problème
Le serveur ne démarre pas
- Vérifiez les logs :
tail -f /opt/minecraft/server/logs/latest.log - Vérifiez que Java est installé :
java --version - Vérifiez que le EULA est accepté :
cat eula.txt
Les joueurs ne peuvent pas se connecter
- Vérifiez que le port 25565 est ouvert :
sudo ufw status - Vérifiez que le serveur tourne :
sudo systemctl status minecraft.service - Testez le port :
nc -zv IP_SERVEUR 25565
Problèmes de performance
- Augmentez la RAM allouée (
-Xmx) - Réduisez
view-distancedansserver.properties - Utilisez Paper ou Spigot au lieu du serveur vanilla pour de meilleures performances