Serveur minecraft

Script d'installation du serveur Minecraft Raspberry Pi avec service de démarrage – Resoudre les problemes d’un serveur MineCraft

Le 7 juin 2020 - 18 minutes de lecture

<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>
Mise à jour Minecraft 1.15 «Buzzing Bees»

Minecraft 1.15.1 (Buzzing Bees) est arrivé! Ce script et ce guide sont écrits pour vous aider à obtenir un serveur Raspberry Pi Minecraft performant et opérationnel en seulement quelques minutes.

Caractéristiques

  • Configure un serveur Minecraft entièrement opérationnel en quelques minutes
  • Prise en charge des distributions Raspbian / Ubuntu / Debian
  • Installe et configure OpenJDK 11 (ou supérieur si disponible)
  • Configure Minecraft en tant que service système avec option de démarrage automatique au démarrage
  • Sauvegardes automatiques sur minecraft / sauvegardes au redémarrage du serveur
  • Met à jour automatiquement la dernière version au démarrage du serveur
  • Contrôle facile du serveur avec les scripts start.sh, stop.sh et restart.sh
  • Redémarrage quotidien planifié facultatif de Pi à l'aide de cron
  • Configuration optionnelle de la mémoire vidéo à 16 Mo (64 Mo par défaut) et overclocking du lecteur MicroSD à 100 Hz (50 Hz par défaut) pour des performances maximales

Exigences

  • Modèle Raspberry Pi avec 1 Go de RAM ou plus. Fondamentalement, un Raspberry Pi 2B ou supérieur. (No Zero malheureusement, 512 Mo ne suffisent pas pour ce faire, j'ai essayé!)
  • Distribution Linux sans tête telle que Raspbian Buster Lite, Ubuntu Server 18.04.2 ou toute distribution basée sur Debian (les distributions GUI peuvent être utilisées au détriment de la RAM disponible et des performances du serveur)
  • Disque SSD fortement recommandé mais non requis.
    Vous pouvez obtenir une configuration SSD sur un Pi pour moins que la plupart des cartes Micro SD. Voir mon article ici pour plus de détails
  • Si vous utilisez MicroSD, vous voulez utiliser une carte haut de gamme, sinon vous aurez vraiment mal sur IO lorsque le serveur lit / écrit des morceaux de terrain! Cliquez ici pour les références / recommandations des cartes MicroSD.

Vitesse recommandée

Raspberry Pi 4 modèle B 2 Go

Adaptateur StarTech 2,5 ″ SATA vers USB 3.0 – ET – SSD Kingston A400 SSD 120 Go SATA 3 2,5 pouces

<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>

Ou pour une configuration compacte: SanDisk Extreme Pro 128GB USB Solid State Flash Drive

<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>

Meilleure carte Micro SD d'analyse comparative: carte MicroSD SanDisk Extreme 64 Go

<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>

Choisir une distribution Linux

La considération la plus importante lors du choix de la version de Linux sur laquelle exécuter le serveur est simple: la RAM disponible. Les distributions Linux sans tête telles que Raspbian Lite qui n'ont pas d'interface graphique intégrée ont beaucoup plus de mémoire disponible pour le serveur Minecraft.

Notre plus gros obstacle lors de l'exécution d'un serveur Minecraft sur le Pi est la RAM disponible, car 1 Go est extrêmement faible pour ce type de serveur. Pour avoir une expérience jouable, vous ne devez exécuter rien d'autre sur le Pi afin que toute la mémoire soit disponible pour être utilisée.

Après avoir testé sur de nombreuses distributions différentes, je trouve Raspbian Lite et Serveur Ubuntu 18.04.2 32 bits pour être les meilleurs choix. Ces distributions sont livrées avec très peu de processus d'arrière-plan et ont un support et des performances solides.

64 bits vs 32 bits

Il y a beaucoup de discussions dans le monde Pi sur les prochaines distributions aarch64 64 bits contre les distributions armhf 32 bits. Ils ont été et continuent de s'améliorer considérablement. Il existe déjà des cas d'utilisation où le 64 bits est bien supérieur, comme l'encodage vidéo, la compression avancée, etc.

Alors, que diriez-vous d'exécuter un serveur Minecraft? J'ai testé intensivement avec Ubuntu Server 18.04 64 bits et Debian Buster 64 bits. J'ai toujours eu des performances et une stabilité moins bonnes que sur les versions 32 bits des mêmes distributions.

Mais comment cela peut-il être? Il est certainement vrai que les serveurs Minecraft bénéficient des performances CPU des versions 64 bits de Java. La réponse est en fait incroyablement simple: Mémoire. Le serveur exécuté sur une machine virtuelle Java 64 bits utilise au moins environ 100 Mo de mémoire supplémentaire. Cela est parfaitement logique car 64 bits> 32 bits par définition!

Le 1 Go de mémoire du Raspberry Pi a été le plus grand obstacle à ce projet depuis le tout début. À l'époque où je suis entré dans la salle IRC du développeur Paper Minecraft et leur ai dit ce que j'essayais de faire, j'ai pratiquement ri du salon de discussion pour avoir même pensé à essayer. La plupart des branches de serveurs Minecraft, y compris vanilla, ne peuvent même pas démarrer sur le Pi en raison de la mémoire limitée.

Pour un serveur Minecraft dédié sur le Pi, je recommande fortement de rester 32 bits. Vous aurez plus de mémoire disponible, ce qui signifie qu'elle sera beaucoup plus rapide et plus stable. Étant donné que la mémoire est notre goulot d'étranglement, l'augmentation du débit du processeur ne nous aide pas et perdre * tout * de notre mémoire est désastreux!

Si le Raspberry Pi 4 a plus de mémoire comme nous l'attendons tous, cette recommandation changera complètement. Même 2 Go de mémoire rendraient la mémoire supplémentaire que 64 bits utilise un non-problème et les gains de performances de débit CPU très souhaitables. Pour l'instant, restez 32 bits pour un serveur Minecraft!

Distributions testées

Raspbian Lite – C'est Raspbian. Il a une très faible utilisation de la mémoire et est la distribution officielle du Raspberry Pi. Le serveur fonctionne très bien à ce sujet. C'est globalement le meilleur choix. La version Buster a rendu OpenJDK 11 disponible sur celui-ci afin qu'il ne soit plus derrière le reste des distributions.

Ubuntu Server 18.04.3 – Ubuntu Server est ma distribution Linux préférée. Je l'utilise pour presque tous mes projets. Les performances de la version 32 bits armhf sont comparables à celles de Raspbian. C’est un excellent choix! Cliquez ici pour mon guide de configuration Ubuntu pour Raspberry Pi. La version 64 bits n'est pas un choix fantastique et n'est pas recommandée en raison de l'utilisation accrue de la mémoire. Restez avec 32 bits et vous serez un campeur heureux avec Ubuntu Server.

Debian Buster 64 bits – Debian est la distribution sur laquelle Raspbian est basée. Cette version est un aperçu de Debian "Buster" qui est le successeur de Stretch et sera la prochaine version de Raspbian lors de sa sortie. J'aime cette distribution mais elle est actuellement non officielle et non prise en charge. Les performances et la stabilité étaient inférieures à Ubuntu et Raspbian.

Comparez votre stockage

Assurez-vous que votre stockage fonctionne assez rapidement pour être un serveur Minecraft efficace. J'ai écrit une référence à cet effet pour rendre cela extrêmement facile. Pour obtenir des résultats précis, assurez-vous que rien ne fonctionne lors de l'analyse comparative.

Exécutez le benchmark en collant / tapant:

sudo systemctl stop minecraft
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash 

Idéalement, vous obtiendrez environ 1000 pour une carte Micro SD de bonne qualité (et beaucoup plus élevé pour le stockage à l'état solide). Un faible score (<700) indique ici qu'il est probablement temps de passer à un disque SSD ou à une carte Micro SD plus rapide. Cliquez ici pour voir tous les benchmarks existants.

Vous pouvez toujours exécuter le serveur si vous le souhaitez avec un score de stockage faible, mais soyez averti que lorsque des opérations telles que la sauvegarde des blocs du serveur ont lieu, les personnes en ligne peuvent rencontrer un retard considérable!

Installation

SSH dans votre Raspberry Pi et collez les commandes suivantes:

wget https://raw.githubusercontent.com/TheRemote/RaspberryPiMinecraft/master/SetupMinecraft.sh
chmod + x SetupMinecraft.sh
./SetupMinecraft.sh

Le script configurera le serveur Minecraft et vous posera quelques questions sur la façon de le configurer. Je vais expliquer ici ce qu'ils signifient.

"Entrez la quantité de mémoire en mégaoctets à consacrer au serveur Minecraft" – La quantité de mémoire qui sera dédiée au serveur Minecraft. Le plus est le mieux, mais vous devez laisser de la place pour les processus d'arrière-plan du système d'exploitation.

Si vous dépassez la mémoire totale disponible, le serveur plantera ou le Pi deviendra incroyablement lent au point où votre session SSH commencera à expirer. Le script de configuration vous fera une recommandation qui est votre mémoire disponible – 10% pour la marge. Si vous ne savez pas quoi mettre, allez avec la quantité recommandée.

Remarque pour Raspberry Pi 4: Actuellement sur Raspbian 32 bits, 2700 Mo est le maximum que Linux nous permettra d'allouer dans un environnement 32 bits. Le script a été mis à jour pour vérifier cela car le serveur ne démarre pas s'il est défini sur 2700M sur un serveur 32 bits. Les systèmes d'exploitation 64 bits pourront allouer toute la mémoire disponible au fur et à mesure que le support Pi 4 sera déployé.

"Démarrer le serveur Minecraft automatiquement au démarrage (o / n)?" – Cela configurera le service Minecraft pour qu'il démarre automatiquement au démarrage de votre Pi. C'est génial car chaque fois que vous voulez jouer, vous pouvez simplement le brancher et y aller sans avoir à SSH.

"Redémarrer automatiquement Pi et mettre à jour le serveur à 4 heures du matin (y / n)?" – Cela ajoutera une tâche cron au serveur qui redémarre le Pi tous les jours à 4h du matin. C'est formidable car chaque fois que le serveur redémarre, il sauvegarde le serveur et met à jour la dernière version. Consultez la section «Redémarrages quotidiens planifiés» ci-dessous pour savoir comment personnaliser l'heure ou supprimer le redémarrage.

C'est tout pour le script d'installation. Le serveur terminera la configuration et démarrera!

Première exécution

La première fois que vous exécutez le serveur, le démarrage prendra un peu plus de temps car il génère toutes les données du serveur. Si vous essayez de vous connecter avant qu'il ne démarre complètement, vous obtiendrez une erreur de délai de connexion. Surveillez la ligne: «Timings Reset». Il s'agit de la dernière ligne qui s'imprime lorsque le serveur est prêt à basculer. À ce stade, vous pourrez vous connecter avec succès.

La toute première fois que vous vous connectez au serveur, cela sera lent pendant environ 1 à 2 minutes. Cela est dû au fait que personne ne s'est connecté avant que le serveur ne doive brouiller pour générer tous les morceaux à votre distance de vue (10 par défaut) et vous les envoyer / les stocker. Pendant ce temps, vous ne pourrez peut-être pas voir très loin et si vous essayez de détruire des blocs, il y aura un décalage notable entre leur rupture et leur disparition.

Pas de panique! Cela disparaîtra en quelques minutes à mesure que le Pi rattrapera toutes les premières tâches de connexion qu'il doit faire. Les performances se stabilisent et cela ressemblera beaucoup à l'expérience hors ligne après cela.

Si vous hébergez pour quelques amis, je vous recommande de vous connecter pour la première fois juste après avoir configuré le serveur au lieu de demander à plusieurs personnes de clouer un serveur vierge au premier démarrage. Cela le supprime et lorsque tout le monde est prêt à se connecter, les morceaux de la zone de départ seront entièrement étoffés et le Pi n'a qu'à les lire. C'est un ordre de grandeur plus rapide pour le Pi de lire des morceaux que de générer et de stocker des morceaux.

D'après mon expérience, après la connexion initiale, l'exploration de nouvelles parties du serveur ne provoque aucun retard, même si de nouveaux morceaux sont générés. La raison en est que lorsque vous marchez, il suffit vraiment de générer un nouveau morceau lorsque vous vous approchez de la frontière au lieu d'une immense zone carrée de morceaux dans toutes les directions et tout en même temps comme lors de la première connexion.

Changer la version du serveur Minecraft

Si vous souhaitez changer la version de votre serveur Minecraft, vous pouvez le changer en ouvrant SetupMinecraft.sh avec n'importe quel éditeur de texte (exemple: nano SetupMinecraft.sh).

Changez la ligne Version = "1.15.1" pour la version du serveur Minecraft que vous souhaitez exécuter. Notez que cette version doit déjà exister pour Paper Minecraft. Vous pouvez afficher toutes les versions disponibles à l'URL suivante:

https://papermc.io/api/v1/paper/

Changer la version du client Minecraft

Si vous exécutez judicieusement la branche «stable» au lieu de la branche «développement», il y aura des moments où vous devrez sélectionner la version de Minecraft à exécuter, sinon vous obtiendrez un message d'erreur indiquant que votre client est obsolète lorsque vous essayez de vous connecter .

Heureusement, c'est très simple. Ouvrez le lanceur Minecraft et au lieu d'appuyer sur "Play", choisissez "Launch Options" dans le menu en haut de la fenêtre. Il ressemblera à ceci:

<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>
Onglet «Options de lancement» du lanceur Minecraft

Cliquez sur le bouton "Ajouter un nouveau" et choisissez la version que vous souhaitez ajouter. Vous pouvez éventuellement lui donner un nom ou simplement cliquer sur enregistrer.

Maintenant, lorsque vous revenez à l'onglet "Actualités", vous verrez une flèche déroulante où vous pouvez sélectionner la version de Minecraft que vous souhaitez jouer!

Démarrer, arrêter et redémarrer le serveur

Le serveur peut être démarré, arrêté et redémarré de deux manières différentes. Vous pouvez utiliser les scripts fournis dans le dossier Minecraft ou vous pouvez utiliser systemctl. Voici les commandes:

cd ~ / minecraft
./start.sh
./stop.sh
./restart.sh

-OU-

sudo systemctl démarrer minecraft
sudo systemctl stop minecraft
sudo systemctl redémarrer minecraft

Sauvegardes automatiques

Le serveur sauvegarde à chaque démarrage. Cela vous aide à récupérer facilement en cas de problème. Ce système fonctionne mieux si vous avez configuré le serveur pour redémarrer quotidiennement car cela signifie que vous aurez une sauvegarde tous les jours.

Pour accéder à ces sauvegardes, tapez:

cd ~ / minecraft / sauvegardes
ls

Lorsqu'une sauvegarde est effectuée, le nom de fichier sera la date et l'heure de la sauvegarde. Si vous devez restaurer une sauvegarde, c'est très simple. Remplacez l'horodatage de mon exemple par la sauvegarde vers laquelle vous souhaitez revenir. Type:

cd ~ / minecraft
./stop.sh
rm -rf world world_nether world_the_end
sauvegardes tar -xf / 2019.02.15.22.06.30.tar.gz
./start.sh

Votre monde est maintenant restauré! C'est une bonne idée de télécharger régulièrement ces sauvegardes hors du Pi au cas où le stockage du Pi échouerait.

Redémarrages quotidiens planifiés

Les redémarrages quotidiens sont planifiés à l'aide de cron. Il est très facile de personnaliser l'heure de redémarrage de votre serveur.

Pour modifier l'heure de redémarrage du serveur, tapez: crontab -e

Cela ouvrira une fenêtre qui vous demandera de sélectionner un éditeur de texte (je trouve que nano est le plus simple) et affichera les tâches cron prévues sur le Pi. Celui de Minecraft ressemblera à ceci:

0 4 * * * /home/ubuntu/minecraft/restart.sh
<img alt = "" aria-hidden = "true" class = "i-amphtml-intrinsic-sizer" role = "presentation" src = "data: image / svg + xml; charset = utf-8,"/>

Il y a 5 champs ici. L'heure de redémarrage par défaut est définie pour redémarrer à 0 minute de la 4e heure de la journée (4 h). Les 3 autres champs sont laissés comme * pour représenter chaque jour de chaque mois. Apportez les modifications souhaitées ici et appuyez sur Ctrl + X pour quitter nano et mettre à jour le cronjob.

Pour supprimer le redémarrage quotidien, supprimez simplement la ligne et enregistrez.

Installer des plugins

Le serveur prend en charge les plugins compatibles avec Bukkit / Spigot / Paper. Un endroit populaire où vous pouvez obtenir des plugins est où il y en a des milliers!

Pour installer un plugin, il vous suffit de télécharger le .jar dans le dossier minecraft / plugins et de redémarrer le serveur. Par exemple, WorldGuard est un plugin très populaire qui vous permet d'ajouter une protection à différentes zones de votre serveur.

Pour installer ce plugin sur notre serveur Minecraft, nous utiliserions les commandes suivantes:

cd ~ / minecraft / plugins
wget https://dev.bukkit.org/projects/worldguard/files/latest
sudo systemctl redémarrer minecraft

Le serveur redémarrera et le plugin sera installé. C'est si simple! Pour utiliser le plugin, reportez-vous à la documentation sur la page de téléchargement du plugin pour savoir quelles commandes vous utilisez pour configurer / interagir avec lui.

Attention: sachez que les plugins sont le problème n ° 1 pour la dégradation des performances sur les serveurs Minecraft. Ce n'est pas parce que tous les plugins sont mauvais. Certains plugins sont codés de manière très inefficace ou exécutent des fonctionnalités qui nécessitent beaucoup de crochets dans le code.

Vous devez faire attention aux plugins que vous installez sur le serveur et si vous commencez à avoir de mauvaises performances, désactivez vos plugins un par un jusqu'à ce que vous trouviez le coupable!

Reconfigurer / mettre à jour les scripts

Les scripts peuvent toujours être reconfigurés et mis à jour en téléchargeant le dernier SetupMinecraft.sh et en exécutant à nouveau le programme d'installation. Il mettra à jour tous les scripts du répertoire Minecraft et réinstallera le service de démarrage pour vous.

L'exécution de SetupMinecraft.sh vous donnera également la possibilité de reconfigurer des options telles que la mémoire dédiée au serveur, les redémarrages quotidiens, le démarrage du serveur au démarrage, etc.

Cela n'écrasera pas votre monde ou toute autre donnée, il est donc sûr de fonctionner!

Redirection de port

Si tout le monde sur votre serveur est sur le même réseau LAN ou WiFi que vous, vous n’avez pas besoin de le faire. Si vous souhaitez que les gens se connectent depuis l'extérieur de votre réseau local, vous devez configurer la redirection de port sur votre routeur.

Le processus est différent pour chaque routeur, donc la meilleure chose à faire est simplement de regarder votre routeur et de trouver le modèle # et de le mettre dans google avec la redirection de port pour des instructions simples sur la façon de le faire pour votre routeur spécifique.

Vous souhaitez transférer le port 25565. Le type de connexion est TCP si votre routeur le demande. Une fois que vous avez fait cela, les gens pourront se connecter à votre serveur Minecraft via votre adresse IP publique. Ceci est différent de votre IP locale qui est généralement un 192.x.x.x ou 10.x.x.x. Si vous ne savez pas ce que c'est, allez sur google et tapez "quel est mon ip" et Google vous le dira avec bonté!

Filaire vs sans fil

Aller avec une connexion Ethernet (filaire) va être plus rapide et plus fiable. Il y a tellement de trafic sans fil et d'autres interférences dans l'air qu'il n'est pas recommandé de faire fonctionner votre serveur sur le WiFi.

Même si cela fonctionne très bien 99% du temps, cela peut ruiner votre expérience très rapidement si le WiFi baisse pendant quelques secondes et que vous vous faites exploser par une plante grimpante!

Cela étant dit, le serveur fonctionne bien sur le sans fil. Le script fonctionnera bien tel quel avec une connexion sans fil.

Historique des versions

Pour afficher l'historique des versions, consultez le fichier README de GitHub ici:

https://github.com/TheRemote/RaspberryPiMinecraft#update-history

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.