Désactiver le préchargeur
Tutoriels Linux Serveurs de jeux

Installer un serveur Minecraft Bedrock sur Linux (Ubuntu, Debian, AlmaLinux)

Documentation / Tutoriels Linux / Serveurs de jeux / Installer un serveur Minecraft Bedrock sur Linux (Ubuntu, Debian, AlmaLinux)
Mis à jour le 21/09/2026
16 vues
Débutant
20 minutes

Prérequis

  • Un serveur sous Ubuntu, Debian, AlmaLinux, Rocky, CentOS, Fedora ou openSUSE : voir nos VPS au Canada
  • Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
  • 2 Go de disque libre et 2 Go de RAM
  • Un compte Microsoft pour chaque joueur (le serveur vérifie les comptes)
Votre serveur :

Ce guide installe le serveur dédié officiel de Minecraft Bedrock, la version du jeu sur téléphone, tablette, Windows et consoles (version 1.26.51.1 ; pour la version Java, voyez Installer un serveur Minecraft) : un utilisateur dédié, le serveur, ses réglages, la liste des joueurs admis, une console qu'on commande depuis le terminal, un service qui arrête le serveur proprement et le démarre avec la machine, le pare-feu, la connexion depuis le jeu, la sauvegarde de nuit et la mise à jour. Choisissez votre système ci-dessus. Copiez la commande avec le bouton Copier, collez-la dans votre terminal, et comparez avec le résultat attendu.

1Mettre à jour le système et installer unzip et curl

Mettre à jour le système
apt update && apt upgrade -y
Résultat attendu
...
212 upgraded, 8 newly installed, 0 to remove and 4 not upgraded.
(les nombres dépendent de l'âge de l'image)
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
zypper -n refresh && zypper -n update
Résultat attendu
All repositories have been refreshed.
...
Installer unzip et curl
apt install -y unzip curl
Installer unzip et curl
dnf install -y unzip curl
Résultat attendu
...
Complete!
Installer unzip et curl
dnf install -y unzip curl
Installer unzip et curl
zypper -n install unzip curl

2Créer un utilisateur dédié et télécharger le serveur

Le serveur ne tourne jamais en root : un utilisateur bedrock, dont le dossier personnel est /opt/bedrock, possède le serveur (server) et son monde. Le dossier est créé avant l'utilisateur : sur Rocky et CentOS, SELinux refuse à useradd de le créer lui-même sous /opt.

Créer les dossiers et l'utilisateur bedrock
mkdir -p /opt/bedrock/server && useradd -r -s /bin/bash -d /opt/bedrock bedrock && chown -R bedrock:bedrock /opt/bedrock

L'adresse du fichier change à chaque version : la commande la lit dans le service de téléchargement de minecraft.net, puis télécharge l'archive (95 Mo) en se présentant comme un navigateur, sans quoi le site ne répond pas. L'éditeur ne garantit le serveur que sur Ubuntu ; il démarre sur les sept systèmes de ce guide.

Télécharger et installer le serveur (en tant que bedrock)
su - bedrock -c "cd /opt/bedrock && URL=\$(curl -fsSL https://net-secondary.web.minecraft-services.net/api/v1.0/download/links | grep -o 'https://[^\"]*/bin-linux/bedrock-server-[0-9.]*\.zip') && echo \$URL && curl -fsSL -A Mozilla/5.0 -o bedrock-server.zip \$URL && unzip -q -o bedrock-server.zip -d server && ls server"
Résultat attendu
https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.26.51.1.zip
allowlist.json
bedrock_server
bedrock_server_how_to.html
behavior_packs
config
data
definitions
packetlimitconfig.json
permissions.json
profanity_filter.wlist
release-notes.txt
resource_packs
server.properties
(le numéro de version est celui du moment)

3Écrire les réglages du serveur

Le fichier server.properties est livré rempli ; la commande y change le nom du serveur, celui du monde, le nombre de places, et fixe les ports UDP des joueurs (sinon le serveur en prend au hasard, impossibles à ouvrir dans le pare-feu). Deux réglages livrés comptent : allow-list=true, personne n'entre sans être inscrit (étape 6), et transport=nethernet, le seul mode de connexion que cette version accepte.

Régler server.properties et relire les lignes qui comptent
sed -i 's/^server-name=.*/server-name=Mon serveur Bedrock/; s/^level-name=.*/level-name=MonMonde/; s/^max-players=.*/max-players=8/; s/^# server-udp-ports=.*/server-udp-ports=19132-19140/' /opt/bedrock/server/server.properties
grep -E '^(server-name|level-name|max-players|server-udp-ports|transport|allow-list)=' /opt/bedrock/server/server.properties
Résultat attendu
server-name=Mon serveur Bedrock
max-players=8
allow-list=true
server-udp-ports=19132-19140
transport=nethernet
level-name=MonMonde
server-name
Le nom affiché dans la liste des serveurs du jeu
level-name
Le nom du monde (dossier worlds/MonMonde) ; un nouveau nom crée un nouveau monde
gamemode, difficulty
survival et easy ; creative, adventure ; peaceful, normal, hard
max-players
Le nombre de places (8)
allow-list
true : seuls les joueurs de allowlist.json entrent (étape 6)
online-mode
true : chaque joueur doit être connecté à un compte Microsoft
server-port
19132, en TCP pour la poignée de main ; server-udp-ports, les ports UDP du jeu
view-distance, tick-distance
32 et 4 : la portée d'affichage et de simulation ; à baisser sur un petit serveur
player-idle-timeout
30 : minutes d'inactivité avant l'expulsion (0 : jamais)

4Donner une console au serveur

Le serveur lit ses commandes sur son entrée standard et s'arrête proprement sur la commande stop ; coupé autrement, il ne dit rien et ne range rien. Le script de démarrage lui donne une console qui reste ouverte, le tube nommé /opt/bedrock/console.in : tout ce qu'on y écrit arrive au serveur comme si on le tapait devant lui.

Créer start.sh
cat > /opt/bedrock/start.sh << 'EOF'
#!/bin/sh
cd /opt/bedrock/server
[ -p /opt/bedrock/console.in ] || mkfifo /opt/bedrock/console.in
sleep infinity > /opt/bedrock/console.in &
LD_LIBRARY_PATH=. exec ./bedrock_server < /opt/bedrock/console.in
EOF
chmod +x /opt/bedrock/start.sh && chown -R bedrock:bedrock /opt/bedrock

5Démarrer le serveur comme un service

Le service démarre le serveur avec la machine ; sa ligne ExecStop écrit stop dans la console et attend que le serveur soit parti. Le premier démarrage crée le monde : quelques secondes.

Créer le service bedrock
cat > /etc/systemd/system/bedrock.service << 'EOF'
[Unit]
Description=Serveur Minecraft Bedrock
After=network.target

[Service]
User=bedrock
Group=bedrock
WorkingDirectory=/opt/bedrock/server
ExecStart=/opt/bedrock/start.sh
ExecStop=/bin/sh -c 'echo stop > /opt/bedrock/console.in; while kill -0 $MAINPID 2>/dev/null; do sleep 1; done'
TimeoutStopSec=60
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF
Activer et démarrer le service
systemctl daemon-reload && systemctl enable --now bedrock
Résultat attendu
Created symlink /etc/systemd/system/multi-user.target.wants/bedrock.service → /etc/systemd/system/bedrock.service.
Le serveur est démarré et écoute (la commande attend 15 secondes avant de regarder)
sleep 15 && systemctl is-active bedrock && journalctl -u bedrock --no-pager -o cat -n 40 | grep -E 'Version:|Accepting clients|Server started' && ss -ltnp | grep ':19132 '
Résultat attendu
active
[2026-09-21 16:07:07:187 INFO] Version: 1.26.51.1
[2026-09-21 16:07:07:557 INFO] Accepting clients on [::]:19132
[2026-09-21 16:07:08:836 INFO] Server started.
LISTEN 0      5                  *:19132            *:*    users:(("bedrock_server",pid=8636,fd=17))

Le serveur prend 350 à 400 Mo de mémoire au repos. Son journal se lit avec journalctl ; les deux avertissements du démarrage, « ALLOW LIST WARNING » (la liste est vide, étape 6) et « TELEMETRY MESSAGE » (les statistiques ne sont pas envoyées), sont normaux.

6Admettre les joueurs et commander le serveur

Chaque commande s'écrit dans la console du serveur avec echo ; la réponse arrive dans le journal. La liste des joueurs admis se remplit par la commande allowlist add, avec le pseudo Minecraft (gamertag) de chaque joueur ; elle est écrite dans allowlist.json. Le vôtre d'abord.

Admettre un joueur, puis lire la réponse
echo 'allowlist add VotrePseudo' > /opt/bedrock/console.in && sleep 2 && journalctl -u bedrock --no-pager -o cat -n 1
Résultat attendu
[2026-09-21 16:07:22:275 INFO] Added VotrePseudo to the allowlist
Les joueurs connectés (« There are 0/8 players online: »)
list
Admet un joueur ; allowlist remove Pseudo le retire ; allowlist list les affiche ; allowlist off ouvre le serveur à tous
allowlist add Pseudo
Donne les droits d'opérateur à un joueur connecté (hors ligne : « No targets matched selector ») ; deop Pseudo les retire
op Pseudo
Expulse un joueur (absent : « Could not find player Pseudo »)
kick Pseudo
Fige le monde pour le copier, dit quand il est prêt (« Data saved. Files are now ready to be copied. »), le libère
save hold, save query, save resume
La liste des commandes, par pages (« Showing help page 1 of 4 »)
help 1
Arrête le serveur proprement (c'est ce que fait systemctl stop bedrock)
stop

7Ouvrir les ports dans le pare-feu

La connexion s'établit en TCP sur le port 19132, puis le jeu passe en UDP sur les ports 19132 à 19140 fixés à l'étape 3. La commande active le pare-feu du système en gardant SSH autorisé, puis ouvre les ports.

Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
apt install -y ufw && ufw allow 22/tcp && ufw allow 19132/tcp && ufw allow 19132:19140/udp && ufw --force enable
Résultat attendu
...
Firewall is active and enabled on system startup
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=19132/tcp --add-port=19132-19140/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=19132/tcp --add-port=19132-19140/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Ouvrir les ports du jeu (firewalld est déjà actif sur openSUSE)
firewall-cmd --permanent --add-port=19132/tcp --add-port=19132-19140/udp && firewall-cmd --reload
Résultat attendu
success
success

8Se connecter au serveur

  1. Sur Windows, Android ou iOS, lancez Minecraft, puis Jouer, l'onglet Serveurs, Ajouter un serveur.
  2. Entrez un nom, l'adresse IP de votre serveur (203.0.113.42) et le port 19132.
  3. Rejoignez avec le pseudo admis à l'étape 6 ; les consoles n'ont pas d'ajout de serveur par adresse.

9Gérer, sauvegarder et mettre à jour le serveur

Voir l'état du service
systemctl status bedrock
Suivre le journal du serveur en direct (Ctrl+C pour sortir)
journalctl -u bedrock -f
Redémarrer
systemctl restart bedrock
Arrêter
systemctl stop bedrock
Vérifier que l'arrêt est propre
systemctl stop bedrock && journalctl -u bedrock --no-pager -o cat -n 12 | grep -E 'stop requested|Quit correctly' && systemctl start bedrock
Résultat attendu
[2026-09-21 16:07:26:617 INFO] Server stop requested.
Quit correctly

Le monde vit dans /opt/bedrock/server/worlds. Le script ci-dessous fige le monde (save hold), l'archive avec les réglages et la liste des joueurs, puis le libère (save resume) ; chaque nuit, il conserve les 7 dernières archives.

Créer le script de sauvegarde
cat > /opt/bedrock/backup.sh << 'EOF'
#!/bin/sh
BACKUP_DIR=/opt/bedrock/backups
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p $BACKUP_DIR
echo 'save hold' > /opt/bedrock/console.in
sleep 5
tar -czf $BACKUP_DIR/bedrock-$DATE.tar.gz -C /opt/bedrock/server worlds server.properties allowlist.json permissions.json
echo 'save resume' > /opt/bedrock/console.in
cd $BACKUP_DIR && ls -t | tail -n +8 | xargs -r rm
EOF
chmod +x /opt/bedrock/backup.sh && chown bedrock:bedrock /opt/bedrock/backup.sh
Tester une sauvegarde tout de suite
su - bedrock -c '/opt/bedrock/backup.sh && ls -la /opt/bedrock/backups'
Résultat attendu
total 8
drwxrwxr-x 2 bedrock bedrock   45 Sep 21 16:17 .
drwxr-xr-x 4 bedrock bedrock  112 Sep 21 16:17 ..
-rw-rw-r-- 1 bedrock bedrock 8167 Sep 21 16:17 bedrock-2026-09-21_16-17.tar.gz
(la taille grandit avec le monde exploré)
Installer et démarrer cron
apt install -y cron && systemctl enable --now cron
Installer et démarrer cron
dnf install -y cronie && systemctl enable --now crond
Installer et démarrer cron
dnf install -y cronie && systemctl enable --now crond
Installer et démarrer cron
zypper -n install cronie && systemctl enable --now cron
Programmer la sauvegarde chaque nuit à 4 h
su - bedrock -c '(crontab -l 2>/dev/null; echo "0 4 * * * /opt/bedrock/backup.sh") | crontab - && crontab -l'
Résultat attendu
0 4 * * * /opt/bedrock/backup.sh

Le jeu se met à jour souvent, et un serveur en retard refuse les joueurs à jour : la mise à jour est le même téléchargement, serveur arrêté, en laissant de côté les trois fichiers qui portent vos réglages et vos joueurs.

Mettre à jour le serveur (serveur arrêté, puis relancé)
systemctl stop bedrock && su - bedrock -c "cd /opt/bedrock && URL=\$(curl -fsSL https://net-secondary.web.minecraft-services.net/api/v1.0/download/links | grep -o 'https://[^\"]*/bin-linux/bedrock-server-[0-9.]*\.zip') && echo \$URL && curl -fsSL -A Mozilla/5.0 -o bedrock-server.zip \$URL && unzip -q -o bedrock-server.zip -d server -x server.properties allowlist.json permissions.json" && systemctl start bedrock
Résultat attendu
https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.26.51.1.zip
(le numéro est celui de la version du moment ; server.properties, allowlist.json et permissions.json ne bougent pas)

Erreurs fréquentes

Serveur prêt

Votre serveur Minecraft Bedrock démarre avec la machine, s'arrête proprement, n'admet que vos joueurs et écoute sur le port 19132. Pour la version Java du jeu, voyez Installer un serveur Minecraft ; pour d'autres jeux, les serveurs de jeux.

💬 Écrivez-nous sur Messenger !