Linux: Counter Strike Source Server

cs_logo

In diesem Artikel möchte ich euch beschreiben, wie ich unter Linux (CentOS 5.3) einen Dedicated Server des Ego-Shooters Counter Strike Source installiert habe. Es gibt zwar schon einige Anleitungen dazu im Netz, jedoch habe ich versucht es etwas detailierter, auch für Linux-Neulinge geeignet, darzustellen. Hier behandle ich wirklich nur die reine Installation! Für die vielen kleinen Anpassungen muss man selber seine Erfahrungen machen.

Denkt bitte daran, ein eigener CS:S Server lohnt sich mit einer heimischen DSL-Leitung definitiv nicht, da hierfür die Bandbreite für den Upload zu gering ist. Für alle, die jedoch gerne eine Lanparty machen möchten oder im Besitz eines Rootservers in einem Rechenzentrum mit einer entsprechenden Anbindung sind, ist es durchaus lohnenswert.

Ihr solltet schon Erfahrung mit Linux haben, da ihr sonst bei Fehlern mehr Schaden anrichten könnt als ihr denkt. Aus diesem Grund solltet ihr euch bewußt sein, dass dies hier nur ein Leitfaden für die wichtigsten Schritte ist. Je nach Konfiguration und System können bei euch andere Vorraussetzungen gelten. Deshalb übernehme ich auch keine Haftung für eure Bastelei. Für alle die erst einmal üben möchten, empfehle ich eine virtualisierte Serverinstallation, bevor man sich an einen „echten“ Server wagt. Mehr dazu findet ihr >>hier<<.

Aber genug der Vorrede…

1. Benötigte Programme installieren

Damit ihr später im Installationsprozess nicht verzweifelt, solltet ihr im Vorfeld weitere notwendige Programme installieren. Dazu müsst ihr als root agieren. Solltet ihr mit einem anderen Konto eingeloggt sein, könnt ihr mit der Eingabe von su zu root werden, oder z.B.  unter Ubuntu stellt ihr der Befehlszeile ein sudo voran.

Also z.B so unter CentOS:

su

(Passwort für root eingeben und Enter)

yum install ncompress
yum install screen

oder unter Ubuntu:

sudo apt-get install ncompress
sudo apt-get install screen

(Passwort für root eingeben und Enter)

2. Eigenen Benutzer für die Installation und Administration des CS:S Servers einrichten.

Den Benutzernamen könnt ihr frei wählen. Ich nenne ihn hier im Beispiel: counterstrike

CentOS:

useradd counterstrike

passwd counterstrike

(Neues Passwort für counterstrike eingeben)

Ubuntu:

adduser counterstrike

passwd counterstrike

(Neues Passwort für counterstrike eingeben)

3. Jetzt ist der Benutzer angelegt.

Also verwenden wir ihn auch sofort für die weiteren Schritte:

su counterstrike

4. Die nächsten Schritte bestehen darin, dass wir in unser home-Verzeichnis des Benutzers counterstrike wechseln, dort ein neues Verzeichnis für unsere Serverinstallation anlegen und in dieses hineingehen:

cd /home/counterstrike

mkdir hlds

cd hlds

5. Wir befinden uns somit im Verzsichnis /home/counterstrike/hlds und können jetzt das hldsupdatetool von Steam herunterladen, damit wir der Installation ein Stück näher kommen:

wget http://storefront.steampowered.com/download/hldsupdatetool.bin

6. Damit das Tool auch ausgeführt werden kann, müssen wir ihm die Rechte dafür geben und im Anschluss starten wir es:

chmod u+x hldsupdatetool.bin

./hldsupdatetool.bin

(Hinweis: An dieser Stelle wird das Programm ncompress benötig. Aber wir haben es ja schon am Anfang installiert.)

7. Bestätigt die angezeigte Meldung mit yes

8. Nach dem Vorgang befinden sich jetzt 3 Dateien in dem Verzsichnis /home/counterstrike/hlds/ -> hldsupdatetool.bin, readme.txt und steam. Jetzt führen wir das Programm steam aus:

./steam

9. Ist dies erledigt, erstellen wir den Zielordner für unsere Installation.

Ich nenne ihn hier einfach css:

mkdir css

10. Endlich kommen wir zu der eigentlichen Installation.
Ich warne euch gleich vor, es hat bei mir über eine Stunde gedauert, bis alle Dateien installiert waren. Das ist immer davon abhängig wie beschäftigt die Steamserver sind. Also Zeit um eine gemütliche Tasse Kaffee zu trinken… zurück zum Thema:

Der Counter Strike Server wird ca 1,1 GB auf der Festplatte belegen.

./steam -command update -game "Counter-Strike Source" -dir css

Das -dir css gibt unser zuvor angelegtes Verzeichnis als Ziel an. Solltet ihr es anders benannt haben, so passt dies bitte entsprechend an.

An einigen Stellen verweilt die Fortschrittsmeldung recht lang, also bitte nicht ungeduldig werden.

11. Der Server ist hiermit installiert, aber leider noch nicht einsatzbereit.
Es müssen die entsprechenden Ports im System freigegeben werden. Unter CentOS gibt es dafür ein Tool, dieses könnt ihr jedoch nur als root aufrufen. Es ist aber weniger schlimm als es klingt:

Wieder zu root werden:

su

(Passwort für root eingeben und Enter)

system-config-firewall

Mit der Option “Anpassen” können wir die entsprechenden Ports freigeben.

scs_centos03

Dazu müsst ihr im Feld “Andere Ports” folgendes eintragen

scs_centos02

27015:tcp 27015:udp

Betreibt ihr mehr als einen Counter Strike Server, so müsst ihr für jeden Server eigene Ports verwenden. So kann man dann als Beispiel für Server 2 die 27025 verwenden und so weiter. Wichtig ist nur, dass ihr immer TCP und UDP freischaltet.

Seid ihr damit fertig, einfach mit “OK” und nochmals “OK” das Tool verlassen. Jetzt können wir auch wieder zum Standardbenutzer werden, in dem wir einfach exit eingeben. Dann agiert man erneut als counterstrike Benutzer.

12. Unser Server wird jedoch immer noch nicht starten, da ihmdie notwendige Konfigurationsdatei server.cfg fehlt. Es gibt eine hilfreiche Webseite, die euch die Erstellung des benötigten Inhaltes der Datei abnimmt. Geht dazu auf:

http://www.cstrike-planet.com/cfgmaker?cfg=srcds

Geht alle Einstellungen durch und passt sie euren Wünschen an. Im Anschluß müsst ihr nur noch Run cfgmaker anklicken und schon werden euch die Einstellungen ausgegeben. Diese könnt ihr z.B. eine Texdatei kopieren, diese dann in server.cfg umbenennen und im folgenden Verzeichnis ablegen /home/counterstrike/hlds/css/cstrike/cfg (kleiner Hinweis: WinSCP ist ein gutes Programm dafür). Wer die Datei per Hand anlegen möchte kann dies wie folgt erledigen:

cd /home/counterstrike/hlds/css/cstrike/cfg

nano server.cfg

(Alternativ könnt ihr statt dem Editor nano auch vi verwenden. Ich finde nano aber für Anfänger einfacher zu bedienen.)

13. Es ist geschafft.
Der Server sollte mit folgendem Beispiel starten und über das Internet erreichbar sein, aber zuerst sollten wir zurück in das folgende Verzeichnis wechseln:

cd /home/counterstrike/hlds/css

Damit der Server auch dann weiterhin läuft, wenn das Terminalfenster geschlossen wird, empfiehlt sich der Einsatz des screen Befehls:

screen –A –m –d –S csserver ./srcds_run –game cstrike +map de_dust –maxplayers 16 –autoupdate –port 27015

Erläuterung:

cssserver –> Das ist ein frei wählbarer Name für den virtuellen Terminal (sinvoll bei mehreren Servern, um diese besser unterscheiden zu können)

+map –> Dahinter folgt der Name jener Map, die als erstes geladen werden soll. Hier als Bsp. de_dust

-maxplayers –> Legt die maximale Anzahl der Spieler für den Server fest. Kann beliebig festgelegt werden.

-autoupdate –> Veranlasst den Server beim Start nach Aktualisierungen zu suchen

-port –> Das legt den Port fest, auf dem der Server erreichbar sein soll. Er muss mit den Einstellungen, die wir oben vorgenommen haben natürlich übereinstimmen.

Möchtet ihr den Server jedoch nur im eigenen LAN verwenden, so muss es entsprechend angepasst werden:

screen –A –m –d –S csserver ./srcds_run -game cstrike -insecure -nomaster +sv_lan 1 +map de_dust –maxplayers 16 –autoupdate –port 27015

Falls ihr mit HLSW euren Server beobachten und verwalten möchtet, so solltet ihr noch die IP des Servers mit anhängen. Es könnte sonst Probleme geben. Dies gilt für die Internet und die LAN Variante.

Fügt einfach ein +ip xxx.xxx.xxx.xxx in die Befehlzeile hinzu. (xxx enstrpicht den Zahlen eurer Server IP)

Im Falle der Fehlermeldung “Cannot open your terminal ‘/dev/pts/1′ – please check.”

geht man folgendermaßen vor:

su root
chmod 777 /dev/pts/*
exit
screen -r

Durch chmod 777 /dev/pts/* erhalten alle user die Rechte auf den Screen.

Vielen Dank an Sandro für die Hinweise und Ergänzungen.

14. Sehen ob der Server läuft

Mit dem nachfolgenden Befehl können wir uns alle virtuellen Sessions anzeigen lassen. Das ist besonders wichtig, wenn man so mehrere Server laufen lässt.

screen –list

Ihr seht jeweils eine Nummer vor dem Namen des virtuellen Terminals

Möchtet ihr nun einen dieser Terminals öffnen, so gebt den Befehl ein:

screen –r <Nummer des Terminals>

Hier könnt ihr direkt Befehle an den Server senden (rcon usw.)

Um die Session wieder zu verlassen ohne diese zu beenden, benutzt bitte folgende Tastenkombination.

STRG + a + d ( Bei gedrückter STRG Taste erst a und dann d drücken )

Jetzt seid ihr wieder zurück.

Wichtig: Solltet ihr den Server hinter einer Firewall oder einem Router betreiben, so müsst ihr dort die Ports freigeben und die entsprechenden Weiterleitungen einrichten.

Wer uns auf unserem Server des {xvc} besuchen möchte, der findet alle Informationen zu dem Public und dem Battlegrounds Server (Gun Game Maps usw.) auf: www.x-v-c.co.uk (englisch). Unsere Server laufen unter CentOS auf einer selbst administrierten Maschine in einem Datencenter.

Weiterführenden Links:

Übersicht RCON Commandos

Anleitung auf www.counter-strike.de

Tool für Serverüberwachung und Verwaltung: http://www.hlsw.org/

Nützliches Programm für Dateioperationen auf dem Server: winscp

Über Torsten
Mein Name ist Torsten. Ich hoffe der Artikel hat dir gefallen und über ein Feedback von dir würde ich mich sehr freuen.

3 Kommentare zu Linux: Counter Strike Source Server

  1. Danke für die Arbeit aber leider sind einige Fehler drinnen, die dazu führen, dass der Server nicht starten wird.

    screen –A –m –d –S csserver ./srcds_run –game –cstrike +map de_dust –maxplayers 16 –autoupdate –port 27015

    >das „-“ vor cstrike muss weg!<

    screen –r

    >Du wirst „Cannot open your terminal ‚/dev/pts/1‘ – please check.“ als Antwort erhalten, bitte nachtragen, dass die Rechte auch dort angepasst werden müssen!

    Weitere wichtige Befehle:

    – yum install screen (sonst screent ihr gar nichts)
    – nur aktualisierung: bei CentOS 6 heißt es nicht mehr „system-config-securitylevel“ sondern „system-config-firewall“

    – bevor man „system-config-securitylevel“ aufruft muss es erstmal installiert werden! –> yum install system-config-securitylevel

    Bedenke bitte, lieber Torsten, viele die dieses Tut lesen, haben gerade einen frisch aufgesetzten Root, mit dem sie sich sehr wahrscheinlich nicht auskennen.
    Wenn sie dann nicht wissen, dass sie gewisse Dienste erstmal installieren müssen, werden sie recht schnell an den weiteren Schritten scheitern.

    Ansonsten: Danke für die Arbeit, im großen und ganzen schön und gut.

    • Edit:

      Im Falle der Fehlermeldung “Cannot open your terminal ‘/dev/pts/1′ – please check.”

      geht man folgendermaßen vor:

      su root
      chmod 777 /dev/pts/*
      exit
      screen -r

      Durch chmod 777 /dev/pts/* erhalten alle user die Rechte auf den Screen. Das ist die einfachste Lösung, damit auch die Anfänger nicht durcheinander kommen.

  2. MEin Problem:

    Bei schritt 7

    ./steam
    Checking bootstrapper Version…
    Failed to connect to any GeneralDirectoryServer

    Vorweg:
    Ports sind alle Richtig freigeschaltet und alle Schritte wurden genau wie in der Bescgreibung befolgt.

    Danke im vorraus

    Soul[GER]

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen