|
|
 |
 |
| CS 1.6 Linux Server |
-=Grundsätzliches=-
Um einen dedizierten 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.
-=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. hlds) und den Server in dessen Heimatverzeichnis zu installieren.
In diesem Tutorial ist der User jwm, sein Home liegt in /home/faki/, den Server installieren wir nach
/home/jwm/hlds/
Zuerst benötigen wir einen Steamaccount für unseren Server. Dieser sollte keinesfalls euer normaler Steamaccount sein. Da kein CD-Key benötigt wird, erstellen wir einen nur für den dedizierten Server.
Wir loggen uns also als faki direkt am Server oder über ssh ein und erstellen in unserem Home-Dir ein Verzeichnis namens hlds:
mkdir hlds
Nun wechseln wir mit cd hlds in dieses Verzeichnis. Um nun den Account anzulegen bzw. den Server zu installieren benötigen wir das HLDS-Updatetool.
Am einfachsten bekommen wir es mit:
wget http://www.isis.de/members/~hmenze/cs/server/linux/steam
Wir machen das heruntergeladene Tool mit chmod u+x steam ausführbar.
Um nun einen neuen Account zu erstellen, geben wir ein :
./steam -command create -username jwm -email jwm@cstrike.de -passwordMyPassword -question "MyQuestion?" -answer "MyAnswer"
Wurde der Account erfolgreich erstellt erhaltet ihr folgende Ausgabe:
Checking bootstrapper version ...
Creating Account
Account Created successfully
Selbstverständlich sollte man sich diese Daten merken!
Nachdem der Account erfolgreich erstellt wurde, brauchen wir jetzt nur noch die Serverdateien. Dabei ist die Verfahrensweise bei einem Update einer vorhandenen Installation oder einer kompletten Neuinstallation gleich.
Wir rufen wieder steam auf, diesmal jedoch so:
./steam -command update -game cstrike -dir /home/jwm/hlds -username faki -password MyPassword -remember_password
Das "-remeber_password" sorgt übrigens dafür, dass steam sich unser Passwort und die anderen Optionen merkt und beim nächsten Mal ein
./steam -command update -game cstrike -dir /home/jwm/hlds
reichen sollte.
Anstelle dessen 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. Kann auch zu einem crash führen, aber eher selten..
Euer Rechner sollte jetzt einige Zeit mit dem Download beschäftigt sein. Wenn er alles heruntergeladen hat, können wir einen Probestart versuchen.
-=Internet-Server=-
Wir starten den CS-Server mit den folgenden Befehlen:
./hlds_run -game cstrike +maxplayers 12 +map de_dust
Dies startet einen Counter-Strike Server für maximal 12 Spieler mit der map de_dust. Falls alles geklappt hat, sollte irgendwann
Auto detecting CPU
Using AMD Optimised binary.
Auto-restarting the server on crash
Console initialized.
Protocol version 47
Exe version 1.1.2.4/Stdio (cstrike)
Exe build: 16:54:13 Mar 2 2004 (2686)
Server IP address 192.168.1.4:27015
Downloading Security Module from Speakeasy.net ...
Completed downloading Security Module from Speakeasy.net
Server is in Secure Mode.
erscheinen, d.h. der Server hat sich bei STEAM angemeldet, die Anti-Cheat-Dateien von Valve geladen und ist 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: JWM's CS 1.6 Server
version : 47/1.1.2.4/Stdio 2686 secure
tcp/ip : 192.168.1.4:27015
map : de_dust at: 0 x, 0 y, 0 z
players : 0 active (12 max)
-=LAN-Server=-
Wir starten den CS-Server mit den folgenden Befehlen:
./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. 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 1.6 Server
version : 47/1.1.2.4/Stdio 2686 insecure
tcp/ip : 192.168.1.4:27015
map : de_dust at: 0 x, 0 y, 0 z
players : 0 active (12 max)
-=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 im Verzeichnis
/home/jwm/hlds/cstrike
Mehr zu den Einstellmöglichkeiten in der ((commandlist))
Soll der Server im Hintergrund laufen empfiehlt sich die Benutzung von screen. Näheres dazu findet ihr bei www.counter-strike.net.
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 www.die-opfer.info
-=Mögliche Probleme und ihre Lösung=-
Falls euch das updaten über das Updatetool (./steam -update cstrike ...) zu lange dauert, könnt ihr die aktuellen Updates auch direktbei www.steampowered.com 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 bei www.steampowered.comzu downloaden.
Wählt dort die Mirrors für Dedicated Server.
-=Die Fehlermeldungen=-
Failed to get valid content ticket oder Ran out of content tickets
liegen nicht an euch sondern daran, dass Steam hoffnungslos überlastet ist.
Die Server, die die Daten zum Update anbieten hatten im 9/2003 eine Bandbreite von 1000Mbps.
Selbst wenn der Durchschnittsserver nur mit 1MBps angebunden ist, reicht diese Bandbreite mal gerade für 1000 gleichzeitige Updates - ein bißchen arg wenig für das beliebteste Onlinespiel.
Bei der Meldung ContentServer rejected client's protocol version! hilft es im Allgemeinen, den Inhalt von [erd]/home/USER/.steam[/red] (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 unter www.isis.de jeweils die aktuelle Version des "nackten" Updatetools.
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.
-=steam vs router=-
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.
-=Startscript für den Server=-
Das Script gibt es hier ((dedicated startup linux))
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.
Soll das Script den Server beim Systemstart starten, wird es etwas aufwändiger:
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/
Auch dafür gibt's ein Script, dass aus Sicherheitsgründen via su dann den User wechselt. Dieses Script, das auf dem oben genannten aufbaut, ist nur für den Systemstart gedacht und ihr bekommt es hier ((non root startup linux))
Hier eine Beispielinstallation unter RedHat:
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.
Tutorial by:
JWM @ http://www.Counter-Strike.de
|
|
|
|
 |
|
 |
 |
 |
7854 registrierte Benutzer.
Online: 3 Gäste
|
| Besucher |
| heute: |
|
9 |
| gestern: |
|
32 |
| gesamt: |
|
507368 |
|
|
 |
|