Installer un serveur Terraria sous Linux ou sur un NAS Synology
Je ne publierai plus rien sur ce blog. Un nouveau blog existe maintenant. Il se nomme Hardly Smart.
Vous pourrez y retrouver des astuces plus larges sur l'informatique ainsi que mes anciens billets de blog.
Je vous souhaite une bonne lecture sur Hardly Smart.
Je viens de me mettre à un petit jeu indépendant, Terraria. Pour ceux qui ne connaissant pas, c'est un genre de Minecraft mais en 2D. En gros vous avez un personnag et vous devez utiliser votre environnement pour construite des habitations, trouver des ressources pour faire des armes, armures ... Le jeu est soit PvE, soit PvP. Et voulant y jouer avec mes amis à moindre frais, j'ai créé mon propre serveur.
Pour créer votre serveur vous allez avoir besoin soit d'un ordinateur sous Linux (peut importe la version, même sans interface) ou d'un NAS Synology pour continuer ce tuto. Sur Windows vous allez voir c'est un fichier *.exe que vous allez pouvoir éxecuter directement à la main.
Tout d'abord on va installer Mono. Mono est une plate-forme qui permet d'éxecuter des applications Windows sous Linux.
Linux :
sudo add-apt-repository ppa:inizan-yannick/mono sudo apt-get install mono-runtime
NAS Synology :
- Rendez vous dans le centre de paquets
- Paramètres, onglets Bêta, et cochez : Oui, je veux voir les versions bêta !
- Recherchez Mono et installez-le
Pour utiliser Terraria sur un serveur nous allons avoir besoin de TShock. TShock est un serveur pour Terraria écrit en C# et basé sur l'API serveur de Terraria.
Pour l'installer, on va devoir nous connecter en SSH à notre serveur. Je suppose que vous savez vous connecter à votre serveur en SSH sinon une petite recherche Google devrait suffir. Pour ceux qui ont un NAS Synology, vous devez vous connecter avec l'utilisateur root et avec le mot de passe de l'admin.
# Adaptez le dossier à vos besoin cd /volume1/homes/admin/ # Pour les NAS Synology, je vous renvoi à mon tuto Installer IPKG sur son NAS Synology DSM 5 (http://www.babeuloula.fr/blog/billet/52/installer-ipkg-sur-son-nas-synology-dsm-5/) # A la fin de ce tuto, j'explique comment installer wget-ssl wget https://github.com/NyxStudios/TShock/releases/download/v4.2300/TShock.4.2.3.0702.zip unzip -d Terraria TShock.4.2.3.0702.zip rm TShock.4.2.3.0702.zip cd Terraria/ mono TerrariaServer.exe
Le serveur se lance, je vous laisse configurer votre serveur comme vous le souhaitez.
Je vous mets dans la source du billet, le contenu d'un fichier texte qui permet de lancer directement le serveur avec toutes les configurations. Ce qui vous permettera lancer le serveur correctement au lancement de votre serveur.
Et si vous souhaitez fermer la console sans que le serveur ne se ferme vous pouvez installer screen :
# NAS Synology ipkg install screen # Linux sudo apt-get install screen
Et lancez le avec :
screen mono TerrariaServer.exe
Source
Pour lancer le serveur en ligne de commande
mono TerrariaServer.exe -config serverconfig.txt
Contenu du fichier serverconfig.txt
#the following is a list of available command line parameters: #-configSpecifies the configuration file to use. #-port Specifies the port to listen on. #-players / -maxplayers Sets the max number of players #-pass / -password Sets the server password #-world Load a world and automatically start the server. #-autocreate <#> Creates a world if none is found in the path specified by -world. World size is specified by: 1(small), 2(medium), and 3(large). #-banlist Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory. #-worldname Sets the name of the world when using -autocreate. #-secure Adds addition cheat protection to the server. #-noupnp Disables automatic port forwarding #Set's the max number of players allowed on a server. Value must be between 1 and 255 #maxplayers=8 #Load a world and automatically start the server. #world=/volume1/homes/admin/Terraria/Terraria/Worlds/world1.wld #Set the port number #port=7777 #Set the server password #password=p@55w0rd #Set the message of the day #motd=Please don’t cut the purple trees! #Sets the folder where world files will be stored #worldpath=/volume1/homes/admin/Terraria/Terraria/Worlds/ #Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large). #autocreate=3 #Sets the name of the world when using autocreate #worldname=World #The location of the banlist. Defaults to "banlist.txt" in the working directory. #banlist=banlist.txt #Adds addition cheat protection. #secure=1 #Sets the server language 1:English, 2:German, 3:Italian, 4:French, 5:Spanish #lang=1 #Automatically forward ports with uPNP #upnp=1 #Reduces enemy skipping but increases bandwidth usage. The lower the number the less skipping will happen, but more data is sent. 0 is off. #npcstream=60 #Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle priority=1
Articles liés
Les commentaires ont été désactivés.
9 commentaires
Salut,
Je n'ai pas constaté de consommation élevée. Mais bon après moi c'est pas un vrai Synology mais un XPEnology avec un i3 et 4Go de RAM.
Ça ne lag, et j'utilise mon NAS aussi pour la vidéo avec Plex, mes photos ... Je n'ai pas de soucis.
A toi de voir avec ton NAS
Bonjour, j' ai une erreur lors de l' execution de mono TerrariaServer.exe, je te donne ce qu' il me retourne :
pi@raspberrypi:~/serveur_terraria/Terraria $ sudo mono TerrariaServer.exe
Missing method .ctor in assembly /home/pi/serveur_terraria/Terraria/TerrariaServer.exe, type System.Runtime.CompilerServices.ExtensionAttribute
Can't find custom attr constructor image: /home/pi/serveur_terraria/Terraria/TerrariaServer.exe mtoken: 0x0a000122
* Assertion at class.c:5597, condition `!mono_loader_get_last_error ()' not met
Stacktrace:
Native stacktrace:
Debug info from gdb:
[New LWP 4796]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
40 ../sysdeps/unix/sysv/linux/waitpid.c: Aucun fichier ou dossier de ce type.
Id Target Id Frame
2 Thread 0x7699f430 (LWP 4796) "mono" 0x76e2ca40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
* 1 Thread 0x76f3e000 (LWP 4795) "mono" 0x76e2eee8 in __libc_waitpid (Cannot access memory at address 0x2a
pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
Thread 2 (Thread 0x7699f430 (LWP 4796)):
#0 0x76e2ca40 in do_futex_wait (isem=isem@entry=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:48
#1 0x76e2caf4 in __new_sem_wait (sem=0x3181a4) at ../nptl/sysdeps/unix/sysv/linux/sem_wait.c:69
#2 0x00219f98 in mono_sem_wait ()
#3 0x0019091c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0x76f3e000 (LWP 4795)):
Cannot access memory at address 0x2a
#0 0x76e2eee8 in __libc_waitpid (pid=4797, stat_loc=0x7ed60ee8, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
#1 0x000c0ba4 in ?? ()
Cannot access memory at address 0x2a
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
si tu saurais comment résoudre cette erreur je suis preneur, merci d' avance.
Salut helloworld,
Vu le message d'erreur il semblerai que se soit plus un problème de compilation de Terraria. Je te conseille donc de poster ton erreur sur le github de TShock (https://github.com/NyxStudios/TShock/issues).
Bonne journée
ok mais du coup je me disais que si je l' ouvre sur mon pc sur le quel je joue me suffirait il à ouvrir le port 777 sur ma box et sur l' ip de mon pc à permettre à des personnes à ce connecter ?
Dans la théorie oui. Après j'ai jamais testé
Daccord, Super :)
probléme je suis un bricoleur est il se trouve que j'ai un Nas fais maison donc l'os que j'ai choisis est OpenMediaVault est je voudrais savoir si on pourrais faire pareil qu'avec les Nas Synology.
Salut,
Tu peux installer un OS de Synology sur un NAS fait maison. C'est justement ce que j'ai. Regarde du coté de XPEnology. Tu devrais trouver ton bonheur.
Pas bête d'hoster soi-même son propre serveur Terraria. Perso j'ai choisi d'en louer un, à force d'avoir des problèmes de coupures de serveur j'ai préféré payer quelques euros par mois et avoir l'esprit tranquille! :)
J'ai galéré pendant un moment pour trouver chez quel hébergeur aller, du coup j'ai fait un site qui récapitule la chose, vous pouvez y aller sur https://servcompare.fr/games/location-serveur-terraria
Salut,
As tu un retour sur la consommation de ressource du serveur terraria sur le NAS. Tu le ressens à l'utilisation ? ça ce voit vraiment ? Pour ma part j'ai un DS214j donc ce n'est pas non plus une machine de guerre niveau proco/ram.
Merci pour tes retours ;)
Bisous