[VPS Oracle] Créez votre propre serveur Minecraft gratuit à vie
Sommaire
VPS Oracle - Cet article fait partie d'une série.
Introduction de la série #
Cet article est le premier d’une série consacrée à l’hébergement de services gratuits à vie sur un serveur privé. L’objectif est de faire découvrir le monde de l’informatique au plus grand nombre tout en partageant des connaissances utiles. Je suis intimement convaincu qu’il est plus facile de comprendre un sujet lorsqu’on y trouve un intérêt et qu’on est prêt à investir un peu de temps. C’est pourquoi je vous montrerai comment créer vous-même votre propre serveur de jeu, serveur VPN, serveur cloud, etc, avec pour seule dépense : un peu de temps.
Etant donné que ces articles visent le plus grand nombre, je m’efforcerai du vulgariser au maximum les détails techniques et je considérerai que les lecteurs utilisent un ordinateur Windows 10 ou 11 à jour.
Utilisateurs de Linux : vous êtes suffisamment intelligents pour adapter ces articles à votre système d’exploitation.
Utilisateurs de MacOS, vous êtes suffisamment riches pour acheter un service payant donnant le même résultat ou un autre ordinateur avec Windows.
N’oubliez pas que certains outils ou logiciels peuvent changer dans le temps, c’est pourquoi le plus important est de comprendre la méthodologie afin de pouvoir l’adapter à vos besoins.
J’espère que ces articles vous seront utiles et que vous apprendrez des choses !
Oracle Cloud Infrastructure (OCI) #
Présentation #
Oracle est une entreprise américaine spécialisée dans la vente de services informatique, notamment le système de gestion de base de données Oracle Database, le serveur d’applications Oracle Weblogic, le progiciel Oracle E-Business et l’offre de cloud computing Oracle Cloud Infrastructure (OCI)
C’est cette dernière qui va nous intéresser car OCI propose des services “Always Free”, c’est-à-dire gratuit à vie. En se rendant sur cette page on peut consulter tous les services éligible à cette offre, il y en a beaucoup et en réalité ceux qui vont nous intéresser correspondent aux catégories “compute
” et “storage
”.
Ces catégories correspondent à la puissance de calcul et à l’espace de stockage que nous offre Oracle. Généralement on parle de “Virtual Private Server” (VPS), c’est-à-dire un serveur privé virtuel.
Ce qu’il faut comprendre c’est qu’Oracle ne nous donne pas un serveur physique, en effet ce type de machine coûte très chère (comptez 5000 euros pour un serveur professionnel premier prix). Ce que nous met à disposition Oracle ce sont des machines virtuelles (en anglais ”virtual machines”, qu’on contracte souvent par “VM”).
Une VM c’est simplement un ordinateur simulé par un autre ordinateur plus puissant !
Ça peut paraître bizarre mais en réalité c’est très pratique car un ordinateur peut simuler plusieurs VMs, chaque VM peut avoir un rôle différent avec des caractéristiques différentes. On peut allouer une certaine puissance de calcul et un espace de stockage à une VM et le modifier à tout moment.
Cela permet d’être très flexible et de gérer facilement tous nos services depuis une seule machine.
L’offre “Always Free” #
Avec l’offre “Always Free” d’OCI, voici à quoi nous avons droit :
Si on résume :
- Il est possible de créer 4 VMs de type Ampere A1 ou 2 VMs de type Standard.E2.1.Micro
- Nous disposons de 4 OCPUs (on peut comparer ça à un cœur de processeur, c’est la puissance de calcul)
- Nous disposons de 24 Go de RAM
- Nous disposons de 200 Go de stockage
- Chaque VM se verra allouée au minimum 47 Go de stockage pour son bon fonctionnement
Nous pouvons faire ce que l’on veut de ces ressources, nous pouvons créer 4 ou 2 VMs et répartir les ressources équitablement ou bien en créer seulement 1 avec toutes les ressources disponibles.
Evidemment moins une VM a de ressources, moins celle-ci sera puissante, il faut donc bien choisir les ressources à allouer en fonction de notre besoin.
Toutes ces ressources sont largement suffisantes pour créer un serveur Minecraft puissant.
Autres solutions #
Maintenant comparons les autres solutions pour faire son propre serveur Minecraft, généralement il y 3 solutions :
- Héberger son serveur sur sa propre machine
- Utiliser un hébergeur spécialisé gratuit type Aternos
- Utiliser un hébergeur payant type OVH
Utiliser sa propre machine est gratuit (si on ne compte pas l’électricité consommée) et permet d’avoir le contrôle total sur son serveur, en revanche cela nécessite d’avoir une machine avec de bonnes performances et une connexion Internet rapide sans quoi le serveur ne sera pas de bonne qualité.
De plus il sera nécessaire d’ouvrir certains ports sur votre routeur Internet (votre box wifi) pour permettre à vos amis de se connecter à votre serveur. Cela peut être difficile à réaliser en fonction de votre fournisseur d’accès Internet (FAI) et cela peut comporter des risques de sécurité pour toutes les personnes utilisant le routeur. Enfin, le serveur ne sera accessible que lorsque votre machine sera allumée.
C’est une solution que je ne recommande pas mais qui est cependant possible.
Utiliser un hébergeur spécialisé comme Aternos est gratuit, simple et rapide. En effet, une fois votre compte créé, on peut très rapidement générer un serveur Minecraft qui sera tout de suite accessible et jouable.
En revanche ce serveur ne pourra accueillir que 10 personnes maximum et ne peut être qu’en Vanilla (pas de plugins, de mods ou de maps personnalisées). Si vous voulez débloquer ces fonctionnalités vous devrez payer. De plus, vous n’avez aucun contrôle sur le serveur, ce qui veut dire qu’à n’importe quel moment Aternos peut le supprimer. Ceci arrive régulièrement car ils ne possèdent pas des serveurs de façon illimité, pour pouvoir proposer leur service à suffisamment de monde ils doivent donc trier.
Généralement si votre serveur est inactif plus d’une ou deux semaines celui-ci se fera supprimer pour être donné à autre utilisateur. Et oui, utiliser des services cloud c’est en réalité utiliser l’ordinateur de quelqu’un d’autre, si ce service est gratuit n’oubliez pas que le réel propriétaire de la machine peut faire ce que bon lui semble.
C’est donc une solution que je recommande uniquement si vous souhaitez un petit serveur Vanilla rapidement et que vous ne comptez pas beaucoup jouer dessus.
Utiliser un hébergeur payant comme OVH règle le soucis du contrôle, en effet vous payez une certaine somme par mois pour un VPS. Pour rappel VPS signifie “Virtual Private Server”, comme indiqué dans le nom, ce serveur est privé, votre hébergeur vous le fournit et n’y touchera pas tant que vous payez (même si ça n’exclus pas des potentiels problèmes physiques comme un incendie des locaux). Comme vous avez le contrôle total sur ce serveur rien ne vous empêche d’en faire un serveur de jeu mais aussi un petit cloud personnel ou un serveur VPN…
C’est selon moi la meilleure solution, malheureusement celle-ci est payante. Plus vous avez besoin d’un VPS puissant plus le coût sera élevé, voici un aperçu des prix chez OVH :
Pourquoi une telle offre ? #
C’est là qu’intervient OCI avec son offre “Always Free”, celle-ci règle les problèmes précédents en plus d’être gratuit à vie ! Cela paraît trop beau pour être vrai, alors pourquoi une telle offre existe ? Et bien c’est simple, Oracle est un des géants du Net mais l’entreprise a pris beaucoup de retard sur le marché du Cloud comparé à ses concurrents :
Dans un milieu aussi concurrentiel, avec des acteurs qui proposent des prix très bas (ce que fait Amazon avec AWS), qui proposent un écosystème unique largement utilisé (ce que fait Microsoft avec Azure ou Google avec son Cloud), la seule façon de rester compétitif c’est d’attirer du monde.
La stratégie d’Oracle est de proposer ses services “Always Free” pour attirer un maximum de monde, leur but est de vous habituer à leur plateforme, leurs technologies, leurs services jusqu’à ce que vous franchissiez le pas. Et ainsi transformer un maximum d’utilisateurs “Always Free” en futurs clients.
Ce n’est pas un problème en soit, c’est la stratégie de beaucoup d’entreprise de vous proposer des services gratuits super efficaces mais limités, il faut simplement en avoir conscience.
Dans notre cas, ça nous arrange bien !
Inconvénients de l’offre #
Même si l’offre est vraiment très propre, elle n’est pas non plus parfaite. Il y a certains inconvénients qu’il faut garder en tête :
- Pour créer un compte, il faudra renseigner vos informations personnelles et bancaires or les cartes virtuelles ne sont pas acceptées, il faudra mettre votre vraie carte bleu (plus d’informations sont données par la suite).
- Vous avez accès à toutes les fonctionnalités, si vous utilisez des services payants par mégarde vous serez automatiquement débités.
- Si vous avez des problèmes avec vos services “Always Free”, ne comptez pas sur le support d’Oracle pour vous aider. Comme vous ne rapportez rien à l’entreprise, vous n’êtes clairement pas prioritaire voir même pris en compte.
- Il se peut qu’un jour Oracle retire l’offre et vous demande de payer pour continuer à utiliser des services auparavant “Always Free”.
Création du serveur #
Bien, après cette longue introduction (qui était tout de même nécessaire) nous pouvons vraiment commencer à créer le serveur.
Création d’un compte Oracle #
Tout d’abord, rendez vous sur la page d’accueil d’OCI et cliquez sur “Démarrer gratuitement” :
Renseignez vos informations et validez le captcha, ici première chose un peu bizarre mais vous devez renseignez votre nom et prénom en majuscules (il y a une raison que j’explique plus loin) :
Vérifiez votre adresse mail :
Vous devriez arriver sur cette page :
Créez un mot de passe robuste, confirmez le, puis sélectionnez le champ “Individual” (pour un usage personnel).
Créez un nom d’utilisateur pour votre compte (c’est ce nom qui vous sera demandé pour vous connecter) et choisissez votre région.
Vous devez maintenant renseigner votre adresse et numéro de téléphone, tout comme votre nom et prénom renseignez les en majuscules :
Vous allez maintenant devoir renseignez vos informations bancaires, comme précisé par Oracle vous ne serez pas prélevé, en revanche vous allez devoir faire face au système de vérification Cybersource qui est … comment dire … assez stupide.
En effet, ce système va vérifier l’exactitude des informations renseignées depuis le début (nom, prénom, adresse, téléphone…) par rapport à celles inscrites sur votre carte bleue.
De plus ce système est sensible à la casse, or les informations transmises par les banques européennes sont généralement en majuscules, d’où ma recommandation depuis le début.
Je me suis arraché les cheveux plusieurs jours avant de trouver la solution et voici quelques informations supplémentaires que j’ai pu trouver :
- Ne créez pas votre compte avec un VPN actif, Cybersource peut le détecter et considérer cette action comme frauduleuse.
- N’utilisez pas de cartes virtuelles ou pré-payées, Cybersource ne sera pas capable de vérifier la carte.
Avant de continuer vérifiez bien vos informations :
Et ajoutez votre carte bancaire :
Si après tout cela vous obtenez cette erreur, ne comptez pas sur le service client d’Oracle, eux-mêmes ne savent pas comment fonctionne Cybersource, vous allez devoir faire plusieurs tentatives par vous-même, bonne chance !
Si tout c’est bien passé vous recevrez un mail pour vous indiquer que votre compte Oracle est créé !
Lors de votre première connexion Oracle vous demandera de paramétrer l’authentification à deux facteurs. C’est très simple, il suffit d’installer sur votre smartphone une application OTP (One Time Password) comme FreeOTP ou Google Authenticator et de scanner le QR Code donné par Oracle.
Vous obtiendrez un code à 6 chiffres qui change toutes les 60 secondes, c’est ce chiffre que vous devrez renseigner lorsque vous vous connectez à votre compte Oracle.
Création d’une instance #
Une fois arrivé sur votre Dashboard Oracle Cloud, rendez-vous dans l’onglet Compute > Instances :
Puis créez une nouvelle instance :
Renommer votre instance et choisissez votre compartiment (un compartiment est juste une façon de regrouper des choses ensembles, vous pouvez laisser le compartiment root par défaut). Laissez Oracle choisir le domaine et ne touchez pas au paramètre de sécurité, mais ouvrez le choix des images :
Assurez-vous de choisir une image avec la mention “Always-Free-eligible
”.
Pour ma part je choisis une image Oracle Linux 8
:
Pour le type d’instance je choisis une VM Ampere A1
:
Puis choisissez les ressources à allouer à votre serveur Minecraft. Généralement un seul OCPU est suffisant, mais la RAM dépend de votre serveur :
Vanilla | Plugins | Mods |
---|---|---|
Minimal : 2 Go | Minimal : 3 Go | Minimal : 4 Go |
Recommandé : 4 Go | Recommandé : 6 Go | Recommandé : 8-10 Go |
Pour cet exemple je vais paramétrer le serveur avec 1 OCPU et 10 Go de RAM :
Normalement vous possédez déjà un réseau virtuel, sélectionnez-le et laissez les paramètres par défaut :
Vous pouvez créer un autre réseau virtuel, si vous créez plusieurs instances dans le même réseau virtuel, ces instances pourront communiquer entre elles. Si vous voulez cloisonner vos instances vous devrez les placer dans des réseaux virtuels différents (attention vous ne pouvez créer que deux réseaux virtuels). Vous pouvez laisser les paramètres par défaut :
Si vous êtes familier avec SSH, vous pouvez déposer votre clé publique. Dans notre cas, nous allons générer une paire de clés, puis télécharger la clé privée sur notre machine personnelle.
Voici à quoi ressemble le fichier :
Laissez les paramètres par défaut pour le Boot Volume (pour faire simple Oracle gère le chiffrement du volume d’initialisation de votre instance, c’est une couche de sécurité supplémentaire) :
Puis attachez un espace de stockage à votre instance. Vous devrez en créer un nouveau, lui donner un nom, l’associer à un compartiment et définir sa taille.
Si vous laissez le choix par défaut votre instance disposera de 47 Go d’espace, ce qui est largement suffisant, si vous choisissez “Custom” vous pourrez mettre plus d’espace.
Vous pouvez laisser les autres paramètres par défaut et attacher votre espace de stockage :
Et voilà ! Tous les paramètres de votre instance sont configurés, vous pouvez la créer.
Si vous voyez ce message en rouge lorsque vous essayez de créer votre instance, cela signifie qu’Oracle n’a actuellement plus de place pour créer des VMs dans votre région. Il n’y a pas d’autres solutions que d’attendre et de réessayer… Jusqu’à réussir.
Généralement il suffit d’attendre quelques minutes, quelques heures, parfois quelques jours, mais ne désespérez pas il y aura de la place pour votre instance. Dans mon cas j’ai attendu ~30 minutes.
Une fois l’instance créée vous serez redirigé vers sa page (ici l’instance est en train d’être provisionnée) :
Après quelques minutes l’instance est prête à être utilisée :
Vous pouvez retrouver toutes vos VMs dans l’onglet “Instances” :
Accéder à son instance #
Bien maintenant que notre VM est créée, il faut s’y connecter à distance !
Si vous n’avez jamais administré un serveur, sachez qu’un serveur dispose rarement d’une interface graphique qu’on appelle GUI (”Graphical User Interface”), cela permet de gagner de l’espace de stockage et des performances.
Ceci veut dire qu’il n’y a aucun bouton ou fenêtres, la seule chose d’affiché est du texte, c’est ce qu’on appelle une CLI (”Command Line Interface”).
Voici à quoi ressemble une CLI :
Pour indiquer une action à votre serveur, à la place d’appuyer sur un bouton on va lui envoyer des commandes, voici une liste de 5 commandes de base à retenir :
# Permet de changer de répertoire, comme si on se baladait dans les dossiers de notre machine
cd [repertoire]
# Permet de lister les dossiers et fichiers du répertoire courant
ls
# Permet d'éditer ou de créer un fichier
nano [fichier]
# Permet de supprimer un fichier
rm [fichier]
# Permet de créer un répertoire
mkdir [répertoire]
Il existe énormément de commandes possibles et le but n’est pas de les retenir, celles-ci seront suffisantes pour créer notre serveur Minecraft. Pour les curieux voici une liste de commandes utilisées pour administrer un serveur Linux : Kinsta
D’accord super, mais comment fait-on pour avoir accès à la CLI de notre serveur ?
C’est là qu’intervient le protocole SSH.
Le protocole SSH #
Un terminal va permettre d’exécuter des commandes sur la machine distante depuis sa propre machine. L’administration à distance est aujourd’hui vitale lorsque l’on gère des serveurs, vous imaginez bien que l’on ne va pas se déplacer physiquement pour effectuer une opération, surtout si nous devons administrer des milliers de serveurs parfois dans plusieurs pays.
SSH apporte beaucoup fonctionnalités mais ce protocole est surtout utilisé car il dispose de nombreux mécanismes de sécurité.
Quelques liens pour en apprendre plus sur SSH :
- IT-Connect (🇫🇷)
- Ionos (🇫🇷)
- Techtarget (🇬🇧)
- Keyfactor (🇬🇧)
Via cmd / powershell #
Le protocole SSH est installé de base sur les dernières versions de Windows 10 et 11. Pour vous connecter, ouvrez un shell de type cmd ou powershell dans le dossier contenant votre clé SSH.
Pour cela vous pouvez appuyer sur la touche Windows
et tapez le nom “cmd” ou “powershell”.
Il faudra vous placer dans le bon répertoire avec la commande cd
→ Exemple : cd C:\Users\[votre nom d'utilisateur]\Desktop\Server_Minecraft
Vous pouvez également faire un clic droit tout en maintenant la touche Shift
:
La commande pour se connecter à votre serveur est :
ssh opc@[ip] -i [cle_ssh]
Par exemple :
ssh opc@69.69.69.69 -i ssh-key-2024-06-05.key
Acceptez le “fingerprint” en tapant “yes” si on vous le demande. Si vous obtenez une erreur de type “bad permissions” c’est que votre clé SSH à des droits trop importants. Pour régler ce problème, rendez-vous dans les propriétés de votre clé SSH puis dans l’onglet Sécurité, sélectionnez le groupe Utilisateurs et supprimer l’héritage.
Plus personnes ne peut utiliser la clé, il faut maintenant vous rajouter :
Et vous donner tous les droits :
Vous pouvez désormais vous connecter à votre serveur Minecraft en SSH, l’encadré en rouge vous indique que vous êtes connecté en tant que l’utilisateur opc
sur le réseau virtuel virtual-network-1
, vous vous trouvez dans le répertoire /home/opc
qui correspond à ~
:
Via PuTTY #
Le procédé ci-dessus est un peu compliqué mais pratique car il n’y a besoin de rien installer sur votre machine. Il existe cependant des outils pour simplifier la connexion SSH, le plus connu est PuTTY.
Rendez-vous sur la page d’installation de PuTTY et télécharger l’installeur :
Une fois PuTTY installé, lancez l’application “PuTTYgen” et appuyez sur “Load” :
Chargez votre clé SSH privée :
Puis sauvegardez cette clé privée dans un format .ppk (utilisable par PuTTY) :
Vous obtiendrez ce genre de fichier :
Ouvrez maintenant l’application “PuTTY” et rendez-vous dans l’onglet Connection > SSH> Auth, importez le fichier .ppk précédemment créé :
Puis dans l’onglet “Session” renseignez les paramètres SSH et sauvegardez la session :
Vous n’aurez pas besoin de retaper tous les paramètres SSH désormais, il vous suffira de “Load” la session que vous venez de sauvegarder.
Lorsque vous vous connectez au serveur, acceptez le fingerprint :
Et voilà ! Vous êtes connectés au serveur en SSH !
Transférer des fichiers #
Vous savez maintenant comment accéder à votre instance et vous avez appris quelques commandes pour administrer votre serveur, mais comment faire pour transférer des fichiers de votre machine locale à votre serveur ou inversement ?
C’est là qu’intervient le protocole FTP !
Le protocole FTP #
Comme son nom l’indique, le “File Transfer Protocol” (FTP) est un protocole de transfert de fichiers. Il permet l’échange de données entre un ordinateur, le client FTP, et un serveur, l’hôte FTP. Ce serveur héberge les données de votre site web ou de vos applications afin de faciliter leur mise en ligne, leur migration ou leur partage, dans notre cas c’est le serveur Minecraft !
Via FileZilla #
Nous allons utiliser le logiciel FileZilla pour transférer des fichiers via le protocole FTP. Pour cela il faut d’abord télécharger le logiciel sur notre machine locale via cette page.
Une fois FileZilla installé il suffit de paramétrer la connexion à notre serveur Minecraft comme suit :
- Ouvrez le gestionnaire de site
- Créez un nouveau site
- Nommer le site
- Sélectionner le bon protocole (ici SFTP)
- Renseignez l’adresse IP de votre serveur
- Renseignez le port à utiliser (ici 22)
- Choisissez l’authentification avec un fichier de clef
- Renseignez le nom d’utilisateur
- Renseignez le fichier de clef
- Enregistrez les paramètres
Lorsque vous vous connectez en FTP à votre serveur voici ce que vous voyez :
- L’arbre des dossiers de votre machine locale
- L’arbre des dossiers de votre serveur
- Les fichiers du répertoire courant de votre machine locale
- Les fichiers du répertoire courant de votre serveur
Pour tester le bon fonctionnement, je crée un fichier texte sur ma machine locale puis je le transfère sur mon serveur :
Depuis mon accès SSH, je liste les fichiers (avec ls
) et j’affiche le contenu de celui-ci (avec cat
), je vois bien que le fichier texte a été transféré.
Nous sommes maintenant prêts pour créer le serveur Minecraft !
Serveur Minecraft Vanilla #
Installer java #
Tout serveur Minecraft a besoin de java
pour fonctionner, nous allons donc installer le “Java Development Kit” (JDK) sur notre serveur. Pour trouver la dernière version disponible voici la commande à exécuter :
yum list jdk*
Ne soyez pas surpris, j’utilise le terminal Hyper, l’apparence est légèrement différente mais les commandes ne changent pas
Nous allons installer la dernière version “headless”, cette version peut être différente pour vous, prenez la dernière version disponible, voici la commande à exécuter chez moi :
sudo yum install jdk-22-headless.aarch64
Pour vérifier que java est bien installé :
java --version
Installer le serveur Minecraft #
Nous arrivons enfin à la partie excitante ! Pour installer le serveur Minecraft vous devez d’abord récupérer le fichier .jar
sur le site officiel.
Une fois le fichier .jar récupéré sur votre machine locale, créez un dossier sur votre VM pour votre serveur Minecraft Vanilla et transférez le .jar dans ce dossier.
Depuis votre accès SSH, rendez-vous dans ce dossier et exécuter cette commande :
java -Xms1G -Xmx2G -jar server.jar nogui
Xms
permet de spécifier la RAM minimale à allouer à votre serveurXmx
permet de spécifier la RAM maximale que peut utiliser votre serveur
Vérifiez toujours que la RAM minimale allouée soit suffisante pour votre serveur et que la RAM maximale ne soit pas égale ou supérieure à la RAM que dispose votre VM.
En effet si votre VM dispose de 2Go de RAM et que vous allouez 2Go à votre serveur Minecraft votre VM risque de crasher, il faut toujours garder au moins 1 ou 2Go que votre VM peut utiliser pour d’autres ressources.
De nombreuses lignes vont apparaître dont celle-ci :
Ce message indique que vous devez accepter les EULA (ce sont les conditions générales d’utilisations) pour pouvoir lancer le serveur Minecraft.
Si vous listez le répertoire courant vous verrez que le serveur a créé tous les fichiers et dossiers nécessaires à son bon fonctionnement dont le fichier eula.txt
.
Editez ce fichier avec la commande :
nano eula.txt
Changez la valeur “false” par “true” :
CTRL
+ X
puis Y
puis la touche Entrée
. Si vous ne souhaitez pas enregistrer vos changement appuyez sur la touche N
à la place de la touche Y
.Vous pouvez désormais relancer votre serveur avec la même commande :
java -Xms1G -Xmx2G -jar server.jar nogui
Votre serveur est en train de générer les différents mondes, jusqu’à ce que vous obteniez le message “Done”
CTRL
+ C
ou écrire stop
On pourrait croire que ça y est notre serveur est opérationnel, malheureusement pas encore 😭 (courage c’est bientôt fini).
Si vous essayez de vous connecter à votre serveur Minecraft depuis le jeu vous n’y arriverez pas, tout simplement parce que nous n’avons pas ouvert le port pour le jeu Minecraft !
Configuration du pare-feu #
En réalité, toutes les VMs que nous créons se trouvent derrière un pare-feu, le principe du pare-feu est d’autoriser ou de bloquer les communications entre nos VMs et l’extérieur.
Pour communiquer avec l’extérieur notre VM peut utiliser de nombreux protocoles et chacun d’entres eux possède un port par défaut, par exemple :
- Le port 80 et 443 sont utilisés par les protocoles
HTTP
etHTTPS
pour un site web - Le port 25 est utilisé par le protocole
SMTP
pour le transfert de mails
De base sur un serveur Oracle, tous les ports sont bloqués par défaut sauf le port 22 pour le protocole SSH
qui nous permet d’administrer la machine.
Nous devons donc ouvrir le port utilisé par le serveur Minecraft, c’est-à-dire le port 25565 :
Pour cela rendez-vous sur la page d’instance de votre serveur et cliquez sur le “subnet” :
Puis dans la “Security List” de ce subnet :
Comme vous pouvez le remarquer dans la liste des “Egress Rules” tous les ports sont bloqués par défaut :
Seul le port 22 est autorisé dans les “Ingress Rules” :
Nous allons rajouter le port 25565, pour cela appuyez sur “Add Ingress Rules” puis ajoutez une règle pour autoriser n’importe qui (0.0.0.0/0) à accéder au port 25565 via TCP et UDP :
Pour que le serveur prenne en compte ces changements, vous devez exécutez ces commandes :
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --permanent --zone=public --add-port=25565/udp
sudo firewall-cmd --reload
Et obtenir le message “success” :
Lancement du serveur #
Votre serveur Minecraft Vanilla est enfin prêt !
Vous pouvez tenter de vous connecter sur votre serveur depuis le Launcher :
Et voilà ! Vous n’avez plus qu’à partager les informations de votre serveur à vos amis pour jouer ensemble :
Serveur Minecraft avec plugins - PaperMC #
Créer un serveur Minecraft Vanilla c’est cool, mais créer un serveur avec des plugins c’est mieux ! Les plugins Minecraft permettent d’améliorer très largement l’expérience du jeu sans pour autant changer le code source de Minecraft (contrairement aux mods). L’avantage c’est qu’on peut ajouter autant de plugins que l’on veut sur notre serveur (tant que celui-ci est assez puissant), de leur côté les joueurs n’ont besoin de rien faire.
Créons notre serveur Minecraft avec des plugins !
Installation des plugins #
Pour commencer vous allez devoir télécharger le fichier .jar d’un serveur capable de faire tourner des plugins. Il existe plusieurs possibilités, pour ma part je choisirai PaperMC (car c’est le plus utilisé) :
Une fois le fichier .jar récupéré, créez un dossier spécialement pour ce serveur et transférez le .jar dans celui-ci :
Le fonctionnement est exactement le même qu’un serveur Vanilla, rendez-vous dans ce dossier depuis votre accès SSH puis lancez le serveur en allouant la RAM nécessaire :
java -Xms1G -Xmx3G -jar server-paper.jar nogui
Le serveur va créer les dossiers et fichiers nécessaires à son bon fonctionnement puis vous devrez accepter les EULA comme vu précédemment avec le serveur Vanilla :
Si vous relancez votre serveur celui-ci sera opérationnel, mais pour le moment nous n’avons installé aucun plugins.
Pour l’exemple je vais installer 3 plugins populaires :
- WorldEdit → fonctionnalités de constructions / destructions avancées
- EssentialX → énormément de fonctionnalités nécessaires à d’autres plugins
- BlueMap → génération du monde Minecraft dans une interface web
Pour chaque plugin que vous voudrez installer vous devez vous assurer que celui-ci est compatible avec votre serveur.
Chaque plugin correspond à un fichier .jar, une fois les fichiers téléchargés je les transfère sur mon serveur dans le dossier “plugins” (Paper a automatiquement créé ce dossier, il est possible que vous deviez le créer vous-même si vous utilisez un autre serveur comme Spigot) :
Pour installer les plugins vous n’avez plus qu’à relancer votre serveur !
Configuration des plugins #
Certains plugins vous demanderont de les configurer, c’est à vous de lire la documentation de chaque plugin pour comprendre s’il y a des choses à modifier ou non. Dans notre cas il n’y a que BlueMap que nous devons configurer.
Rendez vous dans le fichier plugins > BlueMap > core.conf, puis acceptez d’utiliser BlueMap en changeant “false” par “true” :
BlueMap utilise le port 8100 par défaut pour l’application web, comme vous pouvez le voir dans le fichier webserver.conf :
Vous pouvez changer ce port si vous le souhaitez, mais dans tous les cas il faudra l’autoriser sur le firewall pour que le plugin soit fonctionnel.
Une fois le port ajouté sur le firewall, n’oubliez pas de recharger la configuration du firewall sur votre VM :
sudo firewall-cmd --permanent --zone=public --add-port=8100/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8100/udp
sudo firewall-cmd --reload
Vous devriez avoir le message “Success” qui apparait :
Lorsque vous lancez votre serveur celui-ci vous indique que le plugin BlueMap est opérationnel :
Vous pouvez vous rendre sur l’url http://[IP_de_votre_VM]:8100
et voir que votre monde a bien été pris en compte par BlueMap :
Vous savez désormais créer un serveur Minecraft et installer des plugins !
Server Minecraft moddé - Forge #
Nous allons maintenant voir comment installer un serveur Minecraft avec des mods.
La différence entre un serveur moddé et un serveur avec des plugins c’est que les mods changent le code source du jeu, deux personnes ne peuvent pas jouer avec un code source différent car ce n’est pas le même jeu !
Cela implique que si vous décidez de créer un serveur Minecraft avec les mods X et Y, toutes les personnes qui voudront jouer sur votre serveur devront également avoir les mods X et Y installés sur leur machine et dans la même version !
[Côté Client] - Prérequis #
Pour installer un mod sur sa machine locale vous aurez besoin de télécharger l’application CurseForge. Celle-ci permet d’installer des mods sur de nombreux jeux. Rendez-vous sur sa page de téléchargement et installez la version “Overwolf” :
Suivez le processus d’installation (il est très simple), une fois l’application installée choisissez le jeu Minecraft :
[Côté Client] - Installation des mods #
Pour cet exemple nous allons installer le mod “ Pixelmon” permettant de jouer à Pokémon sur Minecraft !
Cliquez sur “Browse” et sur le mod que vous voulez installer :
La dernière version de Minecraft disponible pour ce mod est la 1.20.2, cependant cette version est en “Beta” cela veut dire que le mod comporte de nouvelles fonctionnalités mais n’est pas forcément stable.
Vous pouvez retrouver toutes les versions disponibles dans l’onglet “Versions” :
Si vous cliquez sur le bouton “Install” (1), CurseForge installera la dernière version stable (release) du mod, ici la version en 1.16.5, mais vous pouvez choisir d’installer la version beta en cliquant sur le bouton à droite (2) si vous le souhaitez :
Ce qui est important de retenir c’est qu’ici la version pour “serveur” n’est disponible qu’en version stable (release), donc nous allons télécharger la version en 1.16.5 :
Une fois le mod installé, vous pourrez le retrouver sur votre onglet “My Modpacks” :
Si vous appuyez sur “Play”, CurseForge va automatiquement lancer votre Launcher Minecraft et charger le mod :
Votre mod est bien installé côté client, nous allons maintenant installer ce mod sur notre VM. Retenez bien que toutes les personnes qui voudront jouer sur votre serveur devront au préalable installer le mod sur leur machine.
[Côté Server] - Installation des mods #
Un serveur moddé est un serveur Forge
, pour l’installer le processus diffère légèrement d’un serveur avec plugins. Pour commencer, récupérez le mod sur CurseForge, avec le bouton “Download Server Pack” :
Créez un dossier pour votre serveur Forge sur votre VM et transférez le .zip du modpack :
Dézippez le contenu de ce fichier avec la commande :
unzip [nom_du_fichier]
Vous pouvez supprimer le fichier .zip.
De nombreux fichiers et dossiers ont été créés, notamment des fichiers .sh, ces fichiers sont des scripts, mais pour le moment ces scripts ne sont pas exécutables. Pour leur rajouter ce droit nous devons écrire la commande :
chmod u+x *.sh
Exécutez le fichier “Install.sh”, celui-ci va installer le serveur Forge et tous les fichiers .jar correspondant aux mods du modpack :
./Install.sh
Vous pouvez désormais lancer votre serveur moddé avec la commande :
./ServerStart.sh
Et là c’est le drame, le serveur ne se lance pas et une grosse erreur est à l’écran !
Mais pas de panique c’est tout à fait normal, et oui ce mod est assez ancien, en réalité nous avons installé une version de java trop récente pour lui. J’ai fait exprès de prendre ce modpack pour vous montrer ce scénario car celui-ci arrive régulièrement.
Si nous consultons la documentation du mod Pixelmon, nous voyons bien que nous avons besoin de Java 8 (pour la version stable) et non pas d’une version supérieure :
Nous allons donc installer Java 8 (correspondant au jdk11) avec la commande :
sudo yum install jdk-11-headless.aarch64
Nous avons maintenant 2 versions de Java disponibles sur notre VM, pour utiliser la bonne il suffit d’exécuter la commande suivante puis de choisir le numéro correspondant à la version que nous voulons utiliser :
sudo update-alternatives --config java
Pour vérifier que nous avons bien changer de version exécutons la commande :
java --version
Parfait nous pouvons maintenant relancer le serveur avec ./ServerStart.sh
, puis acceptez les EULA :
Et notre serveur moddé est prêt ! Nous pouvons maintenant jouez dessus avec le modpack Pixelmon d’installé :
Vous savez désormais comment créer votre propre serveur Minecraft moddé !
Améliorations #
Nous avons vu en détails comment créer un serveur Minecraft Vanilla, Paper et Forge ainsi que la configuration de certains plugins ou mods. Cependant s’arrêter à ce stade serait dommage car nous n’exploitons pas encore toutes les possibilités de notre VM.
Je vais vous montrer certaines améliorations qui changent tout !
Une VM, plusieurs serveurs #
Vous avez dû remarquer jusqu’à présent que nous ne lancions qu’un seul serveur Minecraft à la fois, mais en réalité il est tout à fait possible d’en lancer plusieurs sur la même VM !
Si vous ouvrez plusieurs terminaux SSH qui accèdent à votre VM et que vous essayez de lancer le serveur Vanilla et Paper en même, vous obtiendrez un message d’erreur qui vous informe que le port 25565 est déjà utilisé.
C’est tout à fait normal car les deux serveurs possèdent la configuration de base avec le même port par défaut, mais il est possible de changer cela !
En ouvrant la configuration d’un des deux serveurs qui se trouve dans le fichier server.properties
, vous verrez 2 paramètres avec le nombre 25565 :
query.port
qui correspond au port UDP du serveurserver.port
qui correspond au port TCP du serveur
Si vous changez ces paramètres avec le nombre 25564 par exemple, que vous ouvrez ce port sur le firewall Oracle et que vous n’oubliez pas de charger la configuration du firewall dans la VM comme vu dans les points précédents, vous pouvez désormais lancer votre serveur Vanilla et votre serveur Paper en même temps !
Faites attention à bien gérer la RAM disponible de votre VM, gardez toujours 1 ou 2 Go de RAM strictement allouée à votre VM et rien d’autre.
Ici notre VM dispose de 10Go et la RAM allouée maximum pour les deux serveurs est de : 2+3=5 Go, donc pas de soucis.
Plus il y a de serveurs en même temps, plus de puissance de calcul sera nécessaire, pensez également aux OCPUs.
Ouvrir son serveur aux versions crackés #
Peut-être que certains de vos amis n’ont pas acheté le jeu et aimeraient tout de même s’amuser avec vous, il est tout à fait possible d’ouvrir son serveur aux versions crackés !
Pour cela rendez-vous dans le fichier server.properties
et changez le paramètre online-mode
à false :
Gérer son monde - sauvegarde et réinitialisation #
Après avoir joué des heures sur votre serveur, construit de nombreux bâtiments et miné des ressources à n’en plus finir, un crash survient pour une raison X ou Y et votre monde est supprimé, vous devez tout recommencer !
Pour éviter cette situation, il est conseillé de faire des sauvegardes régulières de votre monde, comment faire ? C’est simple !
Depuis votre client FTP, téléchargez simplement les dossiers correspondants aux mondes de votre serveur, de base il y en a 3 :
overworld
qui correspond au monde normalworld_nether
qui correspond au netherworld_the_end
qui correspond à l’end
Une fois ces dossiers récupérés, stockez les dans un endroit sûr, vous n’aurez qu’à les remettre sur votre serveur pour récupérer votre progression actuelle.
Cela peut être très pratique si vous désirez “retourner dans le passé” ou si vous changez de serveur.
A l’opposé, vous pouvez également stopper votre serveur et supprimer ces dossiers. Lorsque vous relancerez votre serveur celui-ci va automatiquement régénérer un nouveau monde vierge.
Importer un monde #
Avec ce que nous venons de voir au point précédent, vous vous doutez donc qu’il est possible d’importer un monde créé par n’importe qui !
Vous pouvez trouver des maps sur ce site, nous allons prendre le royaume Far Far Away de l’univers Shrek comme exemple :
Téléchargez la map (qui est un simple fichier compressé), puis transférez le sur votre serveur :
Dans le fichier server.properties
, changez le paramètre level-name
par le nom du dossier de la map :
Relancez votre serveur, vous pouvez désormais jouer sur la map que vous avez importé !
Serveur ouvert 24/7 - Création d’un service #
De toutes les améliorations possibles, c’est certainement la meilleure.
En effet, si vous êtes observateur vous avez remarqué que depuis le début mon serveur est lié au terminal de ma connexion SSH. Si je ferme ma connexion SSH ou ce terminal, j’arrête tous les processus liés à celui-ci donc j’arrête mon serveur Minecraft. Si je veux que mon serveur soit ouvert 24/7 il faudrait donc que mon accès SSH soit également ouvert 24/7 et par conséquent ma propre machine, ce qui est très dérangeant !
Je vais vous montrer comment ouvrir son serveur 24/7 sans que vous n’ayez besoin de garder votre propre ordinateur allumé.
Pour cela nous allons avoir besoin d’un service.
Les services sont utilisés pour diverses tâches essentielles qui doivent fonctionner en permanence ou à intervalles réguliers, par exemple :
- Gestion du réseau : Services qui gèrent les connexions réseau.
- Serveurs web : Services qui fournissent du contenu web (comme Apache ou Nginx).
- Bases de données : Services qui gèrent les bases de données (comme MySQL ou PostgreSQL).
- Sécurité : Services de surveillance et de protection (comme les pare-feu ou les antivirus).
- Planification des tâches : Services qui exécutent des tâches planifiées à des moments spécifiques ou en continu.
C’est ce dernier type de service qui va nous intéresser.
Sur Windows on peut voir tous les services exécutés sur notre machine locale depuis la console services.msc :
Sur Linux, le système de gestion des services le plus courant est systemd, l’outil qui permet d’interagir avec lui est systemctl
.
Pour lister tous les services (actifs, inactifs, …) vous pouvez utiliser la commande :
systemctl list-units --type=service --all
Pour cet exemple, je vais créer un service qui lancera en continu le serveur Forge.
Tout d’abord il faut créer le service avec la commande :
sudo nano /etc/systemd/system/[nom_du_service].service
Ici je nommerai mon service : server-forge.service
Puis il faut écrire la configuration du service, voici à quoi ressemble la notre :
[Unit]
Description=Forge Server Service
After=network.target
[Service]
WorkingDirectory=/home/opc/server-forge
ExecStart=/bin/bash ServerStart.sh
Restart=on-failure
RestartSec=60
[Install]
WantedBy=multi-user.target
La section [Unit] contient les informations générales sur le service.
Description=Forge Server Service
: Fournit une description du service.After=network.target
: Indique que notre service doit démarrer après le service network.target, c’est-à-dire après que le réseau soit disponible.
La section [Service] définit comment le service doit fonctionner.
WorkingDirectory=/home/opc/test-forge
: Spécifie le répertoire de travail pour le service. Les commandes seront exécutées depuis ce répertoire.ExecStart=/bin/bash ServerStart.sh
: Définit la commande que notre service va exécuter. Ici, notre service exécute le script bash ServerStart.sh permettant de démarrer le serveur Forge.Restart=on-failure
: Indique que le service doit être redémarré automatiquement si une erreur se produit.RestartSec=60
: Définit le délai en secondes avant de tenter de redémarrer le service après un échec. Ici, on attend 60 secondes avant de redémarrer.
La section [Install] définit quand et comment le service doit être installé ou activé.
WantedBy=multi-user.target
: Indique que ce service doit être démarré lorsque le système atteint le niveau de fonctionnement multi-user.target, ce qui est un état de fonctionnement typique pour les systèmes non graphiques (multi-utilisateur).
Une fois la configuration écrite, sauvegardez la et fermez l’éditeur de fichier.
Nous devons faire en sorte que notre système prenne en compte notre nouvelle configuration de service avec la commande :
sudo systemctl daemon-reload
Pour informer le système que ce service doit être démarré à chaque redémarrage de votre VM, exécutez la commande :
sudo systemctl enable server-forge
Enfin pour démarrer votre service, exécutez la commande :
sudo systemctl start server-forge
Vous pouvez voir le statut de votre service avec la commande
sudo systemctl status server-forge
Comme vous le voyez notre service est bien fonctionnel :
Vous pouvez arrêter votre service (et donc votre serveur Minecraft) avec la commande :
sudo systemctl stop server-forge
Votre serveur Minecraft est désormais lancé par un service paramétré pour ne jamais s’arrêter et se relancer automatiquement en cas de problèmes.
Celui-ci est donc accessible 24/7 sans que vous n’ayez besoin de garder votre accès SSH ouvert !
Conclusion #
Dans cet article je vous ai présenté l’offre “Always Free” d’Oracle Cloud Infrastructure qui nous permet de créer notre propre serveur privé.
Le but était de partager des connaissances utiles tout en vous introduisant le monde de l’informatique.
En effet, après la lecture de cet article vous devriez désormais posséder des notions d’administration systèmes et réseaux tel que :
- La création d’une VM et l’allocation de ses ressources
- Les protocoles d’administrations à distance comme SSH et FTP
- Les commandes de base pour interagir avec un système Linux en CLI
- La configuration d’un firewall via l’ouverture de ports
- La création et la configuration d’un service
Etant moi-même tombé dans le monde de l’informatique grâce aux jeux-vidéos et notamment grâce à Minecraft, il me semblait logique de commencer cette série d’articles par un tutoriel complet sur ce jeu iconique.
J’espère que vous aurez apprécié la lecture de l’article, si c’est le cas n’hésitez pas à le liker et à le partager à vos amis.
Soyez attentifs à ce blog car je devrais publier d’ici peu de nombreux autres articles dans ce style !