3DScstf2c17bf2j-ops00
 
Alien Swarm kostenlos über Steam
Half-Life 1 Dedicated Server Be...
Ab sofort: Day of Defeat für Mac
Ab sofort: CS:S für Mac
Config bzw. Buyscript funktionie...
Sehr Starkes Ping-Problem
Schleichentoggel
CS: Source - alte Grafik nicht m...



Random Bender
Bender
Manchmal muss man eben campen!
Screen-O-Rama
Screen-O-Rama
ein Fun War mal ganz anders
Unser Shop
Scheiße
Basics ]  [ HowTo ]  [ WIN ]  [ FAQ ]  [ Commands ] [ Server hinter Router ] [ Tools ]

CS: Source Linux-Server Setup

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 aussen 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 jwm, sein Home liegt in /home/jwm/, den Server installieren wir nach /home/jwm/srcds/

Wir loggen uns also als jwm 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!
Alternativ könnt ihr auch gzip verlinken: ln -s /usr/bin/gzip /usr/bin/uncompress (dies müsst ihr als root eingeben!).
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

Nun kann die Installation beginnen und wir brauchen jetzt 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 "Counter-Strike Source" -dir /home/jwm/srcds

Eventuell muss der Steam-Installer sich noch updaten, dann muss man es dannach noch einmal aufrufen.
Alternativ kann man sich auch dieses Script von mercury nehmen, anpassen und verwenden - dann muss man sich die Befehle nicht merken :)

Läuft der Server zufriedenstellend 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.
Euer Rechner sollte jetzt (je nach Art eurer Internetanbindung und wie ausgelastet Steam ist) einige Zeit mit dem Download beschäftigt sein. Wenn er alles heruntergeladen hat, können wir einen Probestart versuchen (ich gehe weiterhin davon aus, dass wir uns in /home/jwm/srcds befinden)

Internet-Server

Wir starten den CS-Server mit den folgenden Befehlen:

./srcds_run -game cstrike +map de_dust -maxplayers 12

Dies startet einen Counter-Strike Server für maximal 12 Spieler mit der map de_dust. Falls alles geklappt hat, sollte irgendwann etwas ähnliches wie dieses erscheinen:

Auto detecting CPU
Using default binary.
Auto-restarting the server on crash
Console initialized.
Attempted to create unknown entity type event_queue_saveload_proxy!
Game .dll loaded for "Counter-Strike: Source"
maxplayers set to 12
Network: IP 192.168.1.1, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Executing dedicated server config file
Adding master server 207.173.177.11:27011
Adding master server 69.28.151.178:27011
Connection to Steam servers successful.
VAC secure mode is activated.

Das bedeutet, der Server hat sich bei STEAM angemeldet und ist 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: JWMs CS:Source-Server
version : 1.0.0.27/7 2677 secure
udp/ip : 192.168.1.6:27015
map : de_dust at: 0 x, 0 y, 0 z
players : 0 (12 max)


In manchen Fällen ist es nötig, dem Server dezidiert die IP "mitzugeben" oder den Serverport zu ändern. Wenn zum Beispiel seltsamerweise rcon trotz in der server.cfg gesetztem Passwort nicht funktioniert, hilft im Allgemeinen
+ip XXX.XXX.XXX.XXX
Aber Achtung, es darf NUR eine IP übergeben werden, die auch physikalisch im Server vorhanden ist!
Möchte man den Port des Servers ändern (z.B. weil man mehrere Server auf dem gleichen Rechner starten will) geschieht dies mit
-port 270XX
wobei man aufpassen sollte, dass man nicht einen der vom Server für andere Standards reservierten Ports nimmt (hier findet ihr die reservierten Ports).
Solltet ihr das per Default aktive VAC2 (ValveAntiCheat2) ausstellen wollen: -insecure in der Startzeile hinzufügen.

LAN-Server
Wir starten den CS-Server mit den folgenden Befehlen:

./srcds_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. Mit "-insecure" schalten wir das herunterladen der Anti-Cheat-Dateien aus. 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: JWMs CS:Source-Server
version : 1.0.0.27/7 2677 insecure
udp/ip : 192.168.1.6:27015
map : de_dust at: 0 x, 0 y, 0 z
players : 0 (12 max)

Das Feintuning
Als Admin-Plugin kommt eigentlich nur Mani-Mod in Frage, da die für 1.6er-Server geschriebenen Plugins nicht mit CS:S-Servern funktionieren.

Oder man greift direkt zu dem kompletten Config-Pack von Zorrox. Der enthält Mani Admin Plugin, Source MetaMod, Matties Eventscript, ES_Tools usw. Für Fragen und Hilfe dazu hat es einen eigenen Thread bei MM.

Seit dem 18. Januar 2005 hat CS: Source auch eingebaute Bots. Diese werden wie folgt gesteuert:

bot_quota X - Anzahl der Bots, 0 für aus
bot_quota_mode MODE - Modes: normal: keine Slotfreigabe, fill: Bot-Slots werden für reale Player freigegeben

bot_difficulty 0=easy, 1=normal, 2=hard, 3=expert - Skill der Bots

bot_chatter on / off - toggelt ob die Bots chatten oder nicht (on / off / radio / minimal / normal)

Die Bots joinen in der Grundeinstellung erst wenn ein "echter" Spieler joint.
Wenn ihr dies in der server.cfg habt:
bot_quota 12
bot_quota_mode fill
bot_difficulty 3
bot_chatter off
müßt ihr in der Serverkonsole nur noch
bot_join_after_player 0
bot_add
eingeben um den Server mit Bots zu füllen. Befinden sich schon Spieler auf dem Server kann bot_join_after_player 0 entfallen.
Mit bot_kick wird man die Gesellen auf einen Schlag wieder los.
Eine vollständige Liste der möglichen Botbefehle erhaltet ihr durch Eingabe von cvarlist bot in die Serverkonsole.
Eine kommentierte Liste aller Befehle findet sich bei den Machern der Bots.

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 cstrike +maxplayers 12 +map de_dust

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/jwm/srcds/cstrike/cfg.
Sollte sie nicht existieren muss sie erstellt werden (eine Musterdatei findet ihr hier).
Eine sehr ausführliche server.cfg mit nahezu allen Befehlen sowie einer Kommentierung, was der Befehl bewirkt sowie die Parameter des Befehls hat -RKC- Bastard (-RKC- Bastards Homepage) zusammengestellt.

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 :: Counter-Strike: Source
(thx an Christian aka Opferlamm).

Eine aktuelle Liste aller CVARS findet ihr hier

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.

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.
Ob das von euch gewünschte Plug-In überhaupt mit CS:S funktioniert und wie ihr es installiert entnehmt ihr bitte der beiliegenden Doku oder der o. g. Seite.
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

ACHTUNG! Für CS:Source muss auch 27015 TCP geöffnet sein!

Falls euch das updaten über das Updatetool (./steam -update "Counter-Strike Source" ...) 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

ACHTUNG! Für CS:Source muss auch 27015 TCP geöffnet sein!

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 (in der Brandneuen, von CmdrFirewalker überarbeiteten Ausführung) gibt es hier
Es muss noch an eure Installation angepasst werden, siehe dazu auch die Kommentare im Script selber. Wenn das geschehen ist, reicht srcds 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
(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 ]