Print Friendly, PDF & Email

Partie 2 : le serveur Linux

Suite au test de l’installation d’un serveur Minecraft sur un NAS Synology, voici le résultat de mes tests sur un serveur Linux…

Minecraft sur un Serveur Linux Ubuntu

Le serveur Linux a été installé sur un PC avec la dernière distribution Linux Ubuntu v12.10.

J’ai utilisé cette distribution car il existe une communauté francophone, www.unbuntu-fr.org, avec un site Web très documenté sur lequel j’ai le plus souvent trouvé une solution efficace à mes pb d’installation.

Système

Linux a été installé sur un PC DELL Dimension 9200 :

  • Processeur : Intel Core 2 Duo E6400 2.13Ghz
  • Mémoire : 4Go de RAM DDR2 800Mhz
  • Disque dur : Western Digital Caviar SE16 500 Go

Installation du système et des paquets

Pour installer le système Linux, vous pouvez télécharger la dernière distribution française disponible sur le site Ubuntu-fr.

La procédure d’installation d’Ubuntu 12.10 est également disponible sur ce site, je ne vais donc pas m’étendre sur ce point. Pour ma part, j’ai décidé d’installer Ubuntu en effaçant tout le disque dur et en supprimant Windows.

Une fois connecté, vous arrivez sur le Bureau Ubuntu : voir le mode d’emploi Unity pour vous retrouver dans les différents menus et icônes.

Les paquets à installer pour faire fonctionner le serveur Minecraft sont Java 7 et le serveur HTTP Apache 2 pour administrer le serveur et visualiser la carte :

  • En mode terminal passez sur le compte d’administration :
    sudo -i
  • Installez le paquet Java 7 :
    apt-get install oracle-java7-installer
  • Installez le serveur Apache2 :
    apt-get install apache2
  • Installez Screen qui servira plus tard dans les scripts de lancement à se déconnecter du serveur Linux tout en laissant le serveur Minecraft actif :
    apt-get install screen
  • Relancez la machine :
    reboot

Sur votre Bureau Ubuntu, créez un dossier minecraft qui vous allez partager afin d’y avoir accès depuis un PC Windows (si nécessaire) :

Copiez, soit en SFTP (voir plus bas le chapitre sur la connexion à distance), soit depuis votre PC Windows sur le dossier partagé, mon package CraftBukkit.

Vous pouvez alors lancer le serveur Minecraft de différentes façons en fonction de vos besoins :

  • Pour tester simplement le serveur, créez un script craftbukkit.sh dans le dossier minecraft :
    #!/bin/sh
    BINDIR=$(dirname "$(readlink -fn "$0")")
    cd "$BINDIR"
    java -Xms2048M -Xmx2048M -jar craftbukkit.jar -o true
  • Lui donner les droits d’exécution :
    chmod +x craftbukkit.sh
  • Le lancer :
    sh craftbukkit.sh
  • Votre serveur démarre et vos clients peuvent se connecter !

Mon package CraftBukkit étant prévu pour un serveur Minecraft hébergé chez un tiers, il n’est malheureusement pas possible de lancer de script sh. L’avantage d’héberger chez soi, c’est que tout devient possible et notamment le lancement du script rtoolkit.sh fourni par le plugin Remote ToolKit (RTK) qui est utilisé par le serveur d’administration pour des opérations de maintenance (sauvegarde de la map, arrêt et redémarrage du serveur…).
 
Il suffit de modifier le script rtoolkit.sh en indiquant un utilisateur et un mot de passe et d’ajuster en conséquence les 2 fichiers de configuration qui se trouvent dans le dossier toolkit :

  • #!/bin/bash
    USER=****
    PASS=****
    ##YOU SHOULD NOT NEED TO EDIT ANYTHING BELOW THIS LINE##
    DIRECTORY=$(cd "`dirname "$0"`" && pwd)
    (cd "$DIRECTORY"; java -Xmx30M -Xms30M -XX:MaxPermSize=40M -jar Minecraft_RKit.jar ${USER}:${PASS})
  • Le script rtoolkit.sh :
    • Lui donner les droits d’exécution :
      chmod +x rtoolkit.sh
    • Vérifiez la config des 2 fichiers properties dans le dossier toolkit et notamment le fichier wrapper.properties et les 2 valeurs liées à la mémoire que vous souhaitez allouer au serveur Minecraft (par exemple pour 2Go, indiquez 2048M). Lancer le script :
      sh rtoolkit.sh
    • Votre serveur démarre et vos clients peuvent se connecter !

Vues les possibilités offertes sur un serveur Linux, je me suis fait plaisir en testant un autre serveur d’administration que milkAdmin fourni dans mon package CraftBukkit : McMyAdmin.

McMyAdmin est un serveur plus pro que milkAdmin mais aussi plus compliqué à installer. En effet, c’est un exécutable Windows qu’il faut lancer via la commande mono sous Linux :

  • Tout d’abord, téléchargez la version Core Archive de McMyAdmin pour Linux 32 bits
  • Déplacez le dossier minecraft sur votre serveur dans un sous-dossier Minecraft et copiez à la racine du premier dossier les fichiers téléchargés… en image, ça donne :
  • Installez le paquet Mono :
    apt-get install mono-runtime
  • Pour que ça fonctionne, il est nécessaire de recompiler les sources : suivez le mode d’emploi fourni par McMyAdmin
  • Une fois terminé, modifiez le fichier McMyAdmin.conf. Les valeurs importantes :
    • Webserver.Port : indiquez le port que vous allez utiliser. Pour la part, j’ai laissé 8080
    • Java.Memory : pour 2Go, indiquez 2048M
    • Provider.URL : l’URL de votre page Web sous la forme www.exemple.com
    • Server.Address : votre nom de domaine ou adresse IP publique
    • Server.ServerType : CraftBukkit en ce qui me concerne
  • Créez un nouveau script, par ex. lancement_auto_minecraft.sh pour lancer le jeu via McMyAdmin et les commandes screen et mono :
    #!/bin/bash
    sleep 1
    screen -A -m -d -S minecraft mono McMyAdmin.exe -nostart
  • Lui donner les droits d’exécution :
    chmod +x lancement_auto_minecraft.sh
  • Lancer le script :
    sh lancement_auto_minecraft.sh
  • Votre serveur démarre et vos clients peuvent se connecter !
  • Pour quitter le Screen : touches CTRL + A puis D
  • Pour killer le Screen : touches CTRL + A puis K
  • Pour revenir dans le Screen :
    screen -r minecraft
  • Pour lister les Screens actifs :
    screen -ls
  • Vous pouvez alors accéder à votre site Web McMyAdmin (port TCP n° 8080) et administrer votre serveur Minecraft…

Sécurité – pare-feu

Pensez à sécuriser vos accès Internet via le pare-feu de votre routeur ou de votre Box + le pare-feu Ubuntu en autorisant les principaux ports TCP/UDP de destination utilisés par Minecraft.

Ne pas oublier de rediriger les ports de destination vers le serveur Linux via le menu adéquat de votre routeur ou de votre Box.

Les ports de destination suivants sont utilisés dans mon package CraftBukkit :

  • Port TCP 25561 : RCON ou Remote Console
  • Port UDP 25562 : RTK ou Minecraft RemoteToolKit (plugin)
  • Port UDP 25563 : Query
  • Port TCP 25564 : Dynmap (plugin) – la carte du jeu visible sur le Web (http://adresse_IP_de_votre_serveur:25564)
  • Port TCP 25565 : Serveur Minecraft ou CraftBukkit
  • Port TCP 25566 à 25569 : CustomMusic (plugin) – écoutez de la musique ou une WebRadio depuis le serveur Minecraft
  • Port TCP 25570 : milkAdmin (plugin) – site Web d’administration du serveur Minecraft (http://adresse_IP_de_votre_serveur:25570)

Sous Ubuntu 12.10, installez le pare-feu Gufw via les commandes suivantes en mode terminal :

  • Passez sur le compte d’administration :
    sudo -i
  • Installez le paquet Gufw :
    apt-get install gufw
  • Pour accéder au pare-feu, cliquez sur l’icône Paramètres système présente sur la barre de lancement, puis sur Configuration du pare-feu :
  • Pour paramétrer le pare-feu, je vous renvoie sur l’article d’Ubuntu-fr qui traite très bien de cette question
  • Voilà ce que ça donne sur mon serveur Linux :

Sécurité – connexion à distance

Concernent la connexion à distance sur le serveur Linux depuis votre réseau local ou Internet en VNC mais aussi en SSH et SFTP, un bon article à ce sujet sur ce site.

Voilà les corrections à apporter pour la version 12.10 d’Ubuntu :

  • Lors de la configuration de Vino (le serveur VNC d’Ubuntu), c’est n’est plus gconf-editor qu’il faut lancer mais dconf-editor. Il faut donc installer ce logiciel :
    • En mode terminal passez sur le compte d’administration :
      sudo -i
    • Installez le paquet Dconf-tools :
      apt-get install dconf-tools
    • Pour accéder aux paramètres de Vino, cliquez sur l’icône Tableau de bord présente sur la barre de lancement, puis sur l’icône Applications en bas de page et enfin sur Installées :
  • Cliquez ensuite sur l’éditeur Dconf et paramétrez Vino comme indiqué sur le site :
  • La configuration de la session et du login automatique sont également différents. Cliquez sur l’icône Paramètres système présente sur la barre de lancement, puis sur l’icône Comptes utilisateur :
  • Déverrouillez votre compte, puis cliquez sur Connexion automatique :
  • Dans le Tableau de bord, recherchez l’application Partage de bureau :
  • Puis paramétrez comme ceci :

Conclusion

L’installation est un peu plus longue sur serveur un Linux que sur le NAS Synology car le plus souvent j’ai dû rechercher des explications complémentaires aux tutoriaux existants sur le Net pour la dernière version d’Ubuntu 12.10.

Néanmoins, côté performances, c’est mieux que le NAS Synology car le serveur Linux possède 4Go de RAM alors que le NAS seulement 1Go.

La graphique ci-dessous extrait du tableau de bord de McMyAdmin montre en effet qu’un utilisateur  occupe environ 6 % de RAM alors que la CPU ne bouge pratiquement pas.

Vous l’aurez compris, ma préférence va au serveur Linux, mieux taillé en puissance que le NAS pour gérer ce type de serveur de jeu.

D’ailleurs depuis la mise en œuvre du serveur Linux, j’ai continué les installations avec Teamspeak2 pour échanger pendant le jeu (paquet teamspeak-server) et même avec Counter-Strike Source 🙂