Autor: Bloody
Der eigene Counter-Strike Source Server
Vorwort
Wer öfter private LANs veranstaltet oder auf solche geht kennt das Problem: Ein Spieler hostet einen Server und sobald er das Spiel verlässt ist es das auch für alle anderen gewesen.
Statt dessen gemeinsam auf öffentlichen Servern zu spielen ist dann meistens auch keine gute Idee. Und setzt jemand auf dem Rechner auf dem er spielt einen dedizierten Server auf hat er nicht mehr viel von der LAN.
Wer einen alten Computer zuhause hat hat eine einfache Lösung für das Problem: Ein dedizierter Linux Server! Das Verwenden ist kostenlos und braucht mittlerweile keinen separaten Steam-Zugang mehr. Im folgenden möchte ich kurz erklären wie das ganze korrekt aufgesetzt und zum Laufen gebracht wird.
Was benötigt wird
Die Systemanforderungen setzen sich aus dem Zusammen was ihr wollt, letztendlich wie viele Spieler auf den Server können sollen. Der Prozessor ist dabei nicht vorrangig, ein sehr günstiges Zweikern-Modell reicht dafür völlig aus. Wesentlich wichtiger ist der Arbeitsspeicher: 2GB Speicher sollten es für 12-14 Spieler mindestens sein, auf 4GB lassen sich problemlos bis zu 32 Spieler unterbringen.
Weiterhin ist ein Raid 0 aus zwei schnellen S-ATA2 Platten ratsam allerdings nicht essentiell. Eine normale S-ATA2 Platte reicht aus, bedenkt aber bitte das diese mindestens 20 GB Speicherplatz haben sollte.
Das System sollte per LAN ins Netzwerk eingebunden sein. 99% aller Netzwerkchipsätze werden von Linux erkannt und besonders bei Ubuntu selbsttätig konfiguriert. Somit wird eine Problemquelle vermieden.
Zuletzt benötigt ihr eine beliebige Linux Distribution. Darauf gehen wir im nächsten Abschnitt näher ein.
Für die Installation sollten ein Monitor sowie eine Tastatur zur Verfügung stehen. Nach der Installation können wir den Rechner komfortabel per SSH fernsteuern, dazu später mehr.
Beispiel:
Auf einem Athlon II X2 250 mit 4 GB DDR3 Speicher und zwei 320GB S-ATA II Festplatten im Raid 0 lässt sich problemlos ein 24 Spieler Server inkl. Bots ausführen. Da die Bots eine Menge Systemressourcen verbrauchen wäre darauf auch ein 32 Spieler Server mit menschlichen Spielern möglich!
Installation und Einrichtung Ubuntu 10.04 LTS Server 64 Bit
Da dies ein Guide für absolute Anfänger sein soll werde ich hier einen kurzen Abriss über die Installation und Einrichtung von Ubuntu 10.04 LTS Server bieten. Wer diese Kurzanleitung durchgearbeitet hat, hat ein System welches ausreicht um den dedizierten Server problemlos laufen zu lassen, allerdings bietet diese Anleitung weder ein Sicherheitskonzept noch die Grundlage für z.b. HL-XStats o.ä. - Eventuell werden diese Punkte irgendwann nachgetragen oder eingearbeitet. Aufgrund des fehlenden Sicherheitskonzepts ist es auch nicht ratsam den Server langfristig für Internetspiele zu nutzen - Daher gehe ich hier ebenfalls nur auf die Einrichtung des dedizierten Servers für das Netzwerk ein.
Beachtet bei der Anleitung bitte das ich diese Serverversion aufgrund der Vereinfachung von Screenshots in einer SUN VirtualBox installiere und daher die 32 Bit Variante verwende. Ein Unterschied in diesem Tutorial gegenüber der 64 Bit Variante ergibt sich dadurch nicht!
Ich gehe davon aus das der PC auf dem Ubuntu installiert werden soll bereits fertig zusammengebaut ist und alle nötigen Einstellungen im BIOS vorgenommen wurden. Daher beginnen wir direkt mit dem Download von Ubuntu 10.04 LTS.
Ladet euch das Image herunter. Ist euer Rechner 64 Bit kompatibel und hat 4 GB Arbeitsspeicher oder mehr benutzt bitte die 64 Bit Version. Bei weniger als 4GB Arbeitsspeicher tut es auch die 32 Bit Version.
-> Ubuntu 10.04 LTS Server Downloadlink
Brennt dieses Image auf eine CD, bevorzugt mit langsamer Geschwindigkeit um die Integrität der Kopie nicht zu gefährden. Alternativ kann z.b. mit Universal USB Installer (LINK) ein bootfähiger USB-Stick erstellt werden, ein CD-Rom Laufwerk braucht der Server später eh nicht (der Installationsprozess weicht bei der USB Variante minimal ab, wird von mir nicht behandelt!).
Startet nun euren Rechner von der CD, wählt "Deutsch" und wählt in dem folgenden Menü den Eintrag "Ubuntu Server installieren".
Als nächstes wird die Installationsroutine geladen.
Bei der Landesauswahl wählt Ihr einfach "Deutschland", die Erkennung des Tastaturmodells könnt ihr vornehmen, müsst dies aber nicht tun. Als nächstes prüft das Setup das Installationsmedium, lädt zusätzliche Dateien und holt sich vom eventuell vorhandenen DHCP-Server (euer Router z.b.) eine IP Adresse.
Als nächstes müsst Ihr dem Computer einen Namen geben:
Der Name bestimmt später die Erreichbarkeit im Netzwerk. Vergebt dort einen kurzen, prägnanten Namen den Ihr euch merken könnt, in unserem Beispiel "cssserver".
Nach der Abfrage der Zeitzone wird das Partitionierungstool geladen. In diesem wählt ihr "Geführt - verwende vollständige Festplatte":
Diese Option bewirkt das Ubuntu die gesamte Partitionierung selbstständig vornimmt. LVM (Logical Volumen Manager) wird für unsere Zwecke nicht benötigt, erst recht nicht verschlüsselt.
Im folgenden kann nun die zu verwendende Festplatte ausgewählt werden, dies kann ebenfalls ein Raid Array sein (in dem Fall werden vorher die entsprechenden Treiber geladen!):
Bestätigt die Abfrage/Zusammenfassung danach einfach mit ENTER.
Nun folgt die selbstständige Installation des Grundsystems.
Nachdem die grundlegende Installation abgeschlossen ist werden "Benutzer und Passwörter" eingerichtet. Zunächst folgt das Anlegen eines Benutzerkontos. Da ihr dieses auch später zum einloggen verwenden werdet wählt bitte einen Namen den Ihr euch merken könnt. Wir benutzen für unser Beispiel den Benutzernamen "css" und den Login "css". Danach wählt ein leicht zu merkendes aber nicht zu leicht zu erratendes Passwort und bestätigt dieses. Zum Abschluss der Prozedur fragt die Installationsroutine ob Ihr euren persönlichen Ordner verschlüsseln wollt. Der Einfachheit halber wählt hier Nein.
Was nun folgt ist eine weitere Einrichtung des Paketmanagers. Solltet Ihr in eurem Netzwerk einen http-Proxy verwenden kann dieser folgend eingetragen werden. Ist dies nicht der Fall drückt einfach einmalig Enter.
Weiter müsst ihr ein Schema für die Aktualisierungsverwaltung wählen. Sinnvoll ist es hier "Sicherheitsaktualisierungen automatisch installieren" zu wählen.
Im Fenster "Softwareauswahl" geht ihr mit der Cursortaste runter auf "OpenSSH Server" und markiert diesen per Leertaste. Der OpenSSH Server wird uns später zur Fernsteuerung des Servers dienen. Weiterhin scrollt runter auf "Samba file server" und markiert diesen ebenfalls mit der Leertaste. Der Sambaserver dient zum Zugriff auf das Dateisystems des Servers per Einbindung als Netzwerklaufwerk in Windows. Dies kann zum Verschieben von Dateien sehr nützlich sein.
Ein Druck auf Enter führt die Installation fort.
Zu guter Letzt und damit abschließend werdet Ihr gefragt ob GRUB (der Bootmanager von Ubuntu) in das MBR geschrieben werden soll. Da Ubuntu das einzige Betriebssystem auf diesem System sein sollte bestätigt ihr dies mit "Ja".
Die Installation ist damit beendet. Nach einem Neustart fahren wir mit der Konfiguration fort.
Der erste Start
Loggt euch folgend mit euren vorher angelegten Benutzerdaten ein, sprich dem Usernamen "css" und eurem Passwort.
Vor euch sehr Ihr nun "Bash", eine Konsole für das Betriebssystem. Bis auf einige Kopier- und Schreibarbeit in Windows führen wir folgend alle Kommandos in "Bash" aus. Um das Gerät möglichst bald aus der "Ferne" steuern zu können überprüfen wir kurz die Netzwerkkonfiguration. Tippt dazu einfach
ein und drückt Enter:
Die dem Server von DHCP zugewiesene IP-Adresse findet sich unter "eth0" im Abschnitt inet Adresse. In unserem Beispiel ist es die "10.0.2.15" da es sich um ein virtuelles System handelt.
Da wir nun die IP Adresse des Servers haben und das System läuft können wir Tastatur und Monitor ab stöpseln. Auf unserem richtigen PC laden wir uns nun das Programm "Putty" runter.
Mit Hilfe dieses Programms können wir eine SSH-Verbindung zu unserem Server herstellen und diesen damit fernsteuern.
Im Startfenster gebt ihr nun noch die IP-Adresse (bzw. den Host-Name) ein und drückt auf Open, akzeptiert danach den Schlüssel mit "Yes". Folgend geht alles weiter wie auch zuvor im Bash der Linuxmaschine. Für die Anleitung werde ich im Bash direkt weiterarbeiten da keine Verbindung zwischen Putty und der virtuellen Maschine möglich ist.
Jetzt folgt die Installation wichtiger Komponente. Gelegentlich werden wir hier das Kommando "sudo" benutzen. sudo definiert den einmaligen Rootzugriff auf eine Datei um nicht mit Lese-/Schreibschutzeinstellungen in Konflikt zu kommen. Es ist ähnlich dem "Als Administrator ausführen" unter Windows Vista / 7, nur kritischer. Mit sudo-Rechten kann man beim bearbeiten einer falschen Datei schnell das System zu Grunde richten, nutzt sudo daher bitte nur wenn es auch erforderlich ist.
Wir installieren nun das Programm "ncompress" sowie die Library "lib32gcc1" welche später für das Entpacken der Installationsdatei des dedizierten Servers benötigt wird. Gebt dazu einfach folgendes ein:
und bestätigt mit Enter.
ncompress/lib32gcc1 wird nun automatisch installiert.
Als nächstes erleichtern wir uns die Konfiguration des Servers ein wenig, wir richten uns ein Netzwerklaufwerk für den späteren Zugriff auf den Ordner des dedizierten Servers ein. Zwar ist diese Verknüpfung erst mal "tot", allerdings macht es im Sinne dieser Anleitung keinen Sinn die Freigabe erst später einzurichten wenn wir uns auf andere Themen konzentrieren wollen
Wir geben also ein:
Dies öffnet die Datei smb.conf im Konsolentexteditor VIM.
Achtung, die Bedienung von VIM ist etwas umständlich für ungeübte, folgt daher bitte meinen Anweisungen.
Scrollt mit "Bild Ab" bis zum Ende der Datei. Drückt nun die Taste
und ihr könnt mit der Eingabe beginnen.
Fügt folgenden Abschnitt am Ende ein:
Wie anfangs erwähnt möchte ich keine Linux-Anleitung schreiben sondern bei der Serverinstallation unterstützen. Daher ist dies die unsichere Variante eine Freigabe zu definieren. Für unsere Zwecke allerdings ausreichend. Bitte beachtet: Die Angabe unter "path = /user/css/srcds" geht davon aus das euer Benutzername css lautet. Solltet Ihr bei der Installation einen anderen Benutzernamen gewählt haben muss dies entsprechend geändert werden.
Drückt nach der Eingabe nun "ESC", und gebt ein
(den Doppelpunkt bitte mit eingeben!) und drückt ENTER. Die Datei wird nun gespeichert und geschlossen.
Zuletzt starten wir den Samba Deamon folgendermaßen neu:
Jetzt Schweiß abwischen und schon mal einen Kaffee aufsetzen, der langwierige Teil kommt als nächstes
Installation des dedizierten Servers
Nun ist es so weit und wir können endlich mit der Installation des dedizierten Servers beginnen.
Zunächst wechseln wir in unser Homeverzeichnis (wenn wir nicht schon dort sind):
Hier erstellen wir das Verzeichnis srcds
und wechseln dort hinein
Nun können wir das Programm "hldsupdatetool.bin" runterladen:
Nach Abschluss des Downloads müssen wir die bin-Datei ausführbar machen:
und danach ausführen:
Bitte beachtet das ausführbaren Dateien unter Linux immer eine Pfadangabe vorangestellt werden muss, auch wenn man bereits im entsprechenden Verzeichnis ist. In diesem Fall lautet die Pfadangabe "./", vergesst dies bitte nicht.
Es folgt die Nutzungslizenz von Steam. Bestätigt diese mit "yes" + ENTER.
Steam wurde nun vollständig entpackt.
Als nächstes müssen wir die Steam Installation mit Daten ausstatten. Gebt dazu ein:
beachtet bitte den Punkt hinter "-dir"!
Nach der Meldung "Steam Linux Client updated, please retry the command" führt ihr den Befehl nochmals aus.
Nun kommt nochmals die Meldung "Steam Linux Client updated, please retry the command" - Führt den o.g. Befehl ein drittes Mal aus!
Lehnt euch zurück und wartet ab. Der folgende Prozess dauert - LANGE! Es werden nun alle Daten die zum Betrieb des Servers nötig sind heruntergeladen.
Sobald dieser Download abgeschlossen ist sind wir bereit fürs Einrichten - Und bald dann auch für den ersten Start
Einrichtung vom dedizierten Servers
Die Ersteinrichtung des Servers ist kein Hexenwerk. Wir kümmern uns nun erst mal um die grundlegende Konfiguration, Detailarbeiten sind auch später problemlos möglich!
Um nicht später umsonst gearbeitet zu haben starten wir den Server ein erstes mal.
Zunächst wechseln wir in das Verzeichnis "orangebox"
und geben dann ein:
./srcds_run ist die Binärdatei (quasi die EXE-Datei des Servers", -console spezifiziert das der Server nicht im Hintergrund gestartet wird und wir eingaben tätigen können. -game cstrike startet den Server als CSS Server, -port 27015 gibt den Port an auf welchem der Server arbeitet, +ip definiert lediglich die IP für interne Zwecke (bitte ersetzt hier die IP mit eurer eigenen lokalen!).
+map bestimmt welche Karte als erstes geladen wird, +maxplayers die maximale Spielerzahl.
der Server ist funktionsfähig wenn am Ende folgende Information erscheint:
Beendet den Server durch Eingabe von
Spätestens jetzt ist es nützlich wenn ihr euch wie weiter oben angegeben die Samba-Freigabe eingerichtet habt. Über den Arbeitsplatz eures Windows-Rechners könnt ihr nun ein Netzwerklaufwerk mit folgender Pfadangabe hinzufügen:
Beachtet auch hier wieder die korrekte IP Adresse.
Öffnet nun auf eurem Windows-Rechner das Notepad bzw. den Editor und öffnet danach folgenden Link:
Counter-Strike - CS Source cfgmaker
Hier könnt ihr euch eine Config-Datei erstellen lassen welche die benötigten Variablen enthält. Wichtig ist es erst mal einen Servernamen zu definieren und am besten direkt ein rcon Passwort anzulegen. Dies Passwort wird später benötigt um Admin-Zugriff innerhalb des Spiels zu erhalten.
Klickt wenn ihr alle gewünschten Angaben gemacht habt unten auf der Seite auf "run cfgmaker". Folgend könnt ihr den Text aus der gestrichelten Box ins Notepad bzw. den Editor kopieren. Speichert diese Datei danach auf dem neuen Netzwerklaufwerk in den Ordner "orangebox\cstrike\cfg" als "server.cfg" ab. Beachtet dabei das Ihr Dateierweiterungen eingeblendet habt, ansonsten endet diese Datei auf *.txt und ist später für den Server nicht lesbar.
Die Grundkonfiguration des Servers ist nun abgeschlossen. Mit den weiter oben genannten Parametern zu ./srcds_run könnt ihr nun den Server starten und darauf spielen.
Weiterführende Ausstattung des dedizierten Servers
Um den Server am Ende sinnvoll nutzen zu können ist es ratsam weitere Anpassungen vorzunehmen. Auf kleinen LAN-Partys können z.b. Bots sinnvoll eingesetzt werden. Hierfür wäre die Variable "bot_quota" in der server.cfg anzupassen. Oder Ihr wollt mit Friendly Fire spielen, dafür ist die Variable "mp_friendlyfire" auf 1 zu setzen.
Weiterhin könnt ihr beliebige Maps im Ordner "orangebox\cstrike\maps" ablegen um diese zu spielen.
Um sinnvoll zwischen den Maps zu wechseln (nach Ablauf des timelimit) könnt ihr die Datei mapcycle.txt im Ordner "orangebox\cstrike" anpassen. Hier ist einfach nur der Mapname ohne die Dateiendung einzugeben.
Viele der Variablen lassen sich auch über die Ingame-Console bearbeiten. Hierfür ist zunächst ein Login nötig. Gebt einfach in der Counter-Strike Source Console (ingame) ein:
Euerpasswort ist natürlich durch das in der server.cfg definierte Passwort zu ersetzen.
Mod Installation am Beispiel CSS:DM
Wer beliebte und bekannte Mods in seinem Server einbinden will muss ein bisschen Arbeit auf sich nehmen. Den meisten Mods liegt eine Installationsanleitung bei, wir wollen dies hier mal am Beispiel von CSS: Deathmatch durchexerzieren.
Bevor ihr irgendwelche Anpassungen am dedizierten Server macht beendet diesen bitte.
Ladet euch vorab folgende Dateipakete herunter:
http://www.bailopan.net/cssdm/files/cssdm-2.1.0.zip
SourceMod: Half-Life 2 Scripting
http://www.sourcemm.net/downloads/mmso…-linux.tar.gz/2
Auch wenn die Dateien mit der Endung .tar.gz aufhören lassen sie sich problemlos in WinRAR auf eurem Windows-PC öffnen. Entpackt den Inhalt dieser Dateien in "orangebox\cstrike\" auf eurem Netzwerklaufwerk, inklusive Verzeichnisstrukturen.
Erstellt euch danach unter diesem Link:
Metamod:Source - Make a VDF File
eine vdf-Datei für cstrike / Counter-Strike (funktioniert auch für CSS!)
Kopiert diese in den nach dem Entpacken der o.g. Archive neu erstellten Ordner "addons" in "orangebox\cstrike" auf eurem Netzwerklaufwerk.
Nun braucht ihr noch eine funktionierende cssdm.games.txt da die im Paket mitgelieferte den Server meistens nach dem Beitritt zum Absturz bringt (noch nicht gefixt mit Stand 03.04.2011).
Diese bekommt ihr hier:
https://forums.alliedmods.net/showpost.php?p…5&postcount=117
Zuletzt müsst ihr noch die Datei "orangebox\cstrike\cfg\cssdm\cssdm.cfg" anpassen.
Die Variable "cssdm_spawn_method" kann auf "none" oder "present" gesetzt werden.
"none" bewirkt das die normalen Spawnpunkte der Map verwendet werden (wie es auch in einem normalen Spiel der Fall wäre)
"present" erzeugt zufällige Startpunkte innerhalb der Map - Bei offiziellen Karten funktioniert das wunderbar, bei inoffiziellen sollte vorher getestet werden ob man nicht irgendwo außerhalb der Map startet ... "present" erzeugt dabei aber deutlich mehr "Deathmatch" Feeling!
Solltet ihr Bots auf eurem Server verwenden wollen müsst ihr hier außerdem die Variable "cssdm_bots_balance" auf den von euch gewünschten Wert anpassen. "12" würde hier z.b. für 12 Bots im Spiel stehen. Vergesst danach nicht in der server.cfg bot_quota auf 0 zu setzen!
Abschluß
Wer das Tutorial vollständig durchgelesen hat verdient meinen Respekt Wer dies nicht getan hat wird schnell merken das hier oder da irgendwas nicht funktioniert weil irgendeine Einstellung vergessen wurde... das Thema ist sehr komplex und wenn nicht präzise vorgegangen wird klappt es eben einfach nicht
Übrigens: Dieser Guide ist für alle weiteren Spiele der Source-Engine gültig, Spiele welche die HL1-Engine nutzen können so ebenfalls gehostet werden! Einen Überblick über die verfügbaren Mods erhaltet ihr mit Eingabe von
Der Startparameter von ./srcds_muss natürlich entsprechend des Modnamen aus ./steam -command list angepasst werden
Wer stur nach der Anleitung vorgeht sollte alles zum Laufen kriegen. Sollte es noch FRAGEN(!) zum Thema geben könnt ihr diese gerne Stellen! Traut jemand von euch sich diese Installation gar nicht zu? Ich unterstütze euch gerne per Fernwartung, schreibt mir hierzu eine PN und wir versuchen gemeinsam was auszumachen! Allerdings lehne ich es ab verkorkste Serverkonfigurationen zu richten. Von Anfang an oder gar nicht