3DS cs tf2 bf2 j-ops
 
Escepia WarFinder in neuer Version
Gewinner steht fest!
V-Server für 1 Euro
CS:GO Update
[Suche] Counter-Strike Comic
CS 1.6 Maus schwimmt leicht
Einsteigerhilfe Privat per Steam
Suche Anleitung um Bots auf dem ...



Random Bender
Bender
Screen-O-Rama
Screen-O-Rama
T-Shirt Shop
Weltkulturerbe - T-Shirt
Basics ]  [ HowTo ]  [ WIN ]  [ FAQ ]  [ Commands ] [ Server hinter Router ] [ Tools ]

HL² Deathmatch Linux-Server Setup

Grundsätzliches
Dieses Tutorial wurde von MaxKnax erstellt.

Um einen dedizierten HL² Deathmatch Server mit Steam zu erstellen, benötigen wir einen Steam-Account. Dieser ist zum einen kostenlos und bedarf zum anderen nicht eines gültigen CD-Keys.
Widmen wir uns also der
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 bei diversen Servern Angriffe, die entweder das System von außen lahm legen konnten oder einem lokalen Benutzer root-Rechte zusichern, beides ist natürlich nicht gewünscht ...
Am sinnvollsten ist es, für den Server einen eigenen User anzulegen (z.B. srcds) und den Server in dessen Heimatverzeichnis zu installieren.
In diesem Tutorial ist der User max, sein Home liegt in /home/max/, den Server installieren wir nach /home/max/srcds/

Wir loggen uns also als max direkt am Server oder über ssh ein und erstellen in unserem Home-Dir ein Verzeichnis namens srcds: mkdir srcds
Nun wechseln wir mit cd srcds in dieses Verzeichnis.Um nun den Server zu installieren benötigen wir das HLDS-Updatetool.
Am einfachsten bekommen wir es mit:
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
Wir machen das heruntergeladene Tool mit chmod u+x hldsupdatetool.bin ausführbar.
Jetzt einmal das Tool ausführen und die EULA mit "yes" beantworten:
./hldsupdatetool.bin.
Achtung: solltet ihr eine Fehlermeldung beim Entpacken bekommen: ncompress muss installiert sein!
Ein Listing eures Verzeichnisses sollte nun in etwa so aussehen:
-rwxr-xr-x 1 jwm users 3,4M 14. Jan 12:38 hldsupdatetool.bin
-rw-r--r-- 1 jwm users 3,4K 7. Apr 2005 readme.txt
-rwxr-xr-x 1 jwm users 7,5M 18. Nov 08:36 steam
-r-xr-xr-x 1 jwm users 350K 16. Nov 06:28 test1.so
-r-xr-xr-x 1 jwm users 443K 16. Nov 06:28 test2.so
-r-xr-xr-x 1 jwm users 8,0M 16. Nov 06:28 test3.so

Nun brauchen wir nur noch die Serverdateien. Dabei ist die Verfahrensweise bei einem Update einer vorhandenen Installation oder einer kompletten Neuinstallation gleich.
Wir rufen steam auf:

./steam -command update -game hl2mp -dir /home/max/srcds

Läuft der Server zufrieden stellend und ist die Einrichtung abgeschlossen kann man auch -autoupdate in der Kommandozeile hinzufügen. Dies bewirkt zum einen ein automatisches updaten des Servers sowie einen automatischen Neustart des Servers nach einem Crash, oder wenn dieser per quit in der Console (oder per rcon) beendet wurde.
Euer Rechner sollte jetzt (je nach Art eurer Internetanbindung und wie ausgelastet Steam ist) einige Zeit mit dem Download beschäftigt sein. Der download des srcds dauert um einiges länger als der des hlds, da das Volumen des kompletten Servers ca. 1,9 GB beträgt. Wenn er alles heruntergeladen hat, können wir einen Probestart versuchen (ich gehe weiterhin davon aus, dass wir uns in /home/max/srcds befinden)

Internet-Server

Wir starten den HL² DM mit den folgenden Befehlen:

./srcds_run -game hl2mp +map dm_lockdown +maxplayers 16

Dies startet einen HL² Deathmatch Server für maximal 16 Spieler mit der map dm_lockdown, dies ist auch die maximal mögliche Anzahl von Spielern. Falls alles geklappt hat, sollte irgendwann etwas Ähnliches wie dieses erscheinen:

Auto detecting CPU
Using AMD Optimised binary.
Auto-restarting the server on crash
Console initialized.
Network: IP 192.168.2.4, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Game .dll loaded for "Half-Life 2 Deathmatch"
maxplayers set to 16
Adding master server 207.173.177.11:27011
Adding master server 69.28.151.178:27011


Das bedeutet, der Server hat sich bei STEAM angemeldet und ist erreichbar.

Die unzähligen Fehlermeldungen am Anfang sind normal und verschwinden hoffentlich mit einem der nächsten Updates

Zu den Meldungen, die ignoriert werden können gehören:

  • free(): invalid pointer 0x401bd800!
  • CMaterial::GetNumAnimationFrames: no representative texture for material sprites/laserdot
  • The Navigation Mesh was built using a different version of this map
Jetzt kann man auf dieser Konsole mit dem Befehl status die Daten des Servers anzeigen lassen - in unserem Beispielfall sollte dort folgendes Erscheinen:

hostname: HL2 DM Server
build : 2230
udp/ip : 192.168.2.4:27015
map : dm_lockdown at: 0 x, 0 y, 0 z
players : 0 (16 max)

LAN-Server
Wir starten den HL² DM Server mit den folgenden Befehlen:

./srcds_run -game hl2mp -nomaster +sv_lan 1 +maxplayers 12 +map dm_lockdown

Dies startet einen HL² Deathmatch Server für maximal 12 Spieler mit der map dm_lockdown. Falls alles geklappt hat, sollte irgendwann

Master server communication disabled
 ...

erscheinen, d.h. der Server ist im internen Netzwerk erreichbar. Jetzt kann man auf dieser Konsole mit dem Befehl status die Daten des Servers anzeigen lassen - in unserem Beispielfall sollte dort folgendes Erscheinen:

hostname: HL2 DM Server
build : 2230
udp/ip : 192.168.2.4:27015
map : dm_lockdown at: 0 x, 0 y, 0 z
players : 0 (12 max)

Das Feintuning
Falls ihr zwischen Deathmatch und TeamDeathmatch umschalten wollt geschieht dies folgendermaßen:
mp_teamplay "1"
wenn 0 dann DM
wenn 1 dann TeamDM

Normalerweise klappt die CPU-Erkennung des srcds_run-Scripts ganz gut. Sollte sie scheitern, kann man mit -binary BINARY angeben, für welchen CPU-Typ das Binary-File sein soll.
Verfügbar sind momentan Binarys für generische AMD-CPUs (srcds_amd), Intel Pentium und aufwärts (srcds_i486) sowie Intel Pentium 3 und aufwärts (srcds_i686).
Um z.B. die Binary für den P3 zu laden sähe der Aufruf so aus:

./srcds_run -binary ./srcds_i686 -game hl2mp +maxplayers 12 +map dm_lockdown

Wichtig ist das voranstellen von ./, sonst findet das Script das Binary nicht!
Durch Aufruf von ./srcds_run -help zeigt euch das Script eine kleine Hilfe.

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 im Verzeichnis /home/max/srcds/hl2mp/cfg.
Sollte sie nicht existieren muss sie erstellt werden (eine Musterdatei findet ihr hier).

Das erstellen geht folgendermaßen: Wir wechseln in das richtige Verzeichnis: (wir befinden uns in /home/max/srcds)
cd hl2mp/cfg
Und erstellen eine neue Datei: vi server.cfg (sollte vi nicht vorhanden sein, nehmen wir einen beliebigen anderen Editor, z.B. mcedit, nano)
Damit wir in dieser Datei etwas schreiben können, drücken wir einmal I. Nun befinden wir uns im INSERT Modus. Jetzt können wir wie gewohnt alle Variablen eintippen, oder falls wir uns im Putty befinden dieses per Kopieren und Einfügen (Rechtsklick im Putty) in die Datei übertragen. Um die Datei zu speichern drücken wir ESC und schreiben ":wq" (ohne ""). Nun wurde die Datei gespeichert und der Editor beendet.
Sollen die Custom-Maps (und Skins, Sounds etc.) nicht auf dem Server selber liegen, gibt es die Möglichkeit, diese per sv_downloadurl auf einen Webserver auszulagern. Wie das geht steht ausführlich in dieser Anleitung.

Mehr zu den Einstellmöglichkeiten in der HowTo-Sektion, eine Übersicht über die Variablen des Servers gibt es hier:
Source Dedicated Server
(thx an Christian aka Opferlamm).


Soll der Server im Hintergrund laufen empfiehlt sich die Benutzung von screen. Näheres dazu findet ihr in diesem Tutorial. Wenn ihr den Server mit screen gestartet habt könnt ihr problemlos euer SSH-Login beenden und der Server läuft weiter.

Administration
Für die Leute, denen die Administration per rcon zu umständlich ist, gibt es natürlich auch Modifikationen.
Zurzeit ist mir nur eine bekannt: SAP.
Die Installation ist auf der Website vollständig beschrieben, aber für alle, die der Englischen Sprache nicht mächtig sind hier eine kurze Einweisung:
In unserem Ordner /home/max erstellen wir den Ordner install:
mkdir install
und wechseln in das eben erstellte Verzeichnis:
cd install
Nun ziehen wir uns die passende Datei:
wget http://www.thelostsite.co.uk/SAP%200.6e%20Linux.zip
Danach entpacken wir das Archiv mit: unzip SAP%200.6e%20Linux.zip

Sollte das Programm unzip nicht vorhanden sein, müssen wir es installieren, des weiteren kann es passieren das sich der Name der Datei die wir
downloaden wollen ändert. Einfach diesen durch den aktuellen ersetzen.

Nach dem entpacken haben wir nun 2 neue Dateien in unserem Ordner:
sap_sp_i486.so
sap_sp.vdf

Die .so veschieben wir in den /srcds/bin Ordner:
mv sap_sp_i486.so /home/max/srcds/bin/
Für die .vdf erstellen wir einen neuen Unterordner addons im hl2mp Verzeichnis:
mkdir /home/max/srcds/hl2mp/addons
Diese .vdf verschieben wir nun in den eben erstellten Ordner:
mv sap_sp.vdf /home/max/srcds/hl2mp/addons/

Nun wird beim nächsten starten des Servers der SAP Mod geladen.

Im nächsten Schritt legen einen Admin an, dies tun wir in der server.cfg im srcds/hl2mp/cfg Ordner.
Wir wechseln also wieder in den cfg Ordner: cd /home/max/srcds/hl2mp/cfg/
und öffnen die Datei server.cfg.
Wir fügen folgende Zeile ein:
admin_user "STEAMID" 3

STEAMID ersetzen wir durch die SteamID des Spielers, der Admin Rechte bekommen darf. Die oben genannte Zeile legt einen Admin mit Level 3 Berechtigung an,
die Beschreibung der einzelnen Stufen befindet sich auf der Seite des Anbieters.

Beim verbinden zum Server wird der jeweilige Admin erkannt, und kann in der Konsole mit: admin_help alle möglichen Befehle sehen.
Mögliche Probleme und ihre Lösung
ACHTUNG! Momentan braucht der SRCDS zwingend eine GLIBC, die mindestens Version 2.3.2 hat! Mit älteren GLIBC-Versionen crasht der Server sofort!

Ein Workaround ist momentan nicht verfügbar, ob Valve den Server lauffähig mit älteren GLIBC-Versionen macht ist fraglich.

Hilfreiche Tipps zum updaten der GLIBC sowie bei anderen "Startproblemen" finden sich in diesem Thread

Falls euch das updaten über das Updatetool (./steam -update hl2mp ...) zu lange dauert, könnt ihr die aktuellen Updates auch direkt hier herunterladen.

Für den Fall, das die "Grundinstallation" über das Updatetool zu lange braucht, weil Steam mal wieder langsam wie eine Schnecke ist, besteht die Möglichkeit, den kompletten Server hier downzuloaden.
Wählt dort bitte die Mirrors für Dedicated Server (...)

Wichtig ist dann, dass ihr die Installation entweder als root durchführt oder dass das Verzeichnis /usr/steam existiert, da der Installer dort das tgz-File ablegt!
Anschließend könnt ihr den Server mit tar in ein Verzeichnis eurer Wahl entpacken.

Solltet ihr den Server hinter einer Firewall oder einem Router betreiben, muss der Serverport (Standard ist UDP 27015) von dort auf den CS-Server geforwarded werden.
Ebenso müssen diese Ports geöffnet sein:

UDP 1200
UDP 27000 to 27015 inclusive
TCP 27030 to 27039 inclusive


Wenn euer Client und der Server in einem LAN hinter einem Router sind, könnt ihr mögliche Verbindungsprobleme durch einfügen von -port 27016 beheben.

Die Meldungen:
Failed to get valid content ticket oder Ran out of content tickets
liegen nicht an euch sondern daran, dass Steam hoffnungslos überlastet ist.

Bei der Meldung ContentServer rejected client's protocol version! hilft es im Allgemeinen, den Inhalt von /home/USER/.steam (oder ggf. /root/.steam) zu löschen und es dann noch mal versuchen.

Sollte es mit dem Updatetool schon beim erstellen des Accounts zu Problemen kommen, findet ihr hier jeweils die aktuelle Version des "nackten" Updatetools.
Startscript für den Server
Das Script gibt es hier
Es muss noch an eure Installation angepasst werden, siehe dazu auch die Kommentare im Script selber. Wenn das geschehen ist, reicht hlds start um den Server zu starten.

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 :)
Linux Links
Allerhand nützliche Links
Dieses Tutorial wurde von MaxKnax erstellt.

(c) 2002 - 2007 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 ]