* Allgemeines
* Webinterfache selber schreiben
* Freie Lösungen
* Komerzielle Lösungen
* RCON benutzen
Allgemeines
Da man oft mehreren Leuten die Möglichkeit bieten möchte den Gameserver z.B. neuzustarten o.Ä. und nicht jedem dazu einen Zugang zur Konsole geben möchte, kann es ganz nützlich sein wenn man sich ein Webinterface zulegt. So können auch Leute die wenig Ahnung von Linux haben leicht den Gameserver verwalten ohne vorher einen Kurs zu belegen. Hier soll erklärt werden wie man am besten zu einem eigenen Webinterface für seinen Gameserver kommt. Es gibt leider nicht all zu viele Alternativen, aber die paar wenigen die es gibt werden hier kurz vorgestellt.Webinterfache selber schreiben
Wer nur einige wenige Funktionen benötigt und Kenntnisse in Programmiersprachen wie z.B. PHP hat, kann sich mit ein wenig Zeitaufwand selber ein Webinterface für seinen Gameserver schreiben. Der Vorteil dabei ist das man so die Steuerung des Gameservers in die eigene Homepage mit einbauen kann und evtl. auch das Rechtesystem der Webseite dazu benutzen kann um zu bestimmen wer den Server administrieren darf. Das einfachste Prinzip ist das auf dem Server auf dem auch die Gameserver laufen ein Webserver läuft und man so z.B. über die PHP Funktion shell_exec() Befehle auf der Shell ausführen kann und so den Gameserver steuert. Man sollte aber immer beachten das man sich so leicht Sicherheitslücken schafft, der Bereich der den Gameserver steuert sollte also gut geschützt werden.Hier findest du ein sehr einfaches Script das einen Gameserver starten und stoppen kann
- Code: Alles auswählen
<?php
$act = $_GET['act'];
$output = shell_exec('./hlds.sh status');
// Server starten
if($act == 'start')
{
$output = shell_exec('./hlds.sh start');
sleep (3);
echo '<p><b>' . $output . '</b> <font color="#F00">Server gestartet</font></p>';
}
// Server stoppen
elseif($act == 'stop')
{
$output = shell_exec('./hlds.sh stop');
sleep (3);
echo '<p><b>' . $output . '</b> <font color="#F00">Server gestoppt</font></p>';
}
?>
<table border="0" width="80%">
<tr>
<td colspan="2"><h2 align="center">Serverstatus</h2></td>
</tr>
<tr>
<td colspan="2" align="center">
<table border="1">
<tr>
<td bgcolor="#666666" align="center"><b><?php echo $output; ?></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<h2>Script ausführen</h2>
<p>Hier kann das Serverscript zum starten und stoppen ausgeführt werden.<br />
Der Server darf auf keinen Fall 2 mal gestartet werden, sonst stürzt er ab.</p>
</td>
</tr>
<tr>
<td width="50%" align="right"><p><a href="server.php?act=start">Server starten</a> :</td>
<td width="50%"><a href="server.php?act=stop">Server stoppen</a></td>
</tr>
</table>
Eine deutlich bessere Methode ist es einen Listener zu benutzen der vom Webinterface angesprochen wird. Der Vorteil dabei ist das Webserver und Gameserver nicht die selbe Maschine sein müssen. Außerdem lässt sich so der Gameserver aus aus Tools die in anderen Sprachen geschrieben wurden steuern. Man könnte also auch ein Windows Programm statt dem Webinterface benutzen.
Perl Script:
Das Script läuft auf dem Gameserver und horcht auf einem bestimmten Port auf Befehle vom Webinterface um diese dann auszuführen.
Unter "name.pl" speichern und mit "perl name.pl" über die Konsole aufrufen. Der Benutzer der die Datei aufruft benötige Rechte um den Gameserver zu starten und sollte natürlich nicht root sein.
- Code: Alles auswählen
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $port = 8055; # Port angeben
my $socket = new IO::Socket::INET (LocalPort => $port, Listen => 1, Proto => 'tcp', Reuse => 1); # Socket erstellen
print "Server gestartet...\n"; # Benutzer volllabern
while() # Dauerschleife zum horchen
{
my $client = $socket->accept(); # Ankommende Socket Verbindungen annehmen
$client->recv(my $response, 1024); # Befehl empfangen
if($response eq "start") # Wenn "start" gesendet wurde
{
system("BEFEHL ZUM SERVER STARTEN"); # Befehl auf Konsole ausführen
$client->send("Server gestartet"); # Rückgabe an Client senden
}
if($response eq "stop") # Wenn "stop" gesendet wurde
{
system("BEFEHL ZUM SERVER STOPPEN"); # Befehl auf Konsole ausführen
$client->send("Server gestoppt"); # Rückgabe an Client senden
}
}
PHP Script:
Das Script läuft auf dem Webserver und sendet seine Befehle an das Perl-Script auf dem Gameserver.
- Code: Alles auswählen
$host = 'localhost'; // Host
$port = 8055; // Port auf dem das Perl Script läuft
$action = 'start'; // Variable für die Aktion die ausgeführt werden soll
$socket = fsockopen($host,$port,$errno,$error,5); // Verbindung aufbauen
fwrite($socket, $action); // Befehl an Socket senden
while (!feof($socket)) // Socket lesen
{
$tmp = fgets($socket); // Rückgabe holen
echo $tmp; // Rückgabe ausgeben
}
fclose($socket); // Socket schließen
Beide Beispiele sollen nur grobe Hilfestellungen sein und sollten auf keinen Fall 1:1 so übernommen werden.
Weitere Informationen und Hilfe beim schreiben eines Webinterfaces bekommt man im Forum
Freie Lösungen
Es gibt einige kostenlose Webinterface Lösungen im Internet, hier haben wir mal eine Sammlung mit einigen zusammengestellt. Wenn du selber ein Webinterface für Gameserver geschrieben hast, oder noch eins kennst das hier erwähnt werden soll, nimm bitte Kontakt mit einem Moderator im Forum auf.Gameserver Admin V3
Gameserver Admin V3 ist ein Webinterface für Gameserver die unter Linux laufen. Es werden beinahe alle Spiele unterstützt.
download
Gameserver Interface
Mit diesm Webinterface lassen sich ohne großen Aufwand Gameserver unter Linux installieren und konfigurieren. Das Webinterface wird auf deutsch und englisch angeboten.
download
Counter-Strike Server Admin
Counter-Strike Server Admin ist ein Webinterface für Counter-Strike Server die unter Windows laufen. Eigentlich handelt es sich dabei eher um ein Server/Client Tool, man kann den Gameserver also auch remote steuern.
download
GameCreate
GameCreate ist ein Webinterface mit dem sich fast alle Arten von Gameservern über ein Webinterface steuern und installieren lassen.
download
Kommerzielle Lösungen
Wer ein professionelles Webinterface benötigt und bereit ist Ged dafür auszugeben kann auf eine kommerzielle Lösung setzen. Hier möchten wir kostenpflichtige Webinterface-Lösungen vorstellen.TekLab Gameserver Webinterface
Preis: je nach Lizenz
Homepage: www.teklab.de
Unterstützte Spiele
Es werden alle uns bekannten Linux basierten Spiele (Dedicated Server) unterstützt. Als Administrator haben sie die Möglichkeit neue Spiele hinzuzufügen und Einstellungen zu bearbeiten. Auch haben wir für sie schon die meisten Spiele mit angepasstem Startskript im Webinterface eingetragen.
IP Projects BNC Webinterface
Preis: Preisliste
Homepage: www.ip-projects.de
Beschreibung
Unsere IRC BNC Verwaltungsoberfläche bietet Ihnen eine optimale Administrationslösung für Ihre BNC Kunden. Die Verwaltung der BNCs erfolgt vom Webserversystem aus d.h. es ist nicht notwendig das Webinterface auf dem selben Serversystem zu betreiben wie die BNCs.
My Webinterface
Preis: auf Anfrage
Homepage: my-webinterface.com
Beschreibung
My-Webinterface richtet sich an erster Linie an Hoster, Internet und Service Provider, Shops und Unternehmen die ein automatisierten Internetauftritt suchen, das sich an Ihre Bedürfnissen anpasst. Für Clans Communitys oder Webradios wird eine abgespeckte private Version angeboten. In dieser Version sind Module wie Kundenverwaltung, Ticketsystem, Ressellerbereich, Emails, Templates, Designeinstellungen und viele andere Funktionen, die für gewerbetreibende sehr wichtig sind nicht enthalten.
RCON benutzen
Manche Gameserver haben eine RCON Unterstützung, d.h. man kann den Server über ein Remote Tool steuern. Dazu müssen bestimmte RCON Befehle an den Server geschickt werden, die Befehle und der Funktionsumfang der RCON ist von Spiel zu Spiel verschieden. Der Vorteil von RCON ist das man auf dem Gameserver nichts extra installieren muss und von jedem beliebigen anderen Rechner auf dem das RCON Tool läuft den Gameserver steuern kann. RCON Tools findet man z.B. in HLSW oder in Server Monitoring Diensten wie unserem.Der Nachteil von RCON ist das die Möglichkeiten oft eingeschränkter wie bei anderen Webinterface Lösungen sind und nicht jedes Spiel RCON unterstützt.
