Aller au contenu

[VPS Oracle] Créez votre propre serveur Minecraft gratuit à vie

·36 mins· 0 · 0 ·
Tuto VPS Oracle Serveur Minecraft Gratuit à vie
JustinType
Auteur
JustinType
Ingénieur Cybersécurité et Joueur de CTF
Sommaire
VPS Oracle - Cet article fait partie d'une série.
Partie 1: Cet article

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 !

ready

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 :

Always Free Oracle
Voir documentation Oracle

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

choices

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.

matrix cloud

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 :

OVH prices

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 :

Cloud big entterprises

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”.
Evidemment ça n’arrivera pas du jour au lendemain, vous serez prévenu à l’avance si c’est le cas. Cela fait des années que l’offre existe et rien n’indique une quelconque modification pour le moment.

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” :

OCI account creation 1

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) :

OCI account creation 2

Dans cet exemple, je renseigne des fausses informations volontairement

Vérifiez votre adresse mail :

OCI account creation 3

Vous devriez arriver sur cette page :

OCI account creation 4

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.

OCI account creation 5

Choisissez la région la plus proche de vous pour avoir les meilleures performances !

OCI account creation 6

Vous devez maintenant renseigner votre adresse et numéro de téléphone, tout comme votre nom et prénom renseignez les en majuscules :

OCI account creation 7

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.

OCI account creation 8

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.

Toutes les informations que vous avez rentrées doivent correspondre à celles sur votre carte bancaire, si vous avez changé d’adresse ou de nom de famille entre temps, renseignez celles inscrites sur votre CB.

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 :

OCI account creation 9

Et ajoutez votre carte bancaire :

OCI account creation 10

Il est possible que vous deviez valider une transaction aux alentours d’un euro, ce montant n’est pas prélevé, c’est simplement pour vérifier qu’une transaction est possible avec votre carte bancaire et que celle-ci n’est pas vide.

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 !

OCI account creation 11

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 :

Instance creation 1

Puis créez une nouvelle instance :

Instance creation 2

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 :

Instance creation 3

Assurez-vous de choisir une image avec la mention “Always-Free-eligible”.

Pour ma part je choisis une image Oracle Linux 8 :

Instance creation 4

Pour le type d’instance je choisis une VM Ampere A1 :

Instance creation 5

Puis choisissez les ressources à allouer à votre serveur Minecraft. Généralement un seul OCPU est suffisant, mais la RAM dépend de votre serveur :

VanillaPluginsMods
Minimal : 2 GoMinimal : 3 GoMinimal : 4 Go
Recommandé : 4 GoRecommandé : 6 GoRecommandé : 8-10 Go

Pour cet exemple je vais paramétrer le serveur avec 1 OCPU et 10 Go de RAM :

Instance creation 6

Normalement vous possédez déjà un réseau virtuel, sélectionnez-le et laissez les paramètres par défaut :

Instance creation 7

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 :

Instance creation 8

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.

Ne perdez surtout pas cette clé, celle-ci permet de se connecter à votre instance

Instance creation 9

Voici à quoi ressemble le fichier :

Instance creation 10

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) :

Instance creation 11

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.

N’oubliez pas que vous disposez de 200 Go maximum pour toutes vos instances

Instance creation 12

Vous pouvez laisser les autres paramètres par défaut et attacher votre espace de stockage :

Instance creation 13

Et voilà ! Tous les paramètres de votre instance sont configurés, vous pouvez la créer.

Si jamais vous voyez la mention d’un prix pour le Boot Volume, n’y faites pas attention c’est l’outil de calcul automatique d’Oracle qui ne prend pas en compte l’offre “Always Free”, vous ne serez pas débités

Instance creation 14

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.

Instance creation 15

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) :

Instance creation 16

Après quelques minutes l’instance est prête à être utilisée :

Instance creation 17

Vous pouvez retrouver toutes vos VMs dans l’onglet “Instances” :

Instance creation 18
L’adresse IP a été modifiée

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 :

CLI example

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 #

SSH signifie “Secure Shell”, il s’agit donc d’un “shell” dit “sécurisé”. Un shell, que l’on appelle communément “terminal”, est la méthode la plus courante de gestion des serveurs Linux.

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 :

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 :

SSH 1

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.

SSH 2

Plus personnes ne peut utiliser la clé, il faut maintenant vous rajouter :

SSH 3

Et vous donner tous les droits :

SSH 4

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 à ~ :

SSH 5

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 :

PuTTY 1

Une fois PuTTY installé, lancez l’application “PuTTYgen” et appuyez sur “Load” :

PuTTY 2

Chargez votre clé SSH privée :

PuTTY 3

Puis sauvegardez cette clé privée dans un format .ppk (utilisable par PuTTY) :

PuTTY 4

Vous obtiendrez ce genre de fichier :

PuTTY 5

Ouvrez maintenant l’application “PuTTY” et rendez-vous dans l’onglet Connection > SSH> Auth, importez le fichier .ppk précédemment créé :

PuTTY 6

Puis dans l’onglet “Session” renseignez les paramètres SSH et sauvegardez la session :

PuTTY 7

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 :

PuTTY 8

Et voilà ! Vous êtes connectés au serveur en SSH !

PuTTY 9

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 :

  1. Ouvrez le gestionnaire de site
  2. Créez un nouveau site
  3. Nommer le site
  4. Sélectionner le bon protocole (ici SFTP)
  5. Renseignez l’adresse IP de votre serveur
  6. Renseignez le port à utiliser (ici 22)
  7. Choisissez l’authentification avec un fichier de clef
  8. Renseignez le nom d’utilisateur
  9. Renseignez le fichier de clef
  10. Enregistrez les paramètres

FileZilla 1

Lorsque vous vous connectez en FTP à votre serveur voici ce que vous voyez :

  1. L’arbre des dossiers de votre machine locale
  2. L’arbre des dossiers de votre serveur
  3. Les fichiers du répertoire courant de votre machine locale
  4. Les fichiers du répertoire courant de votre serveur

FileZilla 2
Les fichiers commençant par un point (.) sont des fichiers systèmes qui sont cachés par défaut

Pour tester le bon fonctionnement, je crée un fichier texte sur ma machine locale puis je le transfère sur mon serveur :

FileZilla 3

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é.

FileZilla 4

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*

Install Java

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

Install Java 2

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.

Vanilla 1

La version sur le site officiel correspond à la dernière version stable, si vous souhaitez une autre version vous devrez récupérer le fichier .jar depuis une autre source

Vanilla 2

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.

Vanilla 3

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 serveur
  • Xmx 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 :

Vanilla 4

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.

Vanilla 5

Editez ce fichier avec la commande :

nano eula.txt

Changez la valeur “false” par “true” :

Vanilla 6

Pour sauvegarder vos changements et quittez l’éditeur nano, appuyez sur 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

Vanilla 7

Pour stopper le serveur vous devez interrompre l’opération en cours de votre terminal avec la combinaison CTRL + C ou écrire stop

Vanilla 8

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 et HTTPS 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.

Firewall 1

Nous devons donc ouvrir le port utilisé par le serveur Minecraft, c’est-à-dire le port 25565 :

Firewall 2

Pour cela rendez-vous sur la page d’instance de votre serveur et cliquez sur le “subnet” :

Firewall 3

Puis dans la “Security List” de ce subnet :

Firewall 4

Comme vous pouvez le remarquer dans la liste des “Egress Rules” tous les ports sont bloqués par défaut :

Firewall 5

Seul le port 22 est autorisé dans les “Ingress Rules” :

Firewall 6

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 :

Firewall 7

N’oubliez pas de faire une règle pour le protocole TCP et une pour le protocole 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” :

Firewall 8

Lancement du serveur #

Votre serveur Minecraft Vanilla est enfin prêt !

Let’s go

Vous pouvez tenter de vous connecter sur votre serveur depuis le Launcher :

Vanilla Launch 1

N’oubliez pas d’adapter l’adresse IP du serveur

Et voilà ! Vous n’avez plus qu’à partager les informations de votre serveur à vos amis pour jouer ensemble :

Vanilla Launch 2

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é) :

Paper 1

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 :

Paper 2

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 :

Paper 3

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.

Paper 4

Paper 5

Paper 6

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) :

Paper 7

Pour installer les plugins vous n’avez plus qu’à relancer votre serveur !

Paper 8

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 1

BlueMap utilise le port 8100 par défaut pour l’application web, comme vous pouvez le voir dans le fichier webserver.conf :

BlueMap 2

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.

BlueMap 3

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 :

BlueMap 4

Lorsque vous lancez votre serveur celui-ci vous indique que le plugin BlueMap est opérationnel :

BlueMap 5

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 :

BlueMap 6

Vous savez désormais créer un serveur Minecraft et installer des plugins !

Nice

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” :

Forge 1

Suivez le processus d’installation (il est très simple), une fois l’application installée choisissez le jeu Minecraft :

Forge 2

Vous devrez relier votre compte Mojang à CurseForge, si vous n’avez pas acheté le jeu et que vous n’avez pas de compte Mojang il ne sera pas possible de jouer avec des mods !

[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 :

Forge 3

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” :

Forge 4

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 :

Forge 5

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 :

Forge 6

Il est conseillé de télécharger la version stable dans tous les cas pour éviter de faire crasher votre jeu, peu importe le mod

Une fois le mod installé, vous pourrez le retrouver sur votre onglet “My Modpacks” :

Forge 7

Si vous appuyez sur “Play”, CurseForge va automatiquement lancer votre Launcher Minecraft et charger le mod :

Forge 8

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” :

Forge 9

Vous venez de récupérez un fichier .zip, en effet par abus de langage je parlais de mod jusqu’à présent mais en réalité il s’agit d’un “modpack”, c’est-à-dire tous les fichiers pour installer votre serveur Forge ainsi que tous les fichiers .jar correspondants aux mods

Créez un dossier pour votre serveur Forge sur votre VM et transférez le .zip du modpack :

Forge 10

Dézippez le contenu de ce fichier avec la commande :

unzip [nom_du_fichier]

Forge 11

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

Forge 12

Vous remarquerez que tous ces fichiers sont devenus verts, cela signifie que l’on peut désormais les exécuter

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

Forge 13

Vous pouvez désormais lancer votre serveur moddé avec la commande :

./ServerStart.sh

Forge 14

Et là c’est le drame, le serveur ne se lance pas et une grosse erreur est à l’écran !

Error

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 :

Forge 15

Vérifiez toujours la documentation du mod ou du plugin en amont de son installation, cela vous permettra de régler la plupart des problèmes

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

Forge 16

Pour vérifier que nous avons bien changer de version exécutons la commande :

java --version

Forge 17

Parfait nous pouvons maintenant relancer le serveur avec ./ServerStart.sh, puis acceptez les EULA :

Forge 18

Et notre serveur moddé est prêt ! Nous pouvons maintenant jouez dessus avec le modpack Pixelmon d’installé :

Forge 19

Vous savez désormais comment créer votre propre serveur Minecraft moddé !

Very Nice

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 serveur
  • server.port qui correspond au port TCP du serveur

Improvment 1
Documentation ArchLinux

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 !

Improvment 2

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 :

Improvment 3

Improvment 4

Ce fichier contient de nombreux paramètres intéressants, je vous conseille fortement d’aller jeter un œil à la documentation du jeu le concernant.

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 normal
  • world_nether qui correspond au nether
  • world_the_end qui correspond à l’end

Improvment 5

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 !

Le monde doit être compatible avec la version de votre serveur.

Vous pouvez trouver des maps sur ce site, nous allons prendre le royaume Far Far Away de l’univers Shrek comme exemple :

Improvment 6

Téléchargez la map (qui est un simple fichier compressé), puis transférez le sur votre serveur :

Improvment 7

Dans le fichier server.properties, changez le paramètre level-name par le nom du dossier de la map :

Improvment 8

Relancez votre serveur, vous pouvez désormais jouer sur la map que vous avez importé !

Improvment 9

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é.

Jesus

Pour cela nous allons avoir besoin d’un service.

Un service est un programme qui s’exécute en arrière-plan sur un système d’exploitation. Contrairement aux applications ordinaires, ils n’ont pas d’interface graphique.

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 :

Service 1

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 
Si vous changez la configuration du service il faudra toujours exécutez cette commande pour que le système prenne en compte les modifications

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 :

Service 2

Il est tout à fait possible de créer et lancer plusieurs services pour avoir plusieurs serveurs Minecraft, ces serveurs doivent juste être configurés sur des ports différents.

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 !

Perfect

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 !

See you

VPS Oracle - Cet article fait partie d'une série.
Partie 1: Cet article