Serveur dédié Team Fortress 2 sous Linux

Le serveur Djudge! Team Fortress 2 tourne. Sur le serveur qui vous sert en ce moment ce billet.

Vu que c’est basé sur le moteur Source, j’imagine que tous les admins de CS:S savent déjà tout ça, mais j’ai un peu lutté, donc je résume.

On choppe Steam et on télécharge le serveur de TF. C’est gros, vu qu’on télécharge aussi Half-Life 2.


sudo mkdir /usr/local/steam
cd /usr/local/steam
sudo adduser steam
sudo chown steam /usr/local/steam
sudo su steam

wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
# tapez yes
chmod +x steam
./steam -command update -game "tf" -dir

il faut reprendre la dernière ligne plusieurs fois, parce qu’on se fait déconnecter.

Ensuite il faut ouvrir les ports du firewall.

J’utilise iptables-restore et iptables-save pour respectivement charger et dumper mes règles à partir de l’entrée standard.

Voici les règles que j’ajoute à mon fichier /etc/iptables.up.rules


#Source server
-A INPUT -p udp -m udp --dport 1200 -j ACCEPT
-A INPUT -p udp -m udp --dport 27000:27015 -j ACCEPT
-A INPUT -p udp -m udp --dport 27020 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27030:27039 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27015 -j ACCEPT
# a placer avant cette ligne :
-A INPUT -j DROP
# et les autres DROP

Qu’on charge ensuite avec :


sudo iptables-restore < /etc/iptables.up.rules

Pour finir on lance le serveur :


cd /usr/local/steam/orangebox
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24 +map ctf_2fort

Le serveur doit indiquer à un moment qu’il se connecte sur les serveurs steam, et c’est bien.

Une fois qu’il est lancé, la console reste accessible pour donner des commandes (kick/ban user etc)

La liste des commandes peut être affiché avec :


cvarlist mp
# et
cvarlist sv

On peut les sauver dans un fichier log avec


cvarlist log listecvar.txt


Il est donc recommander de lancer le serveur dans un terminal virtuel comme `screen`.


screen
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24

Avec : control-a-d pour se déconnecter du terminal
et screen -r pour se ré-attacher au terminal.

Sources : le forum de http://www.teamfortress2.fr/

%d bloggers like this: