Benutzer-Werkzeuge

Webseiten-Werkzeuge


installation:dedicated_server_standalone

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

installation:dedicated_server_standalone [2008/11/03 00:05]
DeaD_EyE
installation:dedicated_server_standalone [2010/07/10 10:43] (aktuell)
DeaD_EyE
Zeile 1: Zeile 1:
 ====== Dedicated Server ====== ====== Dedicated Server ======
-Der vom [[wpde>Steam]] unabhängige //Source Dedicated Server// lässt sich für Linux und Windows bei [[http://store.steampowered.com/about/|Steampowered.com]] herunterladen. Es wird wie früher kein gültiger Steam-Acount voraus gesetzt.+Der vom [[wpde>Steam]] unabhängige //Source Dedicated Server// lässt sich für Linux und Windows bei [[http://store.steampowered.com/about/|Steampowered.com]] herunterladen. Es wird wie früher kein gültiger Steam-Account voraus gesetzt.
  
 ===== Linux ===== ===== Linux =====
-Voraussetzung um einen Server installieren zu können ist der direkte Zugriff auf die Konsole oder der Zugriff auf eine Shell über eine SSH-Verbindung auf den Host. Die wichtigen Grundbefehle unter Linux sollten bekannt sein, damit ein sicherer Umgang mit dem Server gewährleistet ist. **Es ist davon absolut abzuraten den Server mit Root-Rechten einzurichten.**+Voraussetzung um einen Server installieren zu können ist der direkte Zugriff auf die Konsole oder der Zugriff auf eine Shell über eine SSH-Verbindung auf den Host. Die wichtigen Grundbefehle unter Linux sollten bekannt sein, damit ein sicherer Umgang mit dem Server gewährleistet ist. **Es ist davon absolut abzuraten den Server mit Root-Rechten einzurichten bzw. auch zu starten.**
  
 ==== User einrichten ==== ==== User einrichten ====
Zeile 27: Zeile 27:
 {{:installation:steam_update.jpg|}} {{:installation:steam_update.jpg|}}
 === Fehlerquellen === === Fehlerquellen ===
-Treten nach dem Ausführen vom hldsupdatetool.bin Fehler auf, liegt es am fehlenden "uncompress". Manche Distributionen haben es Standardmäßig nicht mit drin.\\ +== Uncompress == 
 +Treten nach dem Ausführen vom hldsupdatetool.bin Fehler((sh: uncompress: command not found)) auf, liegt es am fehlenden "uncompress". Manche Distributionen haben es Standardmäßig nicht mit drin.\\ 
 {{:installation:uncompress_command_not_found.jpg|}}\\  {{:installation:uncompress_command_not_found.jpg|}}\\ 
-Der Befehl ''ln -s $(which gunzip) $(dirname $(which gunzip))/uncompress'' legt eine symbolische Verknüpfung Namens uncompress zu gunzip im gleichern Verzeichnis an.+Folgender Befehl legt eine symbolische Verknüpfung Namens uncompress zu gunzip im gleichern Verzeichnis an: 
 +<code>ln -s $(which gunzip) $(dirname $(which gunzip))/uncompress</code> 
 +== 64-Bit-System == 
 +In seltenen Fällen hat der Hoster bei vorinstallierten 64-Bit Distribution die Bibliotheken für 32-Bit-Programme vergessen mit zu installieren. In diesem Fall lässt sich dann ''hldsupdatetool.bin''((''-bash: ./hldsupdatetool.bin: No such file or directory'')) nicht ausführen. Unter Debian können mit folgendem Befehl die 32-Bit-Bibliotheken installiert werden: 
 +<code>apt-get install ia32-libs</code>
  
 ==== Server installieren ==== ==== Server installieren ====
Zeile 47: Zeile 52:
 === Modifikationen von Drittanbietern === === Modifikationen von Drittanbietern ===
 Viele Anbieter stellen für ihre [[:mods]] auch Dateien für Linux-Server zur Verfügung. Viele Anbieter stellen für ihre [[:mods]] auch Dateien für Linux-Server zur Verfügung.
-Da es gegen die Lizenz verstößt, die Dateien vom SRCDS-Server so anzubieten, muss der Server zuerst mit dem Steam-Installer heruntergeladen werden. In den meisten Fällen reicht es aus die [[:mods|Modifikation]] __Half-Life 2 Deathmatch__ "hl2mp" zu verwenden, um den SRCDS herunterzuladen. Bei diesem Beispiel richten wir einen Server für "Eternal Silence" ein. Dieses Mod benötigt och die alte "Source Engine". Sollte eine andere [[:mods]] eingerichtet werden, die die "Orange Box Engine" benötigt, muss mit dem Steam-Installer anstatt "hl2mp" "tf" (Team Fortress 2) eingerichtet werden.+Da es gegen die Lizenz verstößt, die Dateien vom SRCDS-Server so anzubieten, muss der Server zuerst mit dem Steam-Installer heruntergeladen werden. In den meisten Fällen reicht es aus die [[:mods|Modifikation]] __Half-Life 2 Deathmatch__ "hl2mp" zu verwenden, um den SRCDS herunterzuladen. Bei diesem Beispiel richten wir einen Server für "Eternal Silence"((Diese Modifikation ist mittlerweile über Steam direkt verfügbar)) ein. Dieses Mod benötigt noch die alte "Source Engine". Sollte eine andere [[:mods|Modifikation]] eingerichtet werden, die die "Orange Box Engine" benötigt, muss mit dem Steam-Installer anstatt "hl2mp" "tf" ((Team Fortress 2)) eingerichtet werden.
 <code>mkdir ~/eternal_silence <code>mkdir ~/eternal_silence
 cd ~/steam cd ~/steam
Zeile 56: Zeile 61:
 wget http://downloads.gbs-clan.de/hl2/mods/Eternal_Silence/3.x/Eternal_Silence_3_0_server.tar.gz wget http://downloads.gbs-clan.de/hl2/mods/Eternal_Silence/3.x/Eternal_Silence_3_0_server.tar.gz
 tar -xzf Eternal_Silence_3_0_server.tar.gz -C ~/eternal_silence</code> tar -xzf Eternal_Silence_3_0_server.tar.gz -C ~/eternal_silence</code>
 +Der Parameter ''-C ~/eternal_silence'' entpackt den Inhalt des Archives nach ''~/eternal_silence''. Es sollte sicher gestellt werden, dass das Verzeichnis der [[:mods|Modifikation]] am richtigen Ort entpackt wurde.
  
 ==== Server starten ==== ==== Server starten ====
Zeile 62: Zeile 68:
 === Startparameter === === Startparameter ===
 Die [[startparameter|Startparameter]] vom Server sind unter Linux und Windows fast identisch. Die [[startparameter|Startparameter]] vom Server sind unter Linux und Windows fast identisch.
 +**Anmerkung**: Seit dem Update befindet sich CS:S im Unterverzeichnis ''orangebox''
 In dem Beispiel starten wir einen CS:S-Server mit der IP 123.123.123.123 auf dem Standard-Port 27015: In dem Beispiel starten wir einen CS:S-Server mit der IP 123.123.123.123 auf dem Standard-Port 27015:
-<code>cd ~/css-public +<code>cd ~/css-public/orangebox 
-./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -tickrate 66 -autoupdate -debug +map de_dust2</code>+./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -autoupdate -debug +map de_dust2</code>
 {{:installation:start_css.jpg|}}\\  {{:installation:start_css.jpg|}}\\ 
 Die Fehlermeldungen sind zum Teil ganz normal und lassen sich nicht beseitigen. Wird das Fester jetzt geschlossen, die PuTTY-Session also beendet, schließt sich auch automatisch der Server, da er ein Kind-Prozess von der Shell ist, die geschlossen wird. Es gibt 2 Methoden dies zu verhindern. Die Fehlermeldungen sind zum Teil ganz normal und lassen sich nicht beseitigen. Wird das Fester jetzt geschlossen, die PuTTY-Session also beendet, schließt sich auch automatisch der Server, da er ein Kind-Prozess von der Shell ist, die geschlossen wird. Es gibt 2 Methoden dies zu verhindern.
Zeile 72: Zeile 78:
 Der Befehl nohup veranlasst andere Programme, die durch nohup gestartet worden sind, das Hangup-Signal der Konsole zu ignorieren. Mit dem Kaufmanns-Und am Ende der Zeile wird die Anwendung, in diesem Fall der Server, im Hintergrund gestartet.\\  Der Befehl nohup veranlasst andere Programme, die durch nohup gestartet worden sind, das Hangup-Signal der Konsole zu ignorieren. Mit dem Kaufmanns-Und am Ende der Zeile wird die Anwendung, in diesem Fall der Server, im Hintergrund gestartet.\\ 
 **Ein Beispiel:** **Ein Beispiel:**
-<code>nohup ./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -tickrate 66 -autoupdate -debug +map de_dust2 &</code>+<code>nohup ./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -autoupdate -debug +map de_dust2 2>&1 >/dev/null &</code>
  
 == screen == == screen ==
-Screen ist ein Fenstermanager, der es erlaubt, erzeugte Fenster auch im Hintergrund nach Beendigung der SSH-Verbindung, laufen zu lassen. Die Fenster können mit dem screen-Befehl wieder geholt werden. Zu dem Befehl ''screen'' gibt es im Internet eine vielzahl an Anleitungen. Bei den meisten Distributionen muss es nachträglich installiert werden.\\ +Screen ist ein Fenstermanager, der es erlaubt, erzeugte Fenster auch im Hintergrund nach Beendigung der SSH-Verbindung, laufen zu lassen. Die Fenster können mit dem screen-Befehl wieder geholt werden. Zu dem Befehl ''screen'' gibt es im Internet eine Vielzahl an Anleitungen. Bei den meisten Distributionen muss es nachträglich installiert werden.\\ 
 **Ein Beispiel:** **Ein Beispiel:**
-<code>nohup ./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -tickrate 66 -autoupdate -debug +map de_dust2 2>&1 >/dev/null &</code>+<code>screen -mdS server1 ./srcds_run -game cstrike -maxplayers 10 -ip 123.123.123.123 -port 27015 -autoupdate -debug +map de_dust2</code>
  
 === Häufige Fehler === === Häufige Fehler ===
 Es kann durchaus mal passieren, dass ein Server ausversehen zwei mal oder öfters gestartet wurde, ohne dass der Admin anfangs etwas bemerkt. Erst nachdem sich bestimmte Ports nicht mehr belegen lassen, fängt man an zu suchen. Ein sehr hilfreiches Tool ist ''lsof''. Es zeigt alle geöffneten Dateien und Verbindungen an. Ist z.B. mal ein Port durch einen Server belegt, kann man diesen bei bedarf auch beenden. In diesem Beispiel wurde der Server z.B. durch ein Missgeschick 2 mal gestartet. Da auch noch die Angabe vom Port im Startparameter vergessen wurde, läuft der gleiche Server jetzt auf Port 27015 und 27016. Wir möchten den Server, der auf Port 27016 lauscht, beenden.\\  Es kann durchaus mal passieren, dass ein Server ausversehen zwei mal oder öfters gestartet wurde, ohne dass der Admin anfangs etwas bemerkt. Erst nachdem sich bestimmte Ports nicht mehr belegen lassen, fängt man an zu suchen. Ein sehr hilfreiches Tool ist ''lsof''. Es zeigt alle geöffneten Dateien und Verbindungen an. Ist z.B. mal ein Port durch einen Server belegt, kann man diesen bei bedarf auch beenden. In diesem Beispiel wurde der Server z.B. durch ein Missgeschick 2 mal gestartet. Da auch noch die Angabe vom Port im Startparameter vergessen wurde, läuft der gleiche Server jetzt auf Port 27015 und 27016. Wir möchten den Server, der auf Port 27016 lauscht, beenden.\\ 
 Mit losf finden wir zuerst die PID des Server heraus: Mit losf finden wir zuerst die PID des Server heraus:
-<code>lsof -i 27016</code>+<code>lsof -i :27016</code>
 Der Befehl gibt uns folgendes aus: Der Befehl gibt uns folgendes aus:
 <code>COMMAND     PID   USER   FD   TYPE     DEVICE SIZE NODE NAME <code>COMMAND     PID   USER   FD   TYPE     DEVICE SIZE NODE NAME
 srcds_amd 27850 server    4u  IPv4 4072257777       UDP *:27016 srcds_amd 27850 server    4u  IPv4 4072257777       UDP *:27016
 srcds_amd 27850 server    7u  IPv4 4072257780       TCP xxxxxx.net:27016 (LISTEN)</code> srcds_amd 27850 server    7u  IPv4 4072257780       TCP xxxxxx.net:27016 (LISTEN)</code>
 +Sollte ''lsof'' nicht installiert sein kann man auch den Befehl ''netstat'' verwenden.
 +<code>netstat -nlp | grep 27016</code>
 +Die Ausgabe sieht dann ungefähr so aus:
 +<code>tcp        0      0 xx.xxx.xxx.xxx:27016    0.0.0.0:*               LISTEN      31421/srcds_i486
 +udp        0      0 xx.xxx.xxx.xxx:27016    0.0.0.0:*                           31421/srcds_i486</code>
 +Unter bestimmten Umständen kann es aber passieren, dass die PIDs nicht alle angezeigt werden.
 +
 Nun wissen wir, um welchen Prozess es sich handelt, der den Port 27016 belegt. Da der Server durch das Script srcds_run gestartet wird, ist dies der Eltern-Prozess. Dieser Eltern-Prozess, in diesem Fall das Shell-Script srcds_run, sollte zuerst beendet werden, da es sonst den Server ggf. neustartet, wenn den Kind-Prozess beendet.\\  Nun wissen wir, um welchen Prozess es sich handelt, der den Port 27016 belegt. Da der Server durch das Script srcds_run gestartet wird, ist dies der Eltern-Prozess. Dieser Eltern-Prozess, in diesem Fall das Shell-Script srcds_run, sollte zuerst beendet werden, da es sonst den Server ggf. neustartet, wenn den Kind-Prozess beendet.\\ 
 So lässt sich der Eltern-Prozess finden: So lässt sich der Eltern-Prozess finden:
 <code>ps -o ppid 27850</code> <code>ps -o ppid 27850</code>
-Die Parameter ''-o'' mit dem Wert ''ppid'' gibt zu der gegeben PID den Eltern-Prozess (PPID = parent process id) aus.\\ +Die Parameter ''-o'' mit dem Wert ''ppid'' gibt zu der gegeben PID den Eltern-Prozess((PPID = parent process id)) aus.\\ 
 Das sieht dann so aus: Das sieht dann so aus:
 <code>PPID <code>PPID
Zeile 102: Zeile 115:
  
 ==== Server updaten ==== ==== Server updaten ====
-Falls Updates der Source Engine oder der [[:mods|Modifikation]] herauskommen, müssen die Server meistens auch aktualisiert werden. In den seltensten Fällen können die Spieler auf einem veralteten Server spielen.+Falls Updates der Source Engine oder der [[:mods|Modifikation]] erscheinen, müssen die Server meistens auch aktualisiert werden. In den seltensten Fällen können die Spieler auf einem veralteten Server spielen.
  
 === offizielle Modifikationen === === offizielle Modifikationen ===
Zeile 152: Zeile 165:
 ==== Server starten ==== ==== Server starten ====
 === Startparameter === === Startparameter ===
-=== Häufige Fehler ===+Die [[startparameter|Startparameter]] vom Server sind unter Linux und Windows fast identisch. 
 + 
 +In dem Beispiel starten wir einen HL2DM-Server mit der IP 123.123.123.123 auf dem Standard-Port 27015: 
 +<code>cd C:\Documents and Settings\sosi\Desktop\server1 
 +srcds.exe -console -game hl2mp -maxplayers 10 -ip 123.123.123.123 -port 27015 -debug +map dm_lockdown</code> 
 +  
 +Die Fehlermeldungen sind zum Teil ganz normal und lassen sich nicht beseitigen. Das neue Serverfenster darf nicht geschlossen werden, da sonst der Server beendet wird. Es kann jedoch minimiert werden. 
 ==== Server updaten ==== ==== Server updaten ====
 +Falls Updates der Source Engine oder der [[:mods|Modifikation]] erscheinen, müssen die Server meistens auch aktualisiert werden. In den seltensten Fällen können die Spieler auf einem veralteten Server spielen.
 +
 === offizielle Modifikationen === === offizielle Modifikationen ===
 +Um einen Server mit einer offiziellen [[:mods|Modifikation]] zu aktualisieren, wird der gleiche Befehl verwendet, der auch für die Installation des Servers, verwendet wurde. Bei Problemen kann auch noch der Parameter -veryfy_all verwendet werden. Es werden dann alle Dateien überprüft. Hier unser Beispiel:
 +<code>c:
 +cd C:\Documents and Settings\sosi\Desktop\HLServer\
 +hldsupdatetool.exe -command update -game hl2mp -dir "C:\Documents and Settings\sosi\Desktop\server1" -retry</code>
 +
 === Modifikationen von Drittherstellern === === Modifikationen von Drittherstellern ===
 +Das Aktualisieren der Server, die [[:mods]] von Drittherstellern nutzen, welche über den Steam-Installer nicht zu bekommen sind, muss das Update in zwei Schritten erfolgen.
 +  - Source Engine updaten\\ Beispiel für einen Eternal-Silence-Server:<code>c:
 +cd C:\Documents and Settings\sosi\Desktop\HLServer\
 +hldsupdatetool.exe -command update -game hl2mp -dir "C:\Documents and Settings\sosi\Desktop\server1" -retry</code>
 +  - Die Modifikation updaten\\ Bei unserem Beispiel müsste dann, falls vorhanden, die neue Version der Modifikation heruntergeladen werden und im Installationsverzeichnis des Servers entpackt werden.
  
 ===== Server konfigurieren ===== ===== Server konfigurieren =====
Zeile 174: Zeile 206:
 ==== autoexec.cfg ==== ==== autoexec.cfg ====
 Ein Beispiel für eine ''autoexec.cfg'': Ein Beispiel für eine ''autoexec.cfg'':
-//Hier wird der Servername festgelegt +<code>//Sporadischer Eintrag.
-//Sporadischer Eintrag.+
 sv_pure 0 sv_pure 0
 //Es können hier z.B. noch Scripte für Eventscripts geladen werden. //Es können hier z.B. noch Scripte für Eventscripts geladen werden.
 +</code>
  
 ==== server.cfg ==== ==== server.cfg ====
 Ein Beispiel für eine ''server.cfg'': Ein Beispiel für eine ''server.cfg'':
-//Hier wird der Servername festgelegt+<code>//Hier wird der Servername festgelegt
 hostname "Server von sourceserver.info" hostname "Server von sourceserver.info"
  
Zeile 240: Zeile 272:
 ===== Addons einrichten ===== ===== Addons einrichten =====
 Für die einfachere Administration des Servers und für Änderungen des Gameplays, können [[:addons|Addons bzw. Plugins]] installiert werden. Das Spektrum reicht von einfachen Scripts bis hin zu komplexen Plugins mit einer Datenbankanbindung und einer Vielzahl von Funktionen. Für die einfachere Administration des Servers und für Änderungen des Gameplays, können [[:addons|Addons bzw. Plugins]] installiert werden. Das Spektrum reicht von einfachen Scripts bis hin zu komplexen Plugins mit einer Datenbankanbindung und einer Vielzahl von Funktionen.
 +
 +===== Fastdownload =====
 +Im Artikel [[:fastdownload]] sind die weiteren nötigen Schritte beschrieben.
installation/dedicated_server_standalone.1225667159.txt.gz · Zuletzt geändert: 2009/10/24 13:48 (Externe Bearbeitung)