Hallo zusammen,
da ich Servertechniker für div. "Projekte" bin und auch einigen Leuten aus ePVP mit ihren Servern geholfen habe (beste Referenz. HolySell) dachte ich mir ich schreibe mal ein kleines rundum-sorglos Tutorial aus dem ihr nur die Befehle rauskopieren müsst und falls mal etwas nicht klappt entweder aufgrund der gegebenen Informationen oder eigener Hintergrundinformation selber basteln könnt. Natürlich besteht auch die Möglichkeit hier in diesen Thread zu posten. Ich bitte euch allerdings mir weder eure Fragen per PN zu schicken, noch privat auf eure Posts hinzuweisen. Auch in Skype werde ich nur Leute annehmen mit denen ich vorher grundsätzlich über das Problem geschrieben habe.
Bevor ich mit dem Tutorialteil anfange werde ich noch ein kleines Lexikon der wichtigsten Serverbegriffe anlegen.
VPS - Virtueller Server -
Virtueller Server
Dedicated Server (fälschlich oft als Rootserver bezeichnet) -
Server
Linux - Unser Kernel, als Betriebssystem nutze ich Debian -
Linux
Debian - Das verwendete Betriebssystem -
Debian
SSH - Unsere Verbindung zum Server -
Secure Shell
screen - Programm unter Linux das benutzt wird um Programme auch nach dem Logout weiterzu nutzen -
GNU Screen
So, wenn ihr jetzt euer bisheriges Wissen mit den nötigen Zusatzinformationen ergänzt habt können wir dazu übergehen die Grundlagen zu erklären die wir brauchen. Wenn ihr euch einen Linuxserver mietet bekommt ihr vom Betreiber meistens Zugang zu einem Webinterface und die sog. Root-Logindaten. Über das Webinterface könnt ihr euer Betriebssystem auswählen, ich empfehle die Nutzung von 32Bit (x86) Debian, da dort die wenigsten Kompatibilitätsprobleme auftreten. Natürlich kann es passieren, dass ihr aufgrund der Hardwarevorraussetzungen dazu gezwungen seid 64Bit zu nutzen. Für diesen Fall könnt ihr allerdings einfach die 32Bit Librarys nachinstallieren. Ein paar Infos zu dem Packet lib32 erhaltet ihr hier:

.
Um eine Verbindung zum Server herzustellen benötigen wir unter Windowsdas Programm Putty, welches ihr

herunterladen könnt.
Unter MAC geht können wir auch das Terminal nutzen, die Befehle werde ich immer parallel zu den Windowsanweisungen angeben.
Öffnet ihr PuTTY, könnt ihr unter "Hostname, or IP-Adress" die IP-Adresse eures Servers eingeben. Alles andere könnt ihr im Normalfall unverändert lassen.
Unter MAC öffnet ihr einfach das Terminal und gebt folgenden Befehl ein:
Wobei "<ip>" natürlich durch eure IP-Adresse ersetzt werden sollte.
Beide Programme verbinden sich jetzt mit dem Server, sobald ihr "Enter" drückt. Bei Putty muss in der neuen Console noch der Nutzername ("root") eingegeben werden, darauf folgt das Passwort.
Im Terminal haben wir bereits unseren User angegeben und müssen nurnoch das Passwort eingeben.
In beiden Fällen werden keine Zeichen oder Sterne angezeigt. Das nennt man "stumme" Eingabe. Gebt einfach euer Passwort ein und Entert.
Nachdem ihr euch als "root" ausgewiesen habt bekommt ihr Zugriff auf die Console des Servers.
Bevor wir hier irgendetwas anderes machen werden wir das System auf den neuesten Stand bringen. Dabei hilft uns ein Tool welches uns sehr häufig begegnen wird, dieses nennt sich
Apitude. Dieses Tool versteckt sich hinter der Anweisung:
welches immer einen Befehl einleitet bei dem Packete de-, oder installiert werden.
Um also nun unser System zu updaten geben wir folgende Befehle nacheinander ein:
Code:
apt-get update
apt-get upgrade
Nun benötigen wir noch ein wenig Handwerkszeug mit dem wir z.B. Serverprozesse überwachen, oder Einstellungen ändern können.
Code:
apt-get install nano
apt-get install htop
apt-get install screen
Nun könnt ihr mit dem Befehl "htop" eine Übersicht aller Prozesse und der CPU/RAM Nutzung ausgeben lassen. Mit "nano" könnt ihr Textdateien einfach editieren. Ich nutze deshlab nano, weil der vorinstallierte Texteditor vi mir zu schwer zu bedienen ist.
Jetzt kommt der erste optionale Schritt. Und zwar können wir einen FTP-Server einrichten. Das bräuchten wir um mit Programmen wie FileZilla auf unseren Server zu verbinden. Ich werde manchmal darauf verweisen das wir FTP Zugang benötigen, also könnt ihr die Installation im Vorfeld ausführen.
Um den FTP Zugang zu aktivieren müssen wir das Programm ProFTPd installieren und einrichten.
Mittles dem Befehl:
Code:
apt-get install proftpd
installiert der Server selbsständig das Tool. Allerdings sind noch einige grobe Sicherheitslücken vorhanden, welche aber auch einfach zu schliessen sind.
Zum einen werden wir den FTP Zugriff auf eine bestimmte Benutzergruppe beschränken, da nicht jeder Nutzer per FTP erreichbar sein soll und muss.
Zum anderen werden wir die User in ihr Homeverzeichnis "einsperren", was nichts weiter heisst als das die Benutzer nur in den ihnen zugewiesenen Verzeichnissen navigieren können. Das ist vor allem wichtig wenn wir sensible Konfigurationen von neugierigen Augen fernhalten wollen..
Um also in die Konfigurationsdatei von proftpd reinschreiben zu können nutzen wir nano:
Code:
nano /etc/proftpd/proftpd.conf
Es öffnet sich ein Textfeld in dem bereits einiges an Text zu sehen ist.
Scrollt hier ganz nach unten und kopiert folgendes in die Textdatei:
Quote:
<Global>
RequireValidShell off
</Global>
DefaultRoot ~ ftpuser
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
|
Mit Putty müsst ihr einfach in das Textfeld rechtsklicken,
unter MAC könnt ihr die Tastenkombination CMD+V nutzen.Nun müsst ihr mit STRG+X eure Arbeit beenden. Mit Y die Änderungen bestätigen, und einmal entern um dem Dateinamen zuzustimmen.
Nun müssen wir das Tool neu starten um die Einstellungen zu übernehmen. Dies können wir mittels:
Code:
/etc/init.d/proftpd restart
Da wir den FTP Zugriff auf eine bestimmte Benutzergruppe namens "ftpuser" beschränkt haben, müssen wir diese jetzt auch anlegen.
Das erfolgt mittels:
Quote:
Jetzt legen wir unseren Testbenutzer an. Diesen werde ich auch in allen anderen Tutorials verwenden um die Gameserver einzurichten.
Code:
adduser spiele -home /home/spiele
Der Benutzer "spiele" wurde jetzt hinzugefügt und hat sein Heimverzeichnis in /home/spiele.
Code:
adduser spiele ftpuser
Jetzt ist unser Benutzer "spiele" auch für den Zugriff via FTP freigegeben.
Um dies zu testen Nutzen wir FileZilla (

/

)
Nach der Installation müssen wir unsere Daten eingeben.
Server: <IP-Adresse>, Benutzername: spiele, Password: <Euer Passwort>, Port: 21
Nun sind wir auch per FTP mit dem Server verbunden und können Dateien zwischen unserem Computer und dem Server verschieben. Das wird besonders interessant wenn z.B. Plugins oder Maps hochgeladen werden müssen.
Tipp: Für die Macnutzer, ihr werdet feststellen das ihr aus HTOP nicht mittels F10 herauskommt. Nutzt einfach STRG+C!
Jetzt sind alle Vorraussetzungen geschaffen um unseren ersten Gameserver einzurichten. Dieses Tutorial erweitere ich nach Lust und Laune, und ich bin dankbar wenn ihr mir eure Tutorials zur Verfügung stellen wollt und diese in den Thread passen (PN an mich!).
Forum
Möchte man ein Forum für seinen Clan erstellen, so benötigt man zwei Dinge.
1. Einen Webserver, denn wir haben momentan nur einen Server.
2. Ein CMS, also ein Forenscript. Ich verwende gerne das ClanSphere Script, da es einen hohen Funktionsumfang bietet und kostenlos verfügbar ist.
Zunächst möchten wir uns aber mit der Einrichtung eines sog. LAMP Servers beschäftigen, da dies die Grundlage für unsere Webseite darstellt.
Linux
Apache
MySQL
PHP
Entsprechend der Reihenfolge fangen wir mit A, wie Apache an. Da wir jetzt Änderungen im System vornehmen müssen wir uns als Benutzer "root" in der Console einloggen. Ich gehe davon aus das wir uns nun im root des Servers befinden, also der Pfad nur aus "/" besteht.
Googled man nach einem Tutorial zur Installation von Apache findet man lachhafterweise noch die ganzen alten Kamellen in denen der Quellcode des Programms noch selber compiliert werden musste.
Inzwischen geht das alles viel leichter mit Apitude:
Code:
apt-get install apache2
Der Server läuft nach der Installation, und wenn wir unsere IP Adresse im Browserfenster eingeben sollte eine weisse Seite mit dem Schriftzug "It Works!" zu sehen bekommen.
Damit wir nun unsere Webseite mit Inhalten füllen können müssen wir noch einen Benutzer anlegen der auf unseren Webserver zugreifen kann. Man sollte hierbei wissen, dass standartmässig das Verzeichnis /var/www den Inhalt des Webservers enthält. Naheliegend ist also das unser User dort sein Homeverzeichnis haben muss:
Code:
adduser web -home /var/www
adduser web ftpuser
Nun haben wir den User web hinzugefügt und für ihn den Zugriff via FTP freigegeben. Loggen wir uns nun mit Filezilla ein könnten wir theoretisch eine statische Webseite erstellen. Statisch deshalb, weil wir ja noch kein PHP installiert haben.
Das können wir natürlich schnell nachholen mit:
Code:
apt-get install php5-common libapache2-mod-php5 php5-cli
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
Hier werden alle PHP Pakete heruntergeladen und der Webserver wird anschliessend neu gestartet.
Jetzt haben wir es fast geschafft, aber uns fehlt noch eine Datenbank. Leider ist hier die Einstellung etwas umfangreichen, sodass wir ihr ca. 10 Minuten widmen müssen.
Code:
apt-get install mysql-server mysql-client php5-mysql
installiert euch den MySQL Server. Jetzt benötigt ihr natürlich einen Zugang zu eurer Datenbank, da hier nicht die User von unserem Server übernommen werden.
Code:
mysqladmin -u root -h localhost password '<mypassword>'
Dieser Befehl erzeugt nun ein von euch wählbares Passwort auf dem Benutzer "root".
Standartmässig ist MySQL so eingestellt, dass wir nicht von extern auf die Datenbank zugreifen können. Da ich es für sicherheitstechnisch bedenklich halte, daran etwas zu ändern werde ich darauf hier nicht eingehen.
Da wir allerdings Zugang zu unseren Datenbanken brauchen benutzen wir "phpmyadmin".
Code:
apt-get install phpmyadmin
Sollte alles glattgelaufen sein (während der Installation müsst ihr eure MySQL Logindaten eingeben etc.) könnt ihr nun auf eurer IP-Adresse/phpmyadmin im Browser auf die Datenbank zugreifen.
Zur Nutzung von PHPMyadmin verweise ich auf dieses Tutorial:
Nun ist endlich die Installation von unserem Webserver anbgeschlossen, und wir können unsere Inhalte uploaden.
Das Script erhaltet ihr unter:

Nachdem ihr die ReadMe Datei aufmerksam studiert habt

könnt ihr die Files zur Installation uploaden. Ihr solltet natürlich mit dem Bentzer "web" eingeloggt sein.
Nachdem ihr das getan habt könnt ihr eure IP im Browser aufrufen und die Installation nutzen.
Alles weiter erklärt sich, denke ich, von selbst.
Teamspeak3
Zu den Gameservern gehört natürlich auch ein TS3 Server, welcher inzwischen zur Grundausstattung aller Gameserveradmins gehört.
Da der Server allerdings getrennt von den Gameservern laufen sollte legen wir dazu einen extra User an.
Mittels:
Code:
adduser teamspeak -home /home/teamspeak
adduser teamspeak ftpuser
Adden wir einen neuen User und geben ihn direkt für den FTP Zugriff frei.
Am besten schliesst ihr nun euer Putty bzw. Terminalfenster einmal und öffnet ein neues in dem ihr euch direkt mit dem Nutzernamen "teamspeak" einloggt. Da wir hier nichts anderes machen als Teamspeak3 zu installieren können wir direkt im Homeverzeichnis arbeiten.
Code:
wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.5/teamspeak3-server_linux-x86-3.0.5.tar.gz
tar xfvz teamspeak3-server_linux-x86-3.0.5.tar.gz
Dies erzeugt ein neues Verzeichnis mit Namen "teamspeak3-server_linux-x86-3.0.5".
(Tipp: Via FileZilla umbenennen erspart viel Tipparbeit)
Code:
cd teamspeak3-server_linux-x86-3.0.5
Jetzt befinden wir uns im neuen Verzeichnis mit den Serverfiles.
Teamspeak liefert uns zwei Startscripte. Das erste führen wir nur beim ersten Start aus, da es uns die nötigen Logindaten gibt.
Code:
./ts3server_minimal_runscript.sh
Wenn alles richtig läuft habt ihr jetzt das hier in der Console stehen:
Quote:
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Acccount created
loginname= "serveradmin", password= "<Random Password>"
------------------------------------------------------------------
ServerAdmin token created, please use the line below
token=<Random Token>
|
Wobei <Random Token> eine lange Zeichenkette ist, welche auf dem ersten Server (Port 9987) genutzt werden kann um Adminrechte zu erhalten.
<Random Password> ist das Passwort mit dem ihr euch via Serverquery einloggen könnt. Solltet ihr dieses vergessen kann man es zwar wieder herstellen, aber schöner ist es dieses Passwort einfach zu speichern.
Jetzt könnt ihr schonmal testweise connecten.
Dummerweise haben wir auch jetzt das Problem, dass der Server sich beendet sobald wir uns ausloggen. Natürlich können wir jetzt screen nutzen, aber Teamspeak liefert uns ein alternatives Startscript, welches sich selber wie ein screen verhält ohne das wir screen manuell benutzen müssten.
Code:
./ts3server_startscript.sh start
Jetzt läuft der Server im Hintergrund und ihr könnt euch aus der Console ausloggen.
Wenn euch die geringe Slotanzahl nicht reicht, so könnt ihr eine NPL registrieren. Diese berechtigt euch für nicht kommerzielle Zecke bis zu zehn Server mit insgesamt nicht mehr als 520 Slots zu benutzen.
Solltet ihr Server vermieten wollen, so müsst ihr eine andere Lizenz kaufen. Informationen dazu gibt es

. Eine NPL könnt ihr

bestellen.
Steam Servertool
Um den Server zu installieren benötigen wir das Steam Updatetool. Dieses können wir, einmal heruntergeladen, für alle Steambasierten Gameserver nutzen!
Bevor wir allerdings irgendwelches Files herunterladen loggen wir uns mit dem User "spiele" ein.
Dann erstellen wir einen extra Ordner für unser Tool und bewegen uns in ihn.
Code:
mkdir steam
cd steam
Code:
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
chmod u+x hldsupdatetool.bin
./hldsupdatetool.bin
Durch diese drei Befehle wird das Programm heruntergeladen, ausführbar gemacht und letzten Endes gestartet. Um die Installation zu starten müsst ihr nach dem letzten Befehl einfach "yes" eintippen und entern.
Nun könnt ihr über Steam alle Gameserver mittels Befehl installieren.
Counterstrike 1.6
Bevor ihr den Server installieren könnt bearbeitet bitte das Tutorial für das Steam Servertool.
Ausgehend davon das ihr euch momentan im Ordner /steam befindet und als "spiele" eingeloggt seid müsst ihr nun mit dem Befehl "cd" in euer Homeverzeichnis zurückkehren. Dann mit
einen neuen Ordner einfügen und wieder in den Steamordner zurückkehren. Nun müsst ihr diesen Befehl hier eingeben um den Gameserver zu installieren.
Code:
./steam -command update -game cstrike -dir /home/spiele/cs
Wichtig ist, dass ihr den Befehl mehrfach eingebt bis folgende Antwort ankommt:
Quote:
|
HLDS installation up to date
|
Nun ist der Server installiert und wir navigieren in das Serververzeichnis mittels
Jetzt können wir den Server zum ersten mal starten.
Code:
./hlds_run -game cstrike +maxplayers 12 +map de_dust
Wenn alles gut läuft startet der Server und läuft jetzt zufriedenstellend und gibt folgendes aus:
Quote:
Auto detecting CPU
Using AMD Optimised binary.
Auto-restarting the server on crash
Console initialized.
Protocol version 47
Exe version 1.1.2.5/Stdio (cstrike)
Exe build: 20:06:30 Mar 7 2006 (3421)
STEAM Auth Server
Server IP address <Eure IP>
Adding master server <Random IP>
Adding master server <Random IP>
Connection to Steam servers successful.
VAC secure mode is activated.
|
Wobei <Eure IP> durch eure IP Adresse und <Random IP> irgendeine Adresse der Steamserver ist.
Um nun Einstellungen vorzunehmen müsst ihr eure server.cfg anpassen. Dort könnt ihr z.B. das rcon Passwort und den Servernamen (aka. hostnamen) festlegen. Um in die config.cfg zu kommen, könnt ihr mit FileZilla in das Verzeichnis /cs/cstrike Verzeichnis gehen und die Datei herunterladen und bearbeiten.

erhaltet ihr die ESL-Serversettings.
Um den Server zu stoppen gibt es drei Möglichkeiten. Entweder tippt ihr "quit" in die Konsole ein, oder ihr drückt STRG+C. Die unsanfteste und sicher auch unfreiwillige Möglichkeit ist das ihr einfach das Fenster schliesst bzw. euch ausloggt. Der Prozess wird so ebenfalls heruntergefahren.
Da wir allerdings nicht immer eingeloggt sein möchten können wir screen benutzen um dem zu entgehen.
Code:
screen -m -d -S hlds ./hlds_run -game cstrike +maxplayers 12 +map de_dust
Wenn ihr den Server so startet wird euch nicht die Serverconsole geöffnet. Wie ihr unter htop sehen könnt, rennt der Prozess jetzt im Hintergrund und ihr könnt euch ausloggen.
Um den Prozess nun zu beenden könnt ihr zwei Wege wählen.
Ihr könnt natürlich direkt im htop den Prozess markieren und mit F9 und anschliessendem entern den Prozess beenden.
Unter MAC wird das allerdings nicht gehen, da das F9-Signal nicht ordentlich übermittelt wird (frag mich warum
). Also können wir über den Prozess "töten". Das kommt inetwa dem "Prozess beenden" im Windows Taskmanager gleich.
Counterstrike Source
Bevor ihr den Server installieren könnt bearbeitet bitte das Tutorial für das Steam Servertool.
Ausgehend davon das ihr euch momentan im Ordner /steam befindet und als "spiele" eingeloggt seid müsst ihr nun mit dem Befehl "cd" in euer Homeverzeichnis zurückkehren. Dann mit
einen neuen Ordner einfügen und wieder in den Steamordner zurückkehren. Nun müsst ihr diesen Befehl hier eingeben um den Gameserver zu installieren.
Code:
./steam -command update -game "Counter-Strike Source" -dir /home/spiele/css
Wichtig ist, dass ihr den Befehl mehrfach eingebt bis folgende Antwort ankommt:
Quote:
|
HLDS installation up to date
|
Nun ist der Server installiert und wir navigieren in das Serververzeichnis mittels
Jetzt können wir den Server zum ersten mal starten.
Code:
./srcds_run -game "Counter-Strike Source" +map de_dust -maxplayers 12
Wenn alles gut läuft startet der Server und läuft jetzt zufriedenstellend und gibt folgendes aus:
Quote:
Auto detecting CPU
Using AMD Optimised binary.
Auto-restarting the server on crash
Console initialized.
Protocol version 47
Exe version 1.1.2.5/Stdio (cstrike)
Exe build: 20:06:30 Mar 7 2006 (3421)
STEAM Auth Server
Server IP address <Eure IP>
Adding master server <Random IP>
Adding master server <Random IP>
Connection to Steam servers successful.
VAC secure mode is activated.
|
Wobei <Eure IP> durch eure IP Adresse und <Random IP> irgendeine Adresse der Steamserver ist.
Jetzt wird es Zeit ein wenig an der Config zu spielen, in der unter anderem auch der Name eures Servers eingegeben werden kann. Für CS:S gibt es sehr komfortable Config-Creator Webseiten. Einer findet sich

.
Die erstellte Config wird dann mittels Filezilla in das Verzeichnis /css/cstrike/cfg kopiert.
Um ESL Configs zu nutzen müsst ihr das ESL-Plugin installieren. Dieses kann

heruntergeladen werden.
Alle Files aus dem Ordner /cstrike/addons auf eurem Computer müssen jetzt in den /cstrike/addons Ordner auf eurem Server.
Diese Files heissen:
-eslplugin.dll
-eslplugin.so
-eslplugin.vdf
Gesagt, getan und Server restarted wird das Plugin mitgeladen und stellt euren Server automatisch ein. Eine Liste der Commands die per rcon geschickt werden können findet sich in der ReadMe:
Quote:
Available commands:
- status
Shows if the plugin is active and prints the current version
it also executes the status / rcon status command automatically
- esl_dxkick_enable / esl_dxkick_disable
Enables or disables the DX-Forcing on next map load (rcon only)
- eslplugin_version
Prints the version variable (Read only)
- eslplugin_active
Used for HLSW to proof that the plugin is loaded. (Read only)
- esl_update
Manually check for updates
- esl_autorecord [0 / 1] (default: 0)
Creates a replay if two or more players are connected and stopps if server is empty
- esl_autoarmor [0 / 1] (default: 0)
Sets armor of all players to 100 each round
- 1on1, 2on2, 3on3, 2on2aml...
exec server configs
- User Console: eslstatus
prints usual status plus Versions of the ESL Plugin (will add more later!)
- esl_webstart / esl_webstop
starts or stopps the internal webserver
- esl_webip
Changes the listening IP of the webserver to a specific one (0 to use server IP)
- esl_webport
changes the listening port of the webserver to a specific one (0 to use tv_port)
|
Um den Server zu stoppen gibt es drei Möglichkeiten. Entweder tippt ihr "quit" in die Konsole ein, oder ihr drückt STRG+C. Die unsanfteste und sicher auch unfreiwillige Möglichkeit ist das ihr einfach das Fenster schliesst bzw. euch ausloggt. Der Prozess wird so ebenfalls heruntergefahren.
Da wir allerdings nicht immer eingeloggt sein möchten können wir screen benutzen um dem zu entgehen.
Code:
screen -m -d -S hlds ./hlds_run -game "Counter-Strike Source" +maxplayers 12 +map de_dust
Wenn ihr den Server so startet wird euch nicht die Serverconsole geöffnet. Wie ihr unter htop sehen könnt, rennt der Prozess jetzt im Hintergrund und ihr könnt euch ausloggen.
Um den Prozess nun zu beenden könnt ihr zwei Wege wählen.
Ihr könnt natürlich direkt im htop den Prozess markieren und mit F9 und anschliessendem entern den Prozess beenden.
Unter MAC wird das allerdings nicht gehen, da das F9-Signal nicht ordentlich übermittelt wird (frag mich warum
). Also können wir über den Prozess "töten". Das kommt inetwa dem "Prozess beenden" im Windows Taskmanager gleich.
Teeworlds
Zunächst gehen wir davon aus, dass wir mit dem User "spiele" eingeloggt sind und uns im Homeverzeichnis befinden.
Code:
mkdir teeworlds
cd teeworlds
Die "Installation" eines Teeworlds Servers ist denkbar einfach, denn der Server ist in den Gamefiles enthalten.
Code:
wget http://www.teeworlds.com/files/teeworlds-0.6.0-linux_x86.tar.gz
tar xfvz teeworlds-0.6.0-linux_x86.tar.gz
cd teeworlds-0.6.0-linux_x86
Diese drei Befehle bringen euch in das entpackte Spieleverzeichnis.
Der Befehl
startet nun den "nackten" Server, ohne irgendwelche Einstellungen.
Die Besonderheit ist, dass die Einstellungen manuell mitgeladen werden müssen, also muss erst eine Datei angelegt werden, ich nenne sich mal config.cfg.
Quote:
sv_name=Testserver
sv_gametype=dm
sv_warmup=10
sv_map=dm1
sv_maprotation=dm2 dm6
sv_max_clients=10
sv_scorelimit=400
password=roflcopter
|
Diese Datei wird dann in das aktuelle Verzeichnis gelegt (sinnvollerweise via FTP bzw. FileZilla).
Startet man den Server nun mit
Code:
./teeworlds_srv -f config.cfg
Möchte ich jetzt den Server permanent laufen lassen adde ich einfach den Screenbefehl, dass sieht dann so aus:
Code:
screen -m -d -S teeworlds ./teeworlds_srv -f config.cfg
Möchte ich den Server beenden benutze ich einfach:
Code:
killall -KILL teeworlds
oder benutze die altbewährte Methode via HTOP.
Minecraft
Minecraft ist ein Spiel, dass hauptsächlich davon lebt das User eigene Mods erstellen. Um diese Mods nutzen zu können muss man eine spezielle Modifikation für den Server verwenden. Sehr bekannt und verbreitet ist Bukkit. Weniger bekannt, allerdings um einiges leichter zu bedienen ist der CanaryMod.
Ich beschäftige mich mit den Grundeinstellungen von Minecraft, da es zu aufwendig währe ein vollständiges Tutorial zu erstellen. Viele Informationen, Tutorials und Plugins gibt es im

bzw. auf
Nun zur Einrichtung des Servers. Da wir mit Bukkit arbeiten lassen wir die Minecraftwebseite links liegen und betrachten die Bukkitwebseite. Leider ist es so, dass Bukkit immer ein wenig zeitverzögert auf die Updates von Mohjang eingeht. Dementsprechend später werden dann die Plugins auf den neuesten Stand gebracht, so dass es Gang und Gebe ist das die Bukkitserver mit vielen Plugins ein bis zwei Updates "hinterherhängen".
Ausgehend davon das wir mit dem User "spiele" im Homeverzeichnis eingeloggt sind erstellt wir zunächst unser Verzeichnis:
Code:
mkdir minecraft
cd minecraft
Dann laden wir die Files herunter:
Code:
wget http://dl.bukkit.org/downloads/craftbukkit/get/01149_1.2.5-R4.0/craftbukkit.jar
und wagen schon einen ersten Start
Code:
java -Xmx1024M -Xms1024M -jar craftbukkit.jar nogui
Wobei der Xmx und Xms Befehl für den verwendbaren RAM steht, der Minecraft zur Verfügung steht. Geht davon aus das ein kleiner Server mit ca. 5 Usern mit 1024KB auskommen wird. Größere Server mit vielen Plugins verbrauchen allerdings mehr RAM.
Wir tippen jetzt "stop" in die Console und stoppen damit den Server und kehren zu Linux zurück.
mit
Lassen wir uns den Verzeichnisinhalt ausgeben. Wie ihr seht sind viele neue Dateien entstanden, von denen allerdings eine besonders wichtig ist, nämlich die Server.properties.
Diese ist standartmässig eingestellt und ermöglicht so das normale Spielen. Möchte man Änderungen vornehmen empfehle ich die Orientierung an Configs anderer Spieler welche man zu Hauf im Internet finden kann.
Wichtig ist ausserdem der "plugins" Ordner, welcher die Plugins enthält. Solltet ihr Plugins nutzen wollen reicht es sie in diesen Ordner zu kopieren und den Befehl /reload zu nutzen.
Möchte ich jetzt den Server permanent laufen lassen adde ich einfach den Screenbefehl, dass sieht dann so aus:
Code:
screen -m -d -S minecraft java -Xmx1024M -Xms1024M -jar craftbukkit.jar nogui
Möchte ich den Server beenden benutze ich einfach:
Code:
killall -KILL minecraft
oder benutze die altbewährte Methode via HTOP.
Wenn ein Server mal abstürzt und nicht im Screen gestartet wurde, kann es passieren das sich der Prozess nicht beendet, auch wenn man sich ausloggt. Dann hilft der Befehl:
Multi Theft Auto:SA
Um einen MTA:SA Server aufzusetzen loggen wir uns als Benutzer "spiele" im Homeverzeichnis ein.
Code:
mkdir mta
cd mta
wget http://linux.mtasa.com/dl/130/multitheftauto_linux-1.3.0.tar.gz
tar xfvz multitheftauto_linux-1.3.0.tar.gz
cd mods/deathmatch
http://linux.mtasa.com/dl/130/baseconfig.tar.gz
tar xfvz baseconfig.tar.gz
cd
cd mta
So, nun habt ihr die Gamefiles heruntergeladen und befindet euch wieder im Ordner "mta". Was fehlt sind die Standartressources, welche ich über einen Umweg herunterlade.

Hier lade ich das *.zip Archiv herunter und kopiere dann alle Files via FileZilla in des Verzeichnis mta/mods/resources. Dann ist der Server lauffähig und kann ein erstes mal starten!
Startet der Server korrekt haben wir alles richtig gemacht und können mit "quit" wieder zu Linux zurückkehren.
Um den Server einzustellen kann die Configdatei welche im Verzeichnis mta/mods/deathmatch unter dem Namen mtserver.conf zu finden ist.
Wichtig hier sind folgende Einstellungen:
Quote:
<servername></servername>
<maxplayers></maxplayers>
<password></password>
|
sind diese zur Zufriedenheit eingestellt kann der Server wieder gestartet werden. Es ist jetzt an der Zeit euren Adminaccount anzulegen. Dazu loggt ihr euch auf euren MTA-Server ein und gebt im Chat folgendes ein:
Code:
/addaccount <password>
Wobei ihr <password> durch euer Passwort ersetzt. Nun habt ihr einen Benutzeraccount auf euren Nutzernamen angelegt und seid auch eingeloggt. Um die Adminrechte zu erhalten müsst ihr jetzt den Server stoppen und in der acl.xml (mta/mods/deathmatch) eine Änderung vornehmen:
Quote:
<group name="Admin">
<object name="user.<Nutzername>"</object>
|
Wenn ihr <Nutzername> durch euren Nutzernamen ersetzt und den Server startet könnt ihr euch mit
ingame einloggen und das Adminpanel verwenden.
Abschliessend noch der Screenstart und allgemeine Killbefehl:
Code:
screen -screen -m -d -S mta ./mta-server
killall -KILL mta
Da viele Scripte MySQL nutzen erkläre ich jetzt wie ihr das Plugin unter Linux installiert.
Zunächst navigiert ihr in den Zielordner
Code:
cd mta/mods/deathmatch
mkdir modules
cd modules
wget http://multitheftauto-modules.googlecode.com/files/mta_mysql.so
Das Plugin ist jetzt an seinem Platz. Der Server muss jetzt noch darauf hingewiesen werden das dieses Plugin mitgeladen werden muss.
Dies kann in der Config eingestellt werden wenn dieser Text einfach ans Ende der Datei kopiert wird:
Quote:
|
<module src="mta_mysql.so" />
|
Startet ihr nun den Server sollte folgende Zusatzzeile in eurer Console auftauchen
Quote:
|
MODULE: Loaded "MySQL 5.0 database module" [...]
|
Was genau euch dieses Plugin freischaltet erfahrt ihr in diesem Artikel im MTA Wiki:

KillingFloor
Ich gehe davon aus, dass wir mit dem Benutzer "spiele" im Homeverzeichnis eingeloggt sind. Zunächst erstellen wir wieder ein Verzeichnis und wechseln dann in den Steamordner.
Code:
mkdir killingfloor
cd steam
Nun laden wir das Spiel über das Steamtool herunter, wichtig ist das ihr das Tool so oft neustartet bis die Gameserverfiles wirklich heruntergeladen wurden.
Code:
./steam -command update -game killingfloor -dir /home/spiele/killingfloor -verify_all -retry
Habt ihr alles richtig gemacht könnt ihr nun in's Serververzeichnis gehen
und den Server das erste mal Starten. Allerdings müssen hier bereits die ersten Einstellungen gemacht werden, also müsst ihr den Startbefehl noch modifizieren:
Code:
./ucc-bin server KF-BioticsLab.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?AdminName=ADMIN?AdminPassword=PASSWORD?multihome=YOURIPHERE -nohomedir ini=KillingFloor.ini
Dort wo "ADMIN", "PASSWORD" und "YOURIPHERE" steht, tragt ihr bitte den jeweils gewünschten Wert ein. Admin und Passwort werden nachher gebraucht um sich in das Webinterface des Servers einzuloggen.
Beendet den Server nun mittels "quit" und erstellt ein Script mittels nano
In das Textfeld kopiert ihr dann folgendes:
Quote:
#!/bin/sh
#clear
# An old hlds startscript found somewhere in the net changed by
# Terrorkarotte
# to match a killing floor server
# Edit and uncomment it to your needs
DIR=/path/to/kfserver/system
UPDATEDIR=/path/to/kfserver
DAEMON=$DIR/ucc-bin
PARAMS="server KF-BioticsLab.rom?game=KFmod.KFGameType?VACSecured=tr ue?MaxPlayers=6?AdminName=ADMIN?AdminPassword=PASS WORD?multihome=YOURIPHERE"
PARAMS2="-nohomedir ini=KillingFloor.ini"
NAME=killingfloor
DESC="killingfloor"
case "$1" in
start)
echo "Starting $DESC: $NAME"
if [ -e $DIR ];
then
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS $PARAMS2
else echo "No such directory: $DIR!"
fi
;;
stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS $PARAMS2
echo " ... done."
;;
status)
if [[ `screen -ls |grep $NAME` ]]
then
echo "found running prozess: $DESC: $NAME"
else
echo "no running prozess: $DESC: $NAME"
fi
;;
check)
if [[ `screen -ls |grep $NAME` ]]
then
echo "running"
else
echo -n "Starting $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS $PARAMS2
echo " ... done."
fi
;;
update)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stopping $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo "Updating Installation"
cd
cd $UPDATEDIR
./steam -command update -game killingfloor -verify_all
echo -n "Starting $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS $PARAMS2
echo " ... done."
;;
*)
echo "Usage: $0 {start|stop|restart|update}"
exit 1
;;
esac
exit 0
|
Das schöne an diesem Script ist, dass der Server nun einfach mittels:
im Screen gestartet wird, jede Minute den Onlinestatus checkt und sich ggf. neu startet und sich morgens um 6Uhr updated, falls Updates vorhanden sind.
Call of Duty Modern Warfare *ranked*
Einen CoD4 Server auf Linux zu erstellen ist entweder mit sehr langen Wartezeiten oder der Registrierung in einem Forum verbunden das diese Uploads von FastDL Servern zu Verfügung stellt. Da es über einen normalen Hausanschluss mehrere Stunden dauern kann die 6GB Serverfiles hochzuladen werde ich mich immer auf letzteres Beziehen.
Bevor wir allerdings die Serverfiles beschaffen erstellen wir (davon ausgehend als "spiele" im Homeverzeichnis eingeloggt zu sein) unseren Serverordner und bewegen uns in ihn:

-> Linux Server Files -> CoD4 Ranked Server Komplett Paket
In diesem Forum müsst ihr euch erst registrieren. Dann könnt ihr einen DL-Link erstellen lassen und die Files laden. Wenn ihr keinen Account erstellen wollt schreibt mir eine PN, ich schicke euch nen Link der dann 60 Minuten gültig ist (also schnell sein!). Ich habe mit einer DL-Rate von 5MB/s heruntergeladen und ca. 15Min. gebraucht.
Habt ihr das Archiv heruntergeladen könnt ihr die Datei dann entpacken:
Code:
tar xvfj cod4-server-1-2.bz2
Das dauert je nach Server unterschiedlich lange... ein Quadcore CPU mit 16GB RAM arbeitet natürlich schneller als ein Virtualisierter Dualcore mit 521MB RAM
Jetzt müssen wir noch in das Startscript schreiben:
Code:
cd cod4_new
nano start_stop_restart.sh
Hier einfach das xxx.xxx.xxx.xxx durch eure IP Adresse ersetzen.
Quellen:
Begriffsdefinitionen - Wikipedia
Grundsätzliche Linuxeinrichtung -

Forum -

Teamspeak -

Alle Steambasierten Server -

Teeworlds -

Multi Theft Auto:SA -

KillingFloor - wiki.fragaholics.de