Diese Seite durchsuchen:

Besucher: 17694

subscribe via rss



Twittern



Halflife 3.1.1.0 dedicated Server für LINUX

Hier könnt ihr nachlesen wie ihr einen LINUX Halflife 3.1.1.0 dedicated Server installiert und startet.

Anforderungen

Der Rechner:

Der dedizierte (dedicated) Halflife Server ist dafür zuständig, die Positionen der einzelnen Spieler in der Map zu berechnen. Die Prozessorlast steigt mit Anzahl der Spieler und größe der Maps.
Neben der CPU ist der Arbeitspeicher am wichtigsten. Da Größe und Geschwindigkeit von Festplatte und CDROM nahezu keine Auswirkungen auf die Serverleistung haben, kann man hier ruhig zugunsten des restlichen Systems sparen. Das Wichtigste ist die Kombination aus Prozessor und Arbeitsspeicher. Minimum sollten 128MB RAM sein.
Ein Rechner mit 300 MHz und 128MB RAM ist etwa für 8 Spieler ausreichend.

Die Anbindung (Internet):

Für den Ping ist neben der Hardwareleistung auch die Netzwerkanbindung entscheident. Minimale Vorraussetzung ist eine 2Mbit-Leitung, um auch höheren Netzwerkverkehr zu ermöglichen, gerade wenn auch zum Beispiel der map-download aktiviert ist. Eine 10Mbit oder 100Mbit Anbindung, wie im LAN, ist natürlich die beste Verbindung, auch wenn sie in den seltensten Fällen zu bekommen ist. Das Beispiel soll zeigen, welche Anbindungnötig ist:
Pro Spieler werden etwa 4KB/s übertragen. Bei 14-Spielern macht das 56KB/s, das entspricht 448Kbit/s. Über eine ISDN-Leitung können maximal 64Kbit/s übertragen werden. Es ist also unmöglich einen guten Server mit einer ISDN-Leitung (auch doppelt) zu betreiben. A-DSL verfügt auch nur über doppelten ISDN-Upload, was ebenfalls nicht ausreichend ist.


Das Betriebssystem (OS)

LINUX:

Für den Anfänger ist LINUX bestimmt das am wenigsten geeigenete Betriebssystem, da es mit den verbreiteten Windows-System nahezu nichts gemeinsam hat. Jedoch ist es kostenlos erhältlich und darf auch kostenlos genutzt und kopiert werden. In den meisten Fällen kostet eine Distribution etwa 50 Euro (für Handbücher und CD's), zu der LINUX, eine Menge Anwendungsprogramme und ein Handbuch gehören.
Wer noch keinerlei LINUX-Erfahrungen hat, sollte sich jedoch auch überlegen, seinen HL-Server vielleicht doch besser unter einem Windows zu installieren, dort ist für viele die Bedienung einfacher und die Oberfläche leichter zu durchschauen - Windows 2000 oder XP bieten sich dabei an, da beide recht stabil laufen.

Achtung!!!
Wenn ihr Server auf Windowsbasis laufen habt und für den jeweiligen Rechner keine Einzel-Lizens für Windows vorhanden ist, kann dies rechtliche Schritte nach sich ziehen.

Ich benutze Suse LINUX 8.0, die Beschreibung kann also von anderen Distributionen abweichen. Für andere Distributionen ergibt sich aber meist kein Unterschied. Sie bezieht sich nur auf die Kommandozeile da es unüblich ist, eine Server auf der ressourcen-fressenden grafischen Oberfläche zu starten.

Installation

LINUX-Netzwerk:

Prinzipiell sollte man unter LINUX aus Sicherheitsgründen Programme nur dann als "root" starten, wenn es wirklich notwenig ist. Einen Half-life Server sollte man als "normaler user" laufen lassen.

Loggt euch als root ein und gebt yast in der Console ein. Dann macht ihr folgende Einstellungen unter Netzwerk/Basis -> Netzwerk konfigurieren - wählt ihr die entsprechende Netzwerkkarte aus und tragt Hostname, Domainname sowie IP und Subnetmask ein.

LINUX Halflife 3.1.1.0 dedicated Server:

Ihr braucht die folgenden beiden Pakete: den Half-life Server hlds_l_3110_full.bin und den Bugfix hlds_l_3110c_beta.tar.gz. Diese Dateien findet ihr unter z.B. unter counter-strike.de oder counterstrike.de. Da ihr sie vermutlich von einem anderen Rechner herunter ladet, müßt ihr sie, falls ihr kein funktionierendes Netzwerk habt, auf CD brennen. Damit LINUX diese CD lesen kann solltet ihr beim Brennen unter Dateioptionen einige Einstellungen vornehmen:

Wenn ihr diese Einstellungen nicht macht, kann es sein, dass LINUX die CD nicht lesen kann.

Die Installation benötigt etwa 180 MB ihr solltet also genug Platz vorsehen. Zunächst loggt ihr euch als root ein und erstellt ein temporäres Verzeichnis mit dem Befehl:

mkdir /temp

Damit LINUX auf die CD zugreifen kann müßt ihr zunächst das CD-ROM mounten, dies geschieht mit dem Befehl:

mount /cdrom

nun wechselt ihr in das temporäre Verzeichnis:

cd /temp

Nun müsst ihr von hier das *.bin-File ausführen. Das geschieht durch:

exec /cdrom/hlds_l_3110_full.bin

Die folgenden AGBs akzeptiert ihr, indem ihr yes eintippt und mit [Enter] bestätigt.
Dadurch wird das Archiv hlds_l_3110_full.tar.gz im temporären Verzeichnis erstellt. Daraufhin müsst ihr euch erneut als root einloggen.
Erstellt jetzt ein Verzeichnis unter / mit dem Befehl:

mkdir /server

Die folgenden Befehle entpacken den kompletten Half-life Server in die jeweiligen Verzeichnisse Hierbei wird das Unterverzeichnis /server/hlds_l erstellt. Mods werden in Unterverzeichnisse nach dem Schema /server/hlds_l/modname installiert.

cd /server

tar xvzf /temp/hlds_l_3110_full.tar.gz

Das Bugfix behebt Fehler mit Internet Servern, sowie ein Problem mit Flashbangs.

cd hlds_l

tar xvzf /hlds_l_3110c_beta.tar.gz

jetzt könnt ihr das temporäre Verzeichnis wieder löschen.

rm -R /temp

Start

Am besten loggt ihr euch jetzt als user ein, um vor Hackerangriffen sicher zu sein.

Server im Internet:

Ihr startet den Halflife Server mit den folgenden Befehlen:

cd /server/hlds_l

hlds_run +maxplayers 12 +map frenzy

Dies startet einen Halflife Server für maximal 12 Spieler mit der map frenzy. Falls alles geklappt hat, erscheint (unter Umständen nicht mehr zu sehen da die Console mit geladenen Dateien mitscrollt):

Host_Init
Auto-restarting the server on crash
Host_Init
Added packfile /server/hlds_l/valve/pak0.pak (985 files)
Protocol version 46
Exe version 3.1.1.0
Exe build: 14:17:24 Sep 26 2002 (2163)
Auth WON Server
Server IP address 192.168.0.1:27015


d.h. der Server hat sich beim WON Masterserver angemeldet und ist erreichbar. Jetzt kann man auf dieser Console mit dem Befehl status die Daten des Servers anzeigen lassen z.B.:

hostname: Half-Life
version : 46/3.1.1.0 2163 secure
tcp/ip : 192.168.0.1:27015
map : frenzy at: 0 x, 0 y, 0 z
players : 0 active (10 max)


Server im LAN:

Ihr startet den Halflife-Server mit den folgenden Befehlen:

cd /server/hlds_l

hlds_run -insecure -nomaster +sv_lan 1 +maxplayers 12 +map frenzy

Dies startet einen Halflife Server für maximal 12 Spieler mit der map frenzy. Dabei wird keine Verbindung zu einem Masterserver aufgebaut, der Server erscheint auch nicht in der WON-Liste. Falls alles geklappt hat, erscheint (unter Umständen nicht mehr zu sehen da die Console mit geladenen Dateien mitscrollt):

Host_Init
Auto-restarting the server on crash
Host_Init
Added packfile /server/hlds_l/valve/pak0.pak (985 files)
Protocol version 46
Exe version 3.1.1.0
Exe build: 14:17:24 Sep 26 2002 (2163)
Auth Server
Server IP address 192.168.0.1:27015


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

hostname: Half-Life
version : 46/3.1.1.0 2163 insecure
tcp/ip : 192.168.0.1:27015
map : frenzy at: 0 x, 0 y, 0 z
players : 0 active (10 max)



Der Server wird mit der Eingabe von quit oder exit in die Serverconsole wieder beendet.

Erklärungen:

Statusmeldung

Parameter

-insecure läd keine Anticheatfiles
-nomaster baut keine Verbindung zum Internet Masterserver auf
+sv_lan 1 startet ein LAN-Game
+maxplayers 12 startet das Spiel mit einer maximalen Spielerzahl von 12 (absolutes Maximum 32)
+map frenzy startet die Map frenzy

Test

Wenn ihr jetzt Halflife startet sollte der Server in der Server-Liste zu sehen sein. Ist dies nicht der Fall, habt ihr die IP-Addresse nicht überprüft oder der Server läuft auf einem anderen Port als 27015, allerdings tritt das Problem nur bei Halflife Versionen auf, die älter als 1.1.0.8 sind. Man kann den Server aber über die Console mit dem Befehl connect IP:Port trotzdem joinen.

Konfiguration

Ein Server auf einem Rechner

Eine Einstellungsmöglichkeit ist die Datei server.cfg und sollte vor Inbetriebname des Servers an die eigenen Bedürfnisse angepasst werden. Die von Half Life befindet sich unter /valve. Diese Einstellungen können jederzeit im Spiel verändert werden, wenn man über das rcon-Password verfügt. In der Console nachträglich gemachte Einstellungen werden nach dem nächsten Mapchange ungültig, da beim Laden einer neuen Map die server.cfg komplett neu eingelesen wird.

In der mapcycle.txt wird festgelegt welche Map in welcher Reihenfolge nach einem Mapwechsel als nächstes geladen wird. Man kann jederzeit per Console eine andere Map laden. Nachdem die Zeit für diese dann abgelaufen ist, wird automatisch mit den Maps der mapcycle.txt fortgefahren.

Die Datei motd.txt enthält den Text, den man sieht, wenn man auf den Server connected hat. Sie darf nur maximal 1536 Zeichen lang sein, der Rest wird abgechnitten.

Mehrere Server auf einem Rechner

Um mehrere Server auf einem Rechner laufen zu lassen benutzt ihr den Parameter +port. ihr solltet nur die Ports oberhalb und unterhalb von 27015 benutzen, da nur diese von Halflife benutzt werden können. Es werden nur Spiele auf den Ports 27015 bis 27029 im Gamebrowser angezeigt, wobei die Ports 27020 bis 27029 nur für HLTV benutzt werden sollen. Ihr startet z.B. mit dem Befehl:

hlds_run -insecure -nomaster +sv_lan 1 +maxplayers 12 +map frenzy +port 27016

Danach wechselt ihr die Console in LINUX logt euch wieder als user ein und startet den nächsten Server z.B. mit dem Befehl:

hlds_run -insecure -nomaster +sv_lan 1 +maxplayers 12 +map frenzy +port 27017

Nun sind in der Serverliste beide Server zu sehen. Allerdings starten beide mit dem gleichen hostname und der gleichen server.cfg. Um unterschiedliche server.cfg's zu laden benutzt ihr den Parameter +servercfgfile server.cfg. Die Datei darf aber nicht mehr server.cfg heißen, da sonst automatisch diese für alle geladen wird. Ihr nennt die server.cfg also z.B. server1.cfg und die nächste dann server2.cfg usw. In den unterschiedlichen server.cfg's könnt ihr dann auch die hostnames und alle anderen Einstellungen ändern.
Um mehrere mapcycle.txt zu benutzen benutzt ihr den parameter +mapcyclefile mapcycle.txt und für die motd.txt den Parameter +motdfile motd.txt.

Achtung!!!
Wenn ihr mehrere eigene configs benutzen wollt darf keine Original-Datei mehr vorhanden sein, da diese sonst geladen wird.

Erklärungen

Parameter

+port 27018 startet den Server auf dem Port 27018.
+servercfgfile server1.cfg startet den Server mit den Einstellungen aus der server1.cfg
+mapcyclefile mapcycle1.txt läd die map-Reihenfolge aus der mapcycle1.txt
+motdfile motd1.txt läd den Begrüßungstext aus der motd1.txt

Ein LAN-Server, der auf einem bestimmten port läuft, eine bestimmte server.cfg hat, einen bestimmten mapcycle haben soll und einen eigenen Begrüßungstext hat, würde man zum Beispiel mit folgendem Befehl starten:

hlds_run -insecure -nomaster +sv_lan 1 +maxplayers 12 +map frenzy +port 27017 +servercfgfile server1.cfg +mapcyclefile mapcycle1.txt +motdfile motd1.txt

LINUX Server von einem Windowsrechner über Netzwerk starten

PuTTY

LINUX startet automatisch Server, die einem das einloggen von einem anderen Rechner aus ermöglichen. Der einfachste hiervon ist telnet. Da telnet jedoch unverschlüsselt ist und seit Suse 8.0 nicht mehr bei der Standardinstallation mitgestartet wird, sollte man darauf verzichten, und lieber das verschlüsselte SSH nutzen.
Ich benutze hierzu das Freeware-Proggie PuTTY, das einem unter anderem die Kommunikation über SSH ermöglicht. Hierbei reicht es, unter Host Name (or IP address) die IP-Addresse des Servers anzugeben und unter Protocol SSH zu wählen. Der Port wird automatisch je nach Protocol ausgewählt.




PuTTY öffnet dann in einem Fenster eine LINUX console, in der man sich nun einloggen kann. Wenn man die SSH Session jedoch beendet, so loggt man sich aus und der Prozess (der Halflife Server) wird ebenfalls beendet. Um das zu vermeiden, nutzt man den Befehl screen.

Mehrere Server mit screen starten

Um nicht zwischen den Consolen zu wechseln (was unter SSH nicht funktioniert) kann man Prozesse mit dem Befehl screen starten. Mit diesem Befehl erzeugt man für einen Prozess eine eigene Session, die man in den Hintergrund stellen und auch wieder aufrufen kann. Dies geschieht mit der Syntax:

screen -[option] [sessionname] [Befehl]

Einen Halflife Server startet man zum Beispiel mit dem Befehl:

screen -S server1 hlds_run -insecure -nomaster +sv_lan 1 +maxplayers 12 +map frenzy

Indem man den screen verlässt, kehrt man zur Kommandozeile zurück. Der screen läuft dann im Hintergrund weiter. Dazu drückt man [Strg] [a], lässt [a] los, hält [Strg] weiter gedrückt und drückt dann dazu [d].
Danach kann man einen zweiten screen mit einem anderen Sessionnamen starten. Mit folgendem Befehl kann man sich alle laufenden screens anzeigen lassen:

screen -ls

Wenn man wieder in einen screen gelangen will, um z.B. den Halflife Server zu beenden, tut man dies mit diesem Befehl (hier für den Sessionnamen server1):

screen -r server1