Difference between revisions of "Linux dedicated server/fr"

From Team Fortress Wiki
Jump to: navigation, search
(Tips)
(Astuces)
Line 231: Line 231:
 
# Le fichier <tt>server.cfg</tt> va dans le dossier <tt>orangebox/tf/cfg</tt>. Pour plus d'information sur la configuration de votre serveur, voir [[Dedicated server configuration/fr]]
 
# Le fichier <tt>server.cfg</tt> va dans le dossier <tt>orangebox/tf/cfg</tt>. Pour plus d'information sur la configuration de votre serveur, voir [[Dedicated server configuration/fr]]
 
# Si vous volez que les gens à extérieur de votre réseau soient capables de se connecter – ceci dit, que vous n'êtes pas juste en train d'exécuter un serveur LAN – rappelez-vous d'ouvrir les ports 27000 à 27015 dans votre pare-feu.
 
# Si vous volez que les gens à extérieur de votre réseau soient capables de se connecter – ceci dit, que vous n'êtes pas juste en train d'exécuter un serveur LAN – rappelez-vous d'ouvrir les ports 27000 à 27015 dans votre pare-feu.
# If you don't have a firewall, get one. Exposing your server to the internet without a firewall is very risky.
 
 
# Si vous n'avez pas de pare-feu, trouvez-en un. Exposer votre serveur à l'internet sans protection est très risqué.
 
# Si vous n'avez pas de pare-feu, trouvez-en un. Exposer votre serveur à l'internet sans protection est très risqué.
# Recevez-vous une erreur comme: "-bash: ./hldsupdatetool.bin: No such file or directory"? Si vous êtes sur Debian, essayez d'installer lib32gcc1 avec "apt-get install lib32gcc1".
+
# Recevez-vous une erreur comme: "'''-bash: ./hldsupdatetool.bin: No such file or directory'''"? Si vous êtes sur Debian, essayez d'installer lib32gcc1 avec "apt-get install lib32gcc1".
  
 
== See also ==
 
== See also ==

Revision as of 01:34, 24 January 2013

Linux est l'une des deux plates-formes actuellement prises en charge par l'outil de Valve serveur dédié (HLDS), l'autre étant Microsoft Windows. L'installation de base et la configuration d'un serveur dédié Linux est la même pour toutes les distributions, mais de petits détails, tels que les noms de paquets, répertoires, etc peuvent différer d'une distribution à l'autre. Il est recommandé que vous vérifiez les dépôts de votre distribution pour les paquets nécessaires avant de continuer.

Comment lire cet article

Cet article a été écrit selon la syntaxe de documentation Linux standard, ce qui signifie que:

  • Une commande préfixée par # est destinée à être exécuté comme root. La plupart des distributions ont un compte root séparée; pour d'autres distributions comme Ubuntu, Linux Mint, CrunchBang, etc le préfixe sudo assure que la commande est exécutée en tant que root.
  • Une commande préfixée par $ est destinée à être exécuté comme utilisateur.
  • ./ signifie "répertoire courant".

Configuration requise

Un certain nombre d'exigences existent afin d'exécuter un serveur Team Fortress 2 sur la plate-forme Linux:

  • Accès en écriture au répertoire de travail courant
  • Glibc >= 2.3.6</ code>
  • Environ 9 Go d'espace disque disponible (pour un serveur barebones sans cartes personnalisées, des sons, etc)
  • Dans le cas d'une distribution 64-bit les packages lib32gcc1 ou ia32-libs doivent être installés:

Sur CentOS 64-bits exécuter:

# yum install libgcc.i686 glibc.i686

Sur Debian/Ubuntu/Linux Mint 64-bit exécuter:

$ sudo apt-get install ia32-libs lib32gcc1

Sur ArchLinux 64-bit exécuter:

$ sudo pacman-Sy lib32gcc1 ia32-libs

  • Si vous effectuez l'installation sur CentOS, vous devrez utiliser cette commande avant yum install ncompress
  • Si vous effectuez l'installation sur FreeBSD (ce qui n'est pas du tout Linux), vous devez activer la compatibilité avec Linux dans le noyau et installer un système de base via la collection des ports. Instructions pour vous aider à démarrer sont situés [1].

Installation

Il y a un certain nombre de façons différentes de faire fonctionner un serveur dédié. Dans cet article, nous supposons qu'un utilisateur spécifique (tf2server) a été créé dans le seul but de gérer un serveur de Team Fortress 2. Pour créer un utilisateur, exécutez la commande suivante en tant que root:

# adduser tf2server

Vous serez invité à entrer un nom, un mot de passe, ainsi que d'autres informations; remplir ce formulaire comme il vous plaît. Puis changez d'utilisateur, en utilisant la commande su:

$ su -l tf2server

Prochaine étape, créer un répertoire et y entrer. Vous pouvez l'appeler comme vous voulez, j'ai choisi "hlds" (pour Half-Life Dedicated Server):

$ mkdir hlds && cd hlds

La prochaine chose que nous devons faire est de télécharger l'outil de mise à jour serveur dédié (hldsupdatetool.bin), et changer ses permissions pour qu'il soit exécutable, ce qui nous permet de télécharger le binaire Steam nécessaire pour télécharger notre server. Enfin, nous lançons le binaire.

$ wget http://storefront.steampowered.com/download/hldsupdatetool.bin && chmod +x hldsupdatetool.bin
$ ./hldsupdatetool.bin

Quand nous lançons le binaire, nous sommes invité à accepter les conditions de Valve et conditions d'utilisation de l'outil de mise à jour; après avoir lu et accepté les termes inclus, tapez "yes", et appuyez sur Entrée. La prochaine chose à faire est d'extraire le binaire Steam. Exécutez-le pour télécharger la dernière version de l'outil de mise à jour HLDS:

$ ./steam
Checking bootstrapper version ...
Getting version 50 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command

Faites ce qui est demandé, répétez la même commande. Tout ce que nous devons faire maintenant est de télécharger les fichiers serveur TF2, et le lancer.

Créez un autre répertoire, qui abritera les fichiers réels du serveur (dans /hlds/). Nous appellerons ce dossier serveur.

$ mkdir serveur

Ensuite, on va demander à Steam de télécharger les fichiers de jeu Team Fortress 2 dans ce dossier, en utilisant cette commande.

$ ./steam -command update -game tf -dir serveur

Celle-ci exécute la commande de mise à jour (update) du jeu tf (Team Fortress 2) dans le dossier serveur. Cette opération pourrait prendre beaucoup de temps.

Exécuter le serveur

On a presque fini. Le serveur est installé. La seule chose à faire est de le lancer, avec un certain nombre d'arguments. Entrez dans le dossier /server/orangebox. Dans ce dossier, créez un fichier appelé steam_appid.txt et ajoutez-y seulement ce numéro.

440

Ensuite, dans ce même dossier, il devrait y avoir un script appelé srcds_run, qui lance le serveur. Une utilisation basique de ce script pourrait être:

$ ./srcds_run -game tf -autoupdate -steambin /home/tf2server/hlds/steam -maxplayers 24 +map cp_badlands

Ceci lance un serveur Team Fortress 2 avec un maximum de 24 joueurs sur Badlands qui va télécharger des mises à jour automatiques.

screen

Plusieurs opérateurs de serveur choisissent d'exécuter leur serveur sous screen, puisqu'il vous laisse basculer entre la console et le shell, en plus de terminer votre session SSH sans arrêter le serveur. Il peut être installé via votre gestionnaire de paquets. Le serveur peut ensuite être lancé avec:

$ screen -m -S tf2 ./srcds_run paramètres

paramètres sont vos paramètres srcds_run normaux. Vous pouvez utiliser Ctrl+A+D pour minimiser la console, et screen -r tf2 pour la ramener. Ctrl+D vont terminer la session (soyez certain d'utiliser la command killserver en premier) et Ctrl+A+[ vous laissent défiler à travers. Voir le manuel screen pour plus de commandes et de paramètres.

Lancement automatique lorsque le serveur est redémarré

En cas de panne de courant innatendue, il pourrait être utile que le serveur reccomence automatiquement. Le script init Debian LSB ci-dessous peut être utilisé pour reccomencer automatiquement le serveur. Notez que screen est utilisé. Ce script devrait être appelé serveur-TF2 et doit être mis dans le dossier /etc/init.d. Après avoir fait cela, lancez la commande:

$ update-rc.d serveur-TF2 defaults

Ceci devrait assurer un lancement approprié du serveur après chaque redémmarage.

NOTE: Ce code n'a pas été traduit parce que je n'y comprenais rien. Si quelqu'un d'autre veut le faire, il est le bienvenu :) Nicoco007 17:25, 23 January 2013 (PST)

#!/bin/sh

### BEGIN INIT INFO
# Provides:          tf2server
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Team Fortress 2 server
# Description:       Starts a Team Fortress 2 server
### END INIT INFO

NAME="Team Fortress 2"
USER="tf2server"
SCREENREF="tf2"
BINARYPATH="/home/tf2server/hlds/gameserver/orangebox"
BINARYNAME="srcds_run"
PIDFILE="tf2server.pid"

OPTS="-game tf -autoupdate -steambin /home/tf2server/hlds/steam +maxplayers 32 +ip 0.0.0.0 +map mvm_decoy"

cd "$BINARYPATH"

running() {
    if [ -n "`pgrep -f $BINARYNAME`" ]; then
        return 0
    else
        return 1
    fi
}

start() {
    if ! running; then
        echo -n "Starting the $NAME server... "
        start-stop-daemon --start --chuid $USER --user $USER --chdir $BINARYPATH --exec "/usr/bin/screen" -- -dmS $SCREENREF $BINARYPATH/$BINARYNAME $OPTS
        pgrep -f $BINARYNAME > $PIDFILE
        if [ -s $PIDFILE ]; then
            echo "Done"
        else
            echo "Failed"
            rm $PIDFILE
        fi
    else
        echo "The $NAME server is already started."
    fi
}

stop() {
    if running; then
        echo -n "Stopping the $NAME server... "
        kill `cat $PIDFILE`
        while running; do
            sleep 1
        done
        rm $PIDFILE
        echo "Done"
    else
        echo "The $NAME server is already stopped."
    fi
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
	stop
        start
    ;;
    status)
        if running; then
            echo "The $NAME server is started."
        else
            echo "The $NAME server is stopped."
        fi
    ;;
    *)
        echo "Usage: $0 (start|stop|restart|status)"
        exit 1
esac
exit 0

iptables rules

Je n'ai vraiment aucune idée de ce que c'est, mais si vous comprenez, alors tout va pour le mieux! Nicoco007 17:24, 23 January 2013 (PST)

-A INPUT -i venet0 -p tcp -m tcp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27015 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27005 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p tcp -m tcp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27016 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27018 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27019 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i venet0 -p udp -m udp --dport 27020 -m state --state NEW,ESTABLISHED -j ACCEPT
  • Note: may be shortened if you have multiports extension.

Résolution de problèmes

Mon serveur n'apparait pas dans la section LAN de la liste de serveurs de mon jeu.
Je ne peux pas accéder à mon loadout lorsque je joue sur ce serveur.
Are you still able to connect using connect <ip-address> in the Console de Développeur?
Durant le démarrage, est-ce que votre serveur renvoie ce(s) message(s)?
*	Unable to load Steam support library.*
*	This server will operate in LAN mode only.*
When you connect with your client, does the server say the following?
Lorsque vous vous connectez avec votre client, est-ce que le serveur revoie:
NULL ISteamGameServer in ConnectClient. Steam authentication may fail.
…
Cannot verify load for invalid steam ID […]
Si oui, alors ces deux problèmes ont la même résolution: Soyez certain que vous avez un fichier steam_appid.txt qui contient le numéro 440 dans votre dossier orangebox. Voir Exécuter le serveur ci-dessus.
Mon serveur ne se met pas à jour automatiquement lorsqu'il démarre.
Pendant le démarrage, est-ce que votre serveur renvoie:
WARNING: Failed to locate steam binary.
WARNING: Could not locate steam binary:, ignoring.
Si oui, alors vous devez pointer srcds_run à l'emplacement de votre binaire Steam, en utilisant l'argument -steambin. Voir Exécuter le serveur ci-dessus.

Astuces

  1. Le premier lancement de ./steam pourrait se bloquer lors de la vérification de la version bootstrap. Vous devrez donc réessayer plusieurs fois avant qu'il ne passe à la prochaine étape.
  2. Le fichier server.cfg va dans le dossier orangebox/tf/cfg. Pour plus d'information sur la configuration de votre serveur, voir Dedicated server configuration/fr
  3. Si vous volez que les gens à extérieur de votre réseau soient capables de se connecter – ceci dit, que vous n'êtes pas juste en train d'exécuter un serveur LAN – rappelez-vous d'ouvrir les ports 27000 à 27015 dans votre pare-feu.
  4. Si vous n'avez pas de pare-feu, trouvez-en un. Exposer votre serveur à l'internet sans protection est très risqué.
  5. Recevez-vous une erreur comme: "-bash: ./hldsupdatetool.bin: No such file or directory"? Si vous êtes sur Debian, essayez d'installer lib32gcc1 avec "apt-get install lib32gcc1".

See also