Minecraft : Comment installer BungeeCord et relier des serveurs


Si vous commencez à avoir un premier serveur qui a du succès, ou que vous avez besoin de plusieurs serveurs pour mener à bien votre projet, BungeeCord ne devrait pas tarder à croiser votre chemin
Je l’utilise moi-même depuis quelques années et je vais donc vous partager mon expérience

Comment installer BungeeCord ?
BungeeCord est disponible au format Java, et son installation est donc similaire à celle d’un serveur Spigot
Il faut télécharger le fichier exécutable, le lancer avec java, puis le configurer pour s’adapter à vos besoins

Dans ce guide pas à pas, je vais revenir sur le rôle de BungeeCord, son installation et sa configuration
Si vous avez déjà des bases dans ce domaine, libre à vous de vous rendre directement à la section qui vous intéresse, en utilisant le sommaire ci-dessous

Qu’est-ce que BungeeCord ?

BungeeCord est un serveur (au sens client-serveur), qui sera le seul point d’entrée de vos serveurs une fois installé et configuré (proxy)
L’objectif principal étant de relier plusieurs serveurs Minecraft (Spigot) entre eux

Schéma de synthèse d’une organisation de serveurs avec BungeeCord

Même si vous installez plusieurs serveurs Spigot sur la même machine, ils auront des ports différents pour y accéder, et pour passer à un autre serveur vos joueurs devront se déconnecter puis se reconnecter à un autre
Pas terrible !

Le but de BungeeCord est de permettre une connexion directe d’un serveur à l’autre, sans déconnexion visible
BungeeCord est développé par la même équipe que Spigot, ce qui assure une compatibilité parfaite et un suivi similaire des mises à jour

Pré-requis

Avant de commencer les choses sérieuses, parlons un peu des pré-requis nécessaires pour installer BungeeCord et au moins 2 serveurs Spigot

Système

Comme vous vous en doutez, à partir de deux serveurs lancés et une instance de BungeeCord, mieux vaut avoir une machine dédiée pour faire tourner tout ça sereinement
Il existe désormais des serveurs dédiés abordables (serveurs Kimsufi) ou même un VPS pourra parfaitement faire l’affaire au début (voir les offres OVH)
Pour des serveurs plus fréquentés, un serveur dédié plus puissant sera recommandé (j’apprécie particulièrement la gamme « GAME » chez OVH)

Au niveau du système d’exploitation, à moins d’être en mode test sur son pc, Windows n’est absolument pas conseillé
Un système Linux apportera le minimum nécessaire (inutile d’avoir une interface graphique par exemple) et sera plus stable à long terme
Je vous recommande un système Debian, réputé pour sa fiabilité, ou éventuellement un Ubuntu Server si vous préférez ce système

Pour les aventuriers qui souhaitent hébergeur ce serveur Minecraft chez eux, un Raspberry Pi peut être une bonne alternative (voir à quoi ça ressemble sur Amazon)
Cela vous permet d’avoir un serveur vraiment pas cher à la maison, que vous pouvez laisser tourner 24h/24, même quand votre PC est éteint le serveur sera accessible
Je vais d’ailleurs écrire ce guide en testant sur un Raspberry Pi

Attention : ce tutoriel n’est pas du tout applicable sur les hébergeurs spécialisés Minecraft (OMGServ & compagnie)
Ces hébergeurs disposent d’interfaces spécifiques vous permettant d’installer les choses, et chacun aura un fonctionnement différent

Par contre les commandes sont très proches sur Windows et Linux, donc vous aurez les deux en suivant ce guide

Client SSH (si serveur Linux)

Sur les systèmes Linux, vu qu’aucune interface graphique n’est présente, vous devrez utiliser le terminal pour administrer votre serveur
Mais depuis votre PC cela ne sera pas évident 🙂

Le service SSH, installable sur n’importe quel serveur Linux (et installé par défaut sur les serveurs hébergés ), vous permet de vous connecter au serveur à distance et d’avoir accès au terminal depuis votre PC pour taper les commandes

Mon client SSH, connecté à un Raspberry Pi

Afin de vous connecter à ce genre de serveur, l’installation d’un client peut être nécessaire

  • Sous Linux, le client ssh est déjà disponible de base normalement
    Pour l’utiliser : ssh utilisateur@IP
  • Sous Windows, vous aurez besoin de télécharger un logiciel pour vous connecter
    Par exemple Putty, disponible ici
    Une fois lancé, tapez l’adresse IP dans le champ « Host » et connectez-vous avec vos identifiants

Java

Un autre pré-requis indispensable sur votre serveur, est bien sur java
Si vous avez déjà un serveur Spigot vous le savez, il est indispensable pour démarrer le serveur Minecraft

  • Installation sous Linux :
    sudo apt install openjdk-9-jre
  • Installation sous Windows :
    Rendez-vous sur le site officiel et téléchargez la dernière version disponible

Screen (si serveur Linux)

Le problème avec SSH, c’est que tout ce que vous faites sera coupé à votre déconnexion
Donc à la moindre mise en veille de votre PC, une coupure réseau ou internet, vos serveurs Minecraft s’arrêteront
Ca ne me semble pas terrible 🙂

Une alternative « simple » consiste à utiliser screen sur votre serveur Linux
Screen vous permet de définir des tâches qui continueront de tourner même après votre déconnexion
Et surtout pour lesquelles vous pourrez revenir à l’affichage facilement par la suite
Cela est indispensable pour des serveurs Minecraft, afin de pouvoir voir la console en temps réel

L’installation est très simple :
sudo apt install screen

Une fois installé, voici les commandes utiles :

  • screen -S <nom> : Démarre un nouveau screen, tout ce que vous lancer dans cet écran sera gardé actif même en cas de déconnexion
  • CTRL+A + CTRL+D : Quitter un screen sans le fermer
  • CTRL+D : Fermer un screen qui ne nous est plus utile
  • screen -r <nom> : Revenir à l’intérieur d’un screen créé précédemment

Il y a un petit coup de main à prendre, mais vous devriez vous habituez très rapidement

Téléchargements

Évidemment la dernière chose à faire avant de commencer est de télécharger les fichiers de Spigot et Bungeecord, voici les liens :

plugins essentiels serveur minecraft
  • Spigot : Téléchargement facile
    La solution officielle est néanmoins de télécharger BuildTools est de préparer un lanceur en fonction de votre serveur (voir le Wiki si vous préférez cette méthode)
    Le lien « téléchargement facile » vous permet d’avoir directement un fichier utilisable
  • BungeeCord : Téléchargeable directement sur le serveur Jenkins de SpigotMC

Si votre serveur est sous Linux, je vous conseille de télécharger directement les fichiers avec la commande wget :
wget <url>

Installer les serveurs Spigot

Pour cette partie, vous devez installer au moins deux serveurs Spigot fonctionnel et indépendants pour l’instant

J’ai déjà écrit un guide sur l’installation d’un serveur Spigot, je vous renvoie donc à la lecture de celui-ci pour plus d’informations

Comme vous allez avoir deux serveurs Minecraft sur la même machine (+ BungeeCord), il y a toutefois quelques précautions à prendre :

  • Définir d’entrée une arborescence claire pour vos dossiers, par exemple :
    /var/minecraft/bungee
    /var/minecraft/hub
    /var/minecraft/serveur1
  • Utiliser des ports différents pour chacun des serveurs
    Le port par défaut doit être laissé libre pour BungeeCord, choisissez donc des ports spécifiques pour les serveurs Minecraft, par exemple :
    BungeeCord : 25565
    Hub : 25570
    Serveurs1 : 25575

    Cela se modifie dans server.properties à la racine de vos serveurs
    Si vous avez un pare-feu installé, pensez à autoriser ces 3 ports
  • Si certains de vos plugins bloquent un port (par exemple dynmap), pensez à les changer aussi dans la configuration du plugin, afin d’avoir un accès différent par serveur
  • Redémarrez vos serveurs et essayez de vous y connecter en utilisant les nouveaux ports définis

Notez bien tout cela quelque part, vous en aurez besoin à plusieurs reprises par la suite

Bonus : je vous conseille aussi d’installer le plugin ServerConnect sur l’ensemble de vos serveurs
Cela permet un changement de serveur très simple, avec une commande par serveur (/hub, /serveur1 par exemple)
Pensez à ajouter les permissions à vos joueurs

Encore une dernière chose à faire, maintenant que vos serveurs Minecraft sont fonctionnels, vous devez les configurer pour une utilisation de BungeeCord
Vous avez deux changements à effectuer obligatoirement avant de passer à la suite :

  • Changer l’IP du serveur dans server.properties : Indiquez l’adresse 127.0.0.1 dans server-ip
    Cela évite que vos joueurs se connectent directement sur un serveur sans passer par BungeeCord
  • Ensuite indiquez à Spigot qu’il doit fonctionner avec BungeeCord, en éditant le fichier spigot.yml et en passant la ligne bungeecord à true

Une fois que c’est fait, vous êtes enfin prêt à passer à la suite

Installer Bungeecord

Maintenant que vos serveurs Spigot sont prêts et utilisables, passons à l’objectif principal de cet article

Installation et démarrage

« Installation » est un bien grand mot, ca comme vous allez voir, le fonctionnement est très proche de celle de Spigot : juste à lancer 🙂
Voici les étapes pour démarrer :

  • Rendez-vous dans le dossier de votre arborescence correspondant à BungeeCord, par exemple :
    cd /var/minecraft/bungee
  • Téléchargez le fichier BungeeCord (si pas encore fait) :
    wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar
    Si vous l’aviez déjà fait, assurez-vous qu’il se trouve bien dans le dossier
  • Démarrez un nouveau screen (si serveur Linux)
    screen -S bungee
  • Lancer BungeeCord :
    java -jar BungeeCord.jar
  • Lorsque les messages arrêtent de défiler, BungeeCord est lancé

Sur Windows, l’essentiel se fait dans l’explorateur de fichier
Pour lancer BungeeCord, utilisez une invite de commande pour faire à peu près la même chose (aller dans le dossier BungeeCord et lancer avec java)
De mémoire il faut indiquer le chemin complet de Java pour que l’invite de commande reconnaisse la commande

Configuration

Nous allons maintenant configurer BungeeCord pour qu’ils permettent de relier nos deux serveurs

  • Éteindre BungeeCord
    end
  • Ouvrir le fichier de configuration avec votre éditeur favori, par exemple :
    nano config.yml
  • Éditez les lignes de configuration globales suivantes :
    • listeners > host : indiquez le port par défaut de Minecraft plutôt que celui précisé (donc 25565)
      Cela évitera aux joueurs d’avoir un port à taper
    • listeners > motd : Vous pouvez ici changer le message d’accueil qui s’affichera dans la liste des serveurs
      Le &1 au début par défaut est le code couleur Minecraft correspondant
    • ip_forwarding : Passez ce paramètre à true, cela permet d’avoir la vraie IP des joueurs (et non celle du proxy comme par défaut)
  • Modifiez la liste des serveurs :
    • Par défaut, BungeeCord est configuré avec un seul serveur : « lobby »
    • Dans mon exemple je souhaite avoir un serveur « hub » et un serveur « serveur1 »
      Faites donc les modifications associées dans le paragraphe servers
    • Dans listeners > priorities, indiquez le serveur par défaut (donc remplacer lobby par hub)

Pour ceux qui n’ont pas suivi mes instructions, voici à quoi ressemble mon fichier final (avec le minimum de modifications par rapport à la configuration par défaut, on aurait pu en faire beaucoup plus pour optimiser et clarifier les choses par défaut non valables dans notre cas) :

forge_support: false
connection_throttle_limit: 3
timeout: 30000
online_mode: true
log_commands: false
listeners:
- query_port: 25577
  motd: '&aMinecraftFacile.com - BungeeCord'
  tab_list: GLOBAL_PING
  query_enabled: false
  proxy_protocol: false
  forced_hosts:
    pvp.md-5.net: pvp
  ping_passthrough: false
  priorities:
  - hub
  bind_local_address: true
  host: 0.0.0.0:25565
  max_players: 1
  tab_size: 60
  force_default_server: false
connection_throttle: 4000
groups:
  md_5:
  - admin
log_pings: true
ip_forward: true
prevent_proxy_connections: false
network_compression_threshold: 256
disabled_commands:
- disabledcommandhere
stats: 7e597134-6428-438e-92bf-f38210f7fb8c
permissions:
  default:
  - bungeecord.command.server
  - bungeecord.command.list
  admin:
  - bungeecord.command.alert
  - bungeecord.command.end
  - bungeecord.command.ip
  - bungeecord.command.reload
servers:
  hub:
    motd: '&1Hub'
    address: localhost:25570
    restricted: false
  serveur1:
    motd: '&1Serveur 1'
    address: localhost:25575
    restricted: false
player_limit: -1

Redémarrez le serveur pour appliquer les changements, et quittez le screen pour la suite (CTRL+A, CTRL+D)
Sous Windows vous n’avez rien à faire une fois le serveur relancé, continuez juste dans une autre fenêtre (vous devriez avoir 3 invites de commandes ouvertes : bungee, serveur1 et hub

Tests

Passons maintenant aux tests
Tout ce que nous avons fait à propos de BungeeCord était purement théorique, il est temps de voir si cela fonctionne

Commençons par nous connecter à notre nouveau réseau de serveur :

  • Lancez Minecraft
    Prenez soin d’utiliser la même version du client que sur vos serveurs (si vous avez installé le serveur en 1.14.2, lancez le client avec la version 1.14.2 exactement)
  • Cliquez sur Multijoueur
  • Ajoutez un nouveau serveur
    Dans le champ « Adresse du serveur », saisissez l’adresse ip de votre serveur (fourni par votre hébergeur, ou trouvable avec la commande ifconfig sous Linux et ipconfig sous Windows)
    Par exemple :
    nouveau serveur minecraft
  • Validez et attendez quelques secondes
    Votre « motd » BungeeCord devrait apparaitre au niveau de votre nouveau serveur :
    liste serveur minecraft
  • Connectez-vous

Une fois connecté, vous arrivez normalement sur votre serveur par défaut (hub dans mon exemple) et pouvez passer d’un serveur à l’autre avec /serveur1 et /hub, sans déconnexion (/serveur <nomduserveur> si Server Connect n’a pas été installé)

Aller plus loin

Avant de conclure, je vous ai donc expliqué comment avoir un réseau de serveur ultra basique mais fonctionnel
Il est évidemment possible d’aller bien plus loin, mais je ne pourrais pas tout traiter dans un seul article

Voici quelques notions à connaître et pistes à explorer pour améliorer cette base :

  • Vos serveurs Spigot sont ensuite gérés de manière indépendante, c’est-à-dire qu’il est possible (recommandé), d’ajouter des plugins afin de personnaliser chaque serveur
    Par exemple en installer des portails et des messages de bienvenue sur le hub, et en mettant en place votre style de serveur sur les autres
    Voir cet article pour des idées de plugin essentiels à ajouter sur les serveurs Spigot
  • Votre serveur BungeeCord peut lui aussi être amélioré et personnalisé grâce à de nombreux plugins spécifiques à BungeeCord (voir sur le site de Spigot la catégorie à regarder)
    Par exemple vous pouvez afficher un motd animé, éviter les bots, lier les écrans « TAB » pour afficher l’ensemble des serveurs, centraliser la gestion des permissions, etc.
  • Vous pouvez ensuite ajouter autant de serveurs que vous voulez, sur la même machine ou des serveurs physiques différents afin de répartir la charge
  • N’oubliez pas de sauvegarder régulièrement chaque serveur, ainsi que le serveur BungeeCord
    Je ferais sans doute un article sur le sujet prochainement

Plus vous avancerez dans vos découvertes, plus vous vous rendrez compte des possibilités offertes par cette architecture, et vous lancerez à la recherche de nouvelles informations
Spigot et BungeeCord sont des logiciels énormément utilisés, vous trouverez facilement de l’aide sur Internet (principalement en anglais)

Conclusion

Nous voici à la fin de ce guide sur les bases à connaître pour installer et utiliser un serveur BungeeCord couplé avec des serveurs Spigot

C’était un guide bien complet, peut être que tout n’est pas encore clair si vous avez découvert tout cela aujourd’hui, mais ne vous inquiétez pas
Pratiquez, installez le modèle proposé sur une machine de test, et relisez l’article s’il vous reste des questions
Le concept n’est pas si compliqué une fois les bases appréhendées, mais les débuts peuvent être laborieux

Dans tous les cas, je reste à votre disposition pour toute question sur le sujet
J’utilise moi-même cette architecture depuis plusieurs années, et j’aurais sans doute déjà les réponses aux questions (au moins si vous débutez)

Patrick FROMAGET

Je suis lié au jeu Minecraft depuis plus de 10 ans ! Joueur, développeur, créateur du serveur TopCraft.fr (6 ans d'existence)

Recent Content

Ce site appartient et est exploité par Patrick Fromaget.
Les-differences.com participe au programme d'affiliation Amazon, un programme de publicité pour les affiliés.
En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.
Ce site participe également à d'autres programmes d'affiliation et est rémunéré pour le trafic et les affaires de ces sociétés.