Die Anweisungen sind für Ubuntu 14.04 32 Bit konzipiert, sollten jedoch auf allen Versionen von Ubuntu funktionieren. In diesem Tutorial erfahren Sie, wie Sie einen Garry's Mod-Spieleserver erstellen.
Melden Sie sich über das Terminal als root an.
Erstens müssen wir sicherstellen, dass die Firewall sicher ist, um die Wahrscheinlichkeit eines Sicherheitsproblems zu verringern. Angenommen, dieser Server ist für Garrys Mod reserviert, ist es sicher, absolut alle eingehenden Ports (einschließlich ICMP) außer den für Garrys Mod erforderlichen zu blockieren. ICMP ist für den Betrieb des Servers nicht erforderlich, und das vollständige Blockieren hat keine negativen Auswirkungen auf Garrys Mod. Es hilft jedoch, die Angriffsmethoden eines DDoS-Angriffs zu reduzieren.
Um alle nicht erforderlichen Ports zu blockieren, sind die folgenden Befehle erforderlich:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
Dies weist die Firewall grundsätzlich an, jedes empfangene ICMP-Paket zu ignorieren und absolut keine Maßnahmen zu ergreifen. Dies bedeutet auch, dass jemand, der versucht, Ihren Server zu pingen, keine Antwort erhält. Die zweite Zeile weist die Firewall an, alle ausgehenden ICMP-Pakete zu blockieren. Dies ist viel weniger wichtig, aber nur das Doppelte stellt sicher, dass keine ICMP-Kommunikation stattfindet.
Als nächstes müssen wir alle für Garry's Mod (27005 - 27015 einschließlich) erforderlichen Ports mit diesen Befehlen speziell zulassen:
iptables -I INPUT -p tcp --dport 27005:27015 -j ACCEPT
iptables -I INPUT -p udp --dport 27005:27015 -j ACCEPT
Dies besagt, dass alles an den Ports zwischen 27005 und 27015 zulässig ist. Der erste Befehl ist für TCP und der zweite für UDP. Der zweite Befehl (UDP) ist hier der wichtigste, da fast die gesamte Kommunikation zwischen dem Server und den Spielern über UDP erfolgt. Einige Leute haben Probleme mit blockiertem TCP gemeldet, deshalb sollten wir es zulassen.
Jetzt möchten wir die Firewall anweisen, Verbindungen zuzulassen, die wir selbst geöffnet haben (oder die Software auf dem Server hat). Das heißt, wenn wir einen Server kontaktieren, wird eine Antwort angezeigt. Geben Sie diesen Befehl ein, um dies zuzulassen:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Wenn Sie SSH zur Steuerung Ihres Servers verwenden (anstatt die Konsole in Ihrem Konto zu verwenden), ist dieser Befehl erforderlich, damit SSH am Standardport arbeiten kann. Wenn Sie kein SSH verwenden, führen Sie Folgendes nicht aus:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
Und schließlich der letzte Befehl zum Einrichten der Firewall. Dieser Befehl blockiert alle eingehenden Verbindungen außer den von uns zugelassenen:
iptables -A INPUT -j REJECT
Diese Einstellungen werden nur angewendet, bis wir unseren Server neu starten. Dies bedeutet, dass wir ihn bei jedem Neustart des Computers manuell neu konfigurieren müssen. Dies ist nicht akzeptabel, daher muss ein Paket installiert werden, das die Firewall-Regeln in einer Datei speichert und sie dann bei jedem Start des Servers lädt. Geben Sie Folgendes ein, um dieses Paket zu installieren:
apt-get install iptables-persistent
Folgen Sie den Anweisungen auf dem Bildschirm. Wenn Sie gefragt werden, ob Sie die aktuellen Firewall-Regeln speichern möchten, drücken Sie Ja.
Jetzt ist unsere Firewall eingerichtet und es sollte nie mehr eine Konfiguration in Bezug auf die Firewall erforderlich sein.
Wenn Sie SSH verwenden, sollten Sie ein Paket installieren, das die Verbindung der Benutzer zum Server automatisch blockiert, wenn sie weiterhin das falsche SSH-Kennwort versuchen. Dies ist sehr nützlich, um zu verhindern, dass Ihr SSH-Passwort brutal erzwungen wird. “ Verwenden Sie den folgenden Befehl, um das Paket zu installieren:
apt-get install fail2ban
Fail2ban ist bereits so konfiguriert, dass der Zugriff von Personen nach nur wenigen fehlgeschlagenen Kennwortversuchen blockiert wird, sodass wir ihn nicht konfigurieren müssen. Jetzt ist Ihr Server wesentlich sicherer als zu Beginn.
Als nächstes müssen wir "screen" installieren. Auf diese Weise können Sie Befehle kontinuierlich ausführen, auch wenn Sie sich vom Server abmelden. Dies ist wichtig, damit Ihr Garry's Mod-Server über einen längeren Zeitraum ununterbrochen läuft, insbesondere wenn Sie den Server mit SSH steuern. Geben Sie Folgendes ein, um "screen" zu installieren:
apt-get install screen
Führen Sie nach Abschluss der Installation den folgenden Befehl aus:
screen
Ein Haftungsausschluss wird auf dem Bildschirm angezeigt. Drücken Sie einfach die Eingabetaste, um fortzufahren. Tippen screenin die Konsole startet Bildschirm und ermöglicht die Arbeit innerhalb einer virtuellen Konsole, wenn Sie von SSH trennen oder abmelden, diese virtuelle Konsole wird auch weiterhin mit Ihren Befehl in Seite davon (Garry Mod - Server läuft als Linux - Befehl ausgeführt werden soll, so Hier müssen wir den Bildschirm verwenden.
Bevor wir Steam, Garry's Mod und die erforderlichen Dateien installieren, benötigen wir ein spezielles Konto. Ich schlage vor, es anzurufen steam. Geben Sie Folgendes ein, um ein neues Konto zu erstellen:
adduser steam
Sie müssen ein anderes Passwort als Ihr Root-Passwort verwenden, um alles sicher zu halten. Sie werden dieses Passwort sehr selten verwenden. Ihnen werden einige Fragen zum Konto gestellt, z. B. der vollständige Name, die Telefonnummer usw. Lassen Sie alle diese Fragen leer.
Jetzt möchten wir beim "Steam" -Konto angemeldet sein, während wir alle erforderlichen Dateien herunterladen. Dies bedeutet, dass "Steam" den gesamten Besitz dieser Dateien erhält und die Linux-Berechtigungen ohne Konfiguration korrekt festgelegt werden. Es ist viel schwieriger, die richtigen Berechtigungen zu erhalten, wenn Sie Steam als Root installieren und dann versuchen, diese Berechtigungen zu ändern. Geben Sie Folgendes ein, um sich als Steam anzumelden:
su steam
Wir benötigen ein Verzeichnis (Ordner), um die Steam-Software zu speichern. Verwenden Sie diesen Befehl, um das Verzeichnis zu erstellen:
mkdir ~/Steam
Jetzt wollen wir uns in diesem Verzeichnis befinden. Geben Sie Folgendes ein, um es zu Ihrem aktuellen Arbeitsverzeichnis zu machen:
cd ~/Steam
Wir müssen jetzt die Steam-Software herunterladen, indem wir Folgendes eingeben:
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
Jetzt müssen wir es dekomprimieren und installieren, mit folgendem:
tar -xvzf steamcmd_linux.tar.gz
Wenn Sie ein 64-Bit-Betriebssystem verwenden, müssen Sie 32-Bit-Bibliotheken installieren, um Steam ausführen zu können.
apt-get install lib32stdc++6
apt-get install lib32gcc1
Führen Sie den folgenden Befehl aus, um Steam zu öffnen, und weisen Sie es an, sich als "anonym" anzumelden (ein Steam-Konto, mit dem jeder kostenlose Software von seinen Servern herunterladen kann), und weisen Sie es an, den Garry's Mod-Server im Ordner gmodds (gespeichert in) zu installieren das Home-Verzeichnis des Steam-Kontos).
./steamcmd.sh +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit
Wir können erwarten, dass dieser Befehl lange anhält, aber wir können den Fortschritt beobachten. Es ist möglich, dass dieser Befehl fehlschlägt. Die Steam-Server haben häufig kleinere Probleme, die dazu führen, dass ein Download fehlschlägt (oder überhaupt nicht startet). In diesem Fall starten Sie es einfach erneut.
Sobald dieser Befehl abgeschlossen ist, verfügen wir über eine Arbeitskopie des Mod-Servers von Garry. Für die meisten Mod-Inhalte von Garry muss jedoch CounterStrike: Source (kurz CS: S) installiert sein. Führen Sie den folgenden Befehl aus, um CS: S zu installieren:
./steamcmd.sh +login anonymous +force_install_dir ../cssds +app_update 232330 validate +quit
Dieser Befehl wird auch eine Weile dauern.
Sobald Garrys Mod und CounterStrike installiert sind, müssen sie mithilfe einer Konfigurationsdatei miteinander verknüpft werden. Dazu müssen wir die folgende Datei mit diesem Befehl bearbeiten:
nano /home/steam/gmodds/garrysmod/cfg/mount.cfg
In der Zeile mit "cstrike" müssen wir die beiden Schrägstriche (//) am Zeilenanfang entfernen und dann den gesamten Pfadteil der Zeile ersetzen (beginnt mit C:/). Dieser Teil der Linie muss ersetzt werden durch:
/home/steam/cssds/cstrike
Die gesamte Zeile sollte nun folgendermaßen aussehen:
"cstrike" "/home/steam/cssds/cstrike"
Am Anfang sollte vor dem Wort cstrike ein Tabulator stehen, und die Zeile sollte nirgendwo einen doppelten Schrägstrich (//) enthalten. Sobald Sie fertig sind, können Sie diese Datei mit Strg + X und dann Y speichern. Dies teilt Garrys Mod mit, wo sich CounterStrike befindet, damit sie verwendet werden kann.
Jetzt haben wir einen einfachen Garry's Mod Server installiert. Stellen Sie zum Ausführen sicher, dass wir uns mit diesem Befehl im richtigen Verzeichnis befinden:
cd /home/steam/gmodds/
Then run the following command:
./srcds_run -game garrysmod +gamemode terrortown +maxplayers 16 +map cs_office
Once it has started up, you should be able to join by typing the following into the Garry’s Mod Console (NOT the server terminal):
connect IP_ADDRESS
Replace IP_ADDRESS with the IP address of the server. If you don’t know your IP address, typing the following into the server terminal will tell you what it is:
url -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
If you want to change the number of players allowed on your server, stop the server by doing Ctrl+C and do the start command again, but replace maxplayers 16 with maxplayers x (change x to the number of players you want). To change the default map (the first map that is played), replace cs_office with the name of the map you want. And finally, to change the gamemode, replace terrortown with the gamemode you want. Garry’s Mod only comes with terrortown (Short for Trouble in Terrorist Town) and Sandbox by default.
To further configure the server, there is a configuration file which can be edited. Each line in this file is called a configuration variable (cVar). Run this command to edit the file:
nano /home/steam/gmodds/garrysmod/cfg/server.cfg
The following values can be changed, I'll explain what each one does shortly:
hostname "server name"
sv_downloadurl "http://example.com/files/"
sv_allowupload 1
sv_password "secret password"
sv_timeout 60
Durch Ändern des Hostnamenwerts können Sie den Namen Ihres Servers ändern. Es wird "Garry's Mod" genannt, sofern Sie es nicht ändern. Dies nennt Ihren Server beispielsweise "Mein cooler Server":
hostname "My cool server"
Sie können der Datei beliebig viele Variablen hinzufügen. Jede neue Variable benötigt eine neue Zeile.
Mit der sv_downloadurlVariablen können Sie auswählen, von wo benutzerdefinierte Serverinhalte heruntergeladen werden sollen. Zu den benutzerdefinierten Inhalten gehören Garrys Mod-Maps, Sounds, Addons und Texturen. Standardmäßig erlaubt Garry's Mod nur das extrem langsame Herunterladen von Daten von Ihrem Server. Aus diesem Grund müssen wir eine URL angeben, über die die Daten mit voller Geschwindigkeit heruntergeladen werden können. Die von Ihnen angegebene URL muss ein Klon Ihres "garrysmod" -Ordners sein, damit alle Dateien verfügbar sind.
sv_allowuploadcan hat zwei Möglichkeiten, 0 oder 1, dies gibt an, ob Sie Personen erlauben möchten, Inhalte auf den Server hochzuladen. Dies wird nur für Sprays verwendet (Grafiken, die die Spieler auf Wände sprühen können) und kann ein Sicherheitsproblem verursachen. Sprays werden oft angefordert, daher macht die Verwendung von "1" die Spieler glücklich, aber "0" hält Ihren Server sicherer.
sv passwordMit dieser Option können Sie ein Kennwort für Ihren Server auswählen. Wenn jemand beitritt, wird er nach diesem Passwort gefragt und kann nicht beitreten, wenn er es nicht hat.
sv_timeoutist die Zeit in Sekunden, die der Server warten soll, bevor er jemanden tritt, der seine Verbindung verloren hat. Der Server wartet automatisch darauf, dass sie ihre Verbindung wieder herstellen, aber während dies geschieht, scheint der Player still zu stehen. Es ist am besten, dies bei 60 oder weniger Sekunden zu haben. Sobald Sie diese Einstellungen geändert haben, ist ein Neustart des Servers erforderlich.
Addons können auch installiert werden, um dem Spiel zusätzliche Funktionen zu verleihen. Einige Addons müssen auf eine bestimmte Weise installiert werden, daher sollten Sie immer die Anweisungen auf ihrer Website lesen. Auf diese Weise würden Sie jedoch die meisten Addons herunterladen und installieren:
cd /home/steam/gmodds/garrysmod/addons/
wget http://example.com/addon.zip
unzip addon.zip
Ersetzen Sie http://example.com/addon.zipdurch die URL, an der sich das Addon befindet. Sie müssen auch addon.zipden Namen der Zip-Datei des Addons ändern . Nachdem das Addon heruntergeladen und entpackt wurde, können Sie die Zip-Datei löschen, um Speicherplatz zu sparen.
rm addon.zip
Ersetzen Sie erneut addon.zipdurch den tatsächlichen Namen der Zip-Datei.
Wenn der Server gerade ausgeführt wird, müssen Sie ihn mit Strg + C neu starten und den Startbefehl erneut ausgeben. Sie können den Aufwärtspfeil auf Ihrer Tastatur drücken, um automatisch den zuletzt ausgeführten Befehl einzufügen.
Wenn Sie Ihre SSH-Verbindung verlieren, müssen Sie beim erneuten Herstellen der Verbindung die Option ausgeben screen -r command, mit der Sie von Ihrem letzten Standort (der Spielekonsole) aus fortfahren können.