Installer son Serveur TeamSpeak 3
Plus la peine de présenter Teamspeak. Il s’agit d’une plate-forme de communication très populaire. L’installation d’un serveur est gratuite si l’utilisation en est non commerciale dans une limite de 512 slots (voir « licence non-profit »). Bref, il y a de quoi faire et il ne reste plus qu’à l’installer sur son serveur dédié.
Exemple de Script d’Installation
Voici le code tiré d’un de mes scripts de ré-installation de serveur. Il a été testé sur une Debian 7.4 stable (Wheezy) en 64 bits fraîchement installée. Il nécessite d’être root et n’oubliez pas un chmod a+x ./nom_du_script.sh
avant. Ce code vient sans garantie de ma part bien évidemment ! Testez-le d’abord sur une VM.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | #!/bin/bash # where you want to log the installation Log_File=/root/install_ts3.log # Define here the ts3 IP otherwise it will default to the 0.0.0.0 address # do not forget to remove comments on the following line # IP_server="192.168.0.100" # install TeamSpeak version 3.0.10.3 install_ts3 () { echo -e "\n$(date +%F\ %T) Teamspeak server 3 Installation\n" >> $Log_File echo -e "\nTeamspeak server 3 Installation\n" # create teamspeak user if ( ! addgroup teamspeak --gid 120 >> $Log_File 2>&1 ) ; then echo -e "Failed to create Teamspeak log directory" >> $Log_File ; return 1 ; fi if ( ! useradd -r -M -u 112 -g 120 teamspeak >> $Log_File 2>&1 ) ; then echo -e "Failed to create Teamspeak log directory" >> $Log_File ; return 1 ; fi # Create Log Directory if ( ! mkdir -p /var/log/teamspeak3 >> $Log_File 2>&1 ) ; then echo -e "Failed to create Teamspeak log directory" >> $Log_File ; return 1 ; fi if ( ! chown teamspeak.adm /var/log/teamspeak3 >> $Log_File 2>&1 ) ; then echo -e "Failed to change Teamspeak log directory properties" >> $Log_File ; return 1 ; fi # download Teamspeak file if ( ! wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.10.3/teamspeak3-server_linux-amd64-3.0.10.3.tar.gz >> $Log_File 2>&1 ) ; then echo -e "Failed to download teamspeak" >> $Log_File ; return 1; fi if ( ! tar -zxvf teamspeak3-server_linux-amd64-3.0.10.3.tar.gz -C /var/lib >> $Log_File 2>&1 ) ; then echo -e "Failed to extract Teamspeak" >> $Log_File ; return 1 ; fi if ( ! mv /var/lib/teamspeak3-server_linux-amd64 /var/lib/teamspeak3-server >> $Log_File 2>&1 ) ; then echo -e "Failed to change Teamspeak directory" >> $Log_File ; return 1 ; fi if ( ! chown teamspeak. /var/lib/teamspeak3-server -R >> $Log_File 2>&1 ) ; then echo -e "Failed to change Teamspeak directory properties" >> $Log_File ; return 1 ; fi # create start-up script cat > /etc/init.d/teamspeak3-server <<EOF #! /bin/sh ### BEGIN INIT INFO # Provides: teamspeak # Required-Start: networking # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: S 0 1 6 # Short-Description: TeamSpeak Server Daemon # Description: Starts/Stops/Restarts the TeamSpeak Server Daemon ### END INIT INFO set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="TeamSpeak3 Server" NAME=teamspeak3-server USER=teamspeak DIR=/var/lib/teamspeak3-server DAEMON=\$DIR/ts3server_startscript.sh #PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/\$NAME # Gracefully exit if the package has been removed. test -x \$DAEMON || exit 0 cd \$DIR su \$USER -c "./ts3server_startscript.sh \$1 inifile=ts3server.ini" EOF if ! test -f /etc/init.d/teamspeak3-server ; then echo -e "Warning: start script not properly installed" >> $Log_File ; fi # create initfile cat > /var/lib/teamspeak3-server/ts3server.ini <<EOF machine_id= default_voice_port=9987 voice_ip=$IP_server licensepath= filetransfer_port=30033 filetransfer_ip=$IP_server query_port=10011 query_ip=$IP_server query_ip_whitelist=query_ip_whitelist.txt query_ip_blacklist=query_ip_blacklist.txt dbplugin=ts3db_sqlite3 dbpluginparameter= dbsqlpath=sql/ dbsqlcreatepath=create_sqlite/ dbconnections=10 logpath=/var/log/teamspeak3/ logquerycommands=0 dbclientkeepdays=30 logappend=0 EOF if ! test -f /var/lib/teamspeak3-server/ts3server.ini ; then echo -e "Warning: initfile not properly installed" >> $Log_File ; fi # Add as a service chmod a+x /etc/init.d/teamspeak3-server update-rc.d teamspeak3-server defaults return 0 } # start script # # test if you are root if [ ! "${UID}" = "0" ]; then echo -e "You need to be root to use this script" ; exit 1 ; fi # select 0.0.0.0 as IP adress if none have been defined by user if [ "x$IP_server" = "x" ] ; then IP_server="0.0.0.0" ; fi # ts3 installation if ( ! install_ts3 ) ; then echo -e "TeamSpeak Server Installation failed" ; exit 1 ; fi echo -e "Intallation successful\nTo start your teamspeak server please use\nservice teamspeak3-server start" exit 0 |
Démarrage du service TeamSpeak
Voilà, il ne vous reste plus qu’à activer le service TeamSpeak avec un simple service teamspeak3-server start
. Surveillez bien à la ligne de commande le 1er démarrage, le serveur vous fournira le login et mot de passe admin ainsi qu’un « ServerAdmin privilege key » indispensables pour la bonne administration du serveur. Par la suite, le serveur se relancera automatiquement à chaque redémarrage du serveur.
Vous pouvez aussi modifier les paramètres du serveur dans le fichier /var/lib/teamspeak3-server/ts3server.ini suivi d’un service teamspeak3-server reload
Autres Versions Linux
Ce script devrait probablement fonctionner sur n’importe quelle Debian 64 bits. Pour une version 32 bits, il faudra probablement utiliser le package 32 bits de teamspeak. Pour les autres linux, il faudra probablement quelques adaptations.
Charge Serveur
La charge cpu et ram reste somme toute assez faible même sur un vieux processeur (testé sur un celeron avec ~150 utilisateurs). Selon la qualité des codecs employés, il faut quand même compter jusqu’à 60kbps par utilisateur ce qui peut amener facilement dans les 30 Mbps si votre Teamspeak est blindé.
D’où l’utilité d’un Hébergeur avec une Infrastructure anti-DDOS
Les pointes à 150 Mbps sont juste les caprices d’un débile qui s’était fait bannir par l’administrateur du TeamSpeak. Le temps que l’anti-DDoS d’OVH s’active, environ 2 min, le TeamSpeak a enregistré 50% de « packet loss », les voix étaient métalliques mais il n’a pas crashé. On ne le voit pas sur le graphe du serveur, mais les deux derniers DDoS ont en fait continué jusqu’à 2h du matin! Ainsi va la vie d’internet.
A part ça, faire tourner un TeamSpeak sur son serveur dédié est un bon moyen de rendre service à la communauté et ne coûte pas grand chose en ressources. J’expliquerai dans un prochain post comment installer une interface web de gestion du TeamSpeak avec un tsviewer.