3DS cs tf2 bf2 j-ops
 
Valve kündigt Steam MobileApp an
Map of the Week (KW05)
Universität Tübingen lädt zu wi...
Neues zur Challenge
Server Erstellen Partner gesucht
Team bzw. Einzel - Gungame Serve...
Probleme bei der Verbindung zu d...
Probleme mit CS



Random Bender
Bender
CS Trash Talk
Screen-O-Rama
Screen-O-Rama
ein Fun War mal ganz anders
T-Shirt Shop
Stern
Basics ]  [ HowTo ]  [ WIN ]  [ FAQ ]  [ Commands ] [ Server hinter Router ] [ Tools ]

Linux Server Setup

Grundsätzliches
DIESE VERSION WIRD NICHT MEHR SUPPORTET UND FUNKTIONIERT NUR NOCH IM LAN!

In diesem Tutorial geht es nur um die Installation eines Half-life dedicated Servers für Linux - es werden keine grundlegenden Linux-Kenntnisse vermittelt. Der Rechner sollte also schon komplett funktionstüchtig sein und vor allem ein fertig konfiguriertes Netzwerk vorweisen. Die Beschreibung bezieht sich nur auf die Kommandozeile, also die installierte Shell. In den meisten Fällen sollte das die "bash" sein, für andere Shells ergibt sich aber meines Wissens kein Unterschied. Eine grafisch gestützte Installation wie unter Windows sollte man nicht erwarten.
Auch möchte ich hier nicht auf die Vor- und Nachteile einzelner Linux-Distributionen eingehen, jeder sollte diejenige nutzen, die ihm von der Bedienung und Dokumentation am sympathischsten erscheint.

Wer noch keinerlei Linux-Erfahrungen hat, sollte sich jedoch auch überlegen, seinen HL-/CS-Server vielleicht doch unter einem Windows zu installieren, dort ist für viele die Bedienung einfacher und die Oberfläche leichter zu durchschauen - evtl. stellt Windows 2000 dort eine Alternative dar.
Wer aber Erfahrungen im Bereich UNIX/Linux hat, sollte seinen Server aufgrund der Stabilität und Performance auch dort laufen lassen, vor allem der Fernzugriff auf den Rechner zahlt sich dort größtenteils schnell aus.

Eine kleine Zusammenfassung wichtiger Quellen und Nachschlagewerke am Ende des Tutorials.

Installation
Zu Beginn einige Sicherheitsfragen. Prinzipiell sollte man unter Linux Programme nur dann als "root" starten, wenn dies zwingend notwenig ist. Einen Half-life Server sollte man immer als "normaler" User ausführen!
Außerdem gab es zumindest bei den diversen Quake-Servern für Linux einige Angriffe, die entweder das System von aussen lahm legen konnten oder einem lokalen Benutzer root-Rechte zusichern, beides ist natürlich nicht gewünscht ...

Gehen wir der Einfachheit halber trotzdem mal die Schritte als root durch, die Dateirechte können auch später noch geändert werden.
Zuerst brauchen wir die beiden Pakete des Half-life Servers und für Counter-Strike, aktuell sind das
hlds_l_3110_full.bin
cs_15_full.tar.gz
Diese beiden Dateien sollten sich schon auf dem Linux System befinden.
Bevor wir wie gewohnt installieren, müssen wir die *bin-Datei entpacken. Dazu machen wir sie erst ausführbar und führen sie anschliessend aus:

chmod a+x hlds_l_3110full.bin
./hlds_l_3110full.bin


Nun noch die Eula mit "yes" beantworten, etwas warten und da ist unser gewohntes *tgz-File.
Als Installationsverzeichnis wählen wir /usr/local/halflife, dort muss allerdings genügend Platz vorhanden sein, bei mir braucht eine Installation über 470 MB - also nicht zu knapp bemessen. In dieses Verzeichnis kopieren/verschieben wir jetzt die beiden oben genannten Dateien.
Die folgenden Schritte entpacken den kompletten Half-life Server und das Counter-Strike MOD in die jeweiligen Verzeichnisse:

cd /usr/local/halflife
tar xvzf hlds_l_3110_full.tar.gz
cd hlds_l
tar xvzf ../cs_15_full.tar.gz

Im Gegensatz zu älteren Versionen muss der Linux HL-Server nicht mehr mit der Datei namens libhlwon.so herumhantieren. hlds_run ist inzwischen ein Script, das den Pfad selbsttätig setzt.

Soll nun der Server unter einem anderen Benutzer laufen, ist folgendermassen vorzugehen:

chown -R BENUTZER:GRUPPE /usr/local/halflife/*

Sowohl der Benutzer als auch die Gruppe müssen natürlich existieren.

Je nachdem, ob der Server im Internet oder im LAN laufen soll, muss er anders gestartet werden:

Internet-Server
Nach dem abschalten des WON-Networks ist diese Version nicht mehr Internetfähig.
LAN-Server
Wir starten den CS-Server mit den folgenden Befehlen:

cd /usr/local/halflife/hlds_l
./hlds_run -game cstrike -insecure -nomaster +sv_lan 1 +maxplayers 12 +map de_dust


Dies startet einen Counter-Strike Server für maximal 12 Spieler mit der map de_dust. Dabei wird keine Verbindung zu einem Masterserver aufgebaut, der Server erscheint auch nicht in der WON-Liste. Da wir keine Onlineverbindung haben, müssen wir mit "-insecure" auch das herunterladen der Anti-Cheat-Dateien ausschalten. Falls alles geklappt hat, sollte irgendwann

Auth Server
 ...

erscheinen, d.h. der Server ist im internen Netzwerk erreichbar.
Eventuelle Fehlermeldungen wie:

scandir failed ...
couldn't exec language.cfg
couldn't exec listip.cfg
couldn't exec banned.cfg

kann man ignorieren oder durch anlegen der entsprechenden Dateien oder Verzeichnisse abstellen.
Jetzt kann man auf dieser Konsole mit dem Befehl status die Daten des Servers anzeigen lassen - in unserem Beispielfall sollte dort folgendes Erscheinen:

hostname: CS 1.5 Server
version : 46/3.1.1.1 2415 secure
tcp/ip : 192.168.1.1:27015
map : cs_assault at: 0 x, 0 y, 0 z
players : 0 active (12 max)

Server beim Systemstart starten
Dafür braucht es ein Script, dass dorthin kommt, wo auch die anderen Scripten für die Dienste liegen, die beim Systemstart automatisch ausgeführt werden sollen. Bei den meisten Distributionen ist dies /etc/rc.d/init.d oder /etc/init.d/
Wir könnten uns nun selber ein solches schreiben, einfacher ist es jedoch, auf ein fertiges zurückzugreifen.
Julien Escario und Cedric Rochat haben da ein nettes kleines Script geschrieben, das mit jeder Distro lauffähig sein sollte, solange awk installiert ist (was allerdings fast immer der Fall ist :) ) Das Script gibt es hier

HHier eine Beispielinstallation unter RH:
1) Script herunterladen und zB als "hlds_start" nach /etc/rc.d/init.d speichern
2) Script mit chmod 755 /etc/rc.d/init.d/hlds_start ausführbar machen
3) im Script die Variablen DIR, DAEMON & PARAMS den eigenen Wünschen anpassen
4) Testen, ob alles läuft: /etc/rc.d/init.d/hlds_start start bzw /etc/rc.d/init.d/hlds_start stop sollten funktionieren.
5) Dann die Links in das jeweilige Runlevel erstellen:
    ln -s /etc/rc.d/init.d/hlds_start /etc/rc.d/rc3.d/S90hlds_start
    ln -s /etc/rc.d/init.d/hlds_start /etc/rc.d/rc3.d/K30hlds_start

Wenn dann alles zufriedenstellend läuft, gelangt man mit screen -r cstrike an die Serverkonsole.
Mehr Infos zu screen finden sich hier
Ebenfalls sei auf die Doku im Script selber hingewiesen :)
Performance messen
Bevor es ans Feintuning geht, ist es sinnvoll, mal zu schauen, wieviel Leistung der Server wann zieht. Nun könnte man sich Stundenlang vor "top" setzen, aufwändige Tools installieren - oder man nimmt einfach das geniale Script von [ZDB]pennywise.
Zu finden ist es direkt hier oder auf einem der Mirrors:
Homepage :: Mirror 1 :: Mirror 2
Das Script ist ausführlich dokumentiert, ebenso enthalten ist eine leichtverständliche README.
Das Feintuning
Wenn der Server einmal läuft, kann man ihn mit dem Befehl quit auf der Serverkonsole wieder beenden. Einstellungen wie der Hostname des Servers und Befehle zum Spielverhalten finden sich in der Datei server.cfg.

Mehr zu den Einstellmöglichkeiten in der HowTo-Sektion.

Für die Übersicht der verschiedenen Plugins und deren Installation sei auf diese immer aktuelle und ausführliche Seite des OpFeR|cLaNs verwiesen (thx noch mal an OpFeRlAmM@ OpFeR|cLaN.
Linux Links
Allerhand nützliche Links
11/2003 by jwm

BITTE KEINE SUPPORTANFRAGEN, DAFÜR SIND DAS SERVEROP-FORUM UND DER #SERVEROP-CHANNEL DA!


Basics ]  [ HowTo ]  [ WIN ]  [ FAQ ]  [ Commands ] [ Server hinter Router ] [ Tools ]