Alle Fragen zur Serverinstallation oder andere allgemeine Fragen zum Server können im Squad Hosting discord.
Wichtige Hinweise[]
NAT Loopback ist erforderlich, um im selben Netzwerk zu hosten und zu spielen.
Die Server werden im "Benutzerdefinierten Browser" angezeigt, es sei denn, sie sind lizenziert.
Vorraussetzungen[]
Windows[]
Visual C++ Redistributable for Visual Studio 2013 vc_redist.x64.exe
Visual C++ Redistributable for Visual Studio 2015 vc_redist.x64.exe
DirectX End-User Runtimes (June 2010)
Linux[]
GLIBC 2.17 oder neuer.
Vorbereitungen[]
Zunächst müssen wir SteamCMD installieren für unseren Host und bereiten unser SteamCMD-Skript vor.
Um das SteamCMD-Skript zu erstellen, erstelle eine Datei im Hauptverzeichnis deiner SteamCMD-Installation und füge folgenden Inhalt hinzu:
// -> Beginn der "update_squad.txt"
@ShutdownOnFailedCommand 1 // -> auf 0 gesetzt, wenn mehrere Server gleichzeitig aktualisiert werden
@NoPromptForPassword 1 // -> deaktiviert die Eingabeaufforderung für das Passwort bei der Ausführung
force_install_dir ../squad_server // -> erstellt einen Ordner mit dem Namen "squad_server" in SteamCMDs übergeordnetem Verzeichnis
login anonymous // -> meldet sich mit dem öffentlichen anonymen Steam-Account an
app_update 403240 validate // -> aktualisiert den Squad-Server und validiert die empfangenen Dateien
// -> Ende des Skripts
quit
Nun können wir mit den spezifischen Schritten für jedes System fortfahren.
Installation[]
Windows[]
1. Befolgen Sie die Schritte unter Vorbereitungen.
2. Öffnen Sie SteamCmd oder erstellen Sie eine Datei namens "start server.bat" mit folgendem Inhalt.
SET STEAMCMD=C:\steamcmd\steamcmd.exe
SET SQUADSERVER=C:\squad\SquadGame\Binaries\Win64\SquadGameServer.exe
SET UPDATESCRIPT=C:\steamcmd\update_squad.txt
start %STEAMCMD% +runscript %UPDATESCRIPT%
start %SQUADSERVER% Port=7787 QueryPort=27165 FIXEDMAXPLAYERS=80 beaconport=15000 RANDOM=NONE -log
exit
3. Führen Sie die .bat-Datei aus, um die Serverdateien zu installieren. Wenn die Installation abgeschlossen ist, wird der Server gestartet.
Ihr Server ist nun installiert, Sie müssen jedoch noch Ihr Netzwerk konfigurieren, damit sich Spieler über das Internet mit Ihrem Server verbinden können. Sie finden die Verbindungsports von Squad im Abschnitt unten.
Linux[]
Diese Anleitung setzt voraus, dass du eine Linux-Distribution mit 64-bit Architektur besitzt.
Abgesehen davon benötigt diese Anleitung keinerlei Linux-Erfahrung und ist komplett "für Dummies" gedacht.
Alles was in diesem Guide auf ein '$' folgt ist ein Command und muss in einem Terminal ausgeführt werden.
PROFITIPP: Das Linux-Terminal vervollständigt sich automatisch mit TAB. Wenn Sie also eine Datei oder einen Ordner mit dem Namen "testfolder" haben, können Sie "test" schreiben und die Tabulatortaste drücken und es wird automatisch in testfolder umgewandelt!
Um dich mit einen entfernten Server zu verbinden, empfiehlt es sich PUTTY. zu benutzen. Natürlich kann aber auch jedes andere Programm, was sich hierfür eignet genutzt werden.
In Ordnung, fangen wir an:
Installation des Servers:
1. Logge dich als root ein und installiere das Programm "Screen" und eine Bibliothek die für das Programm SteamCMD benötigt wird.
Debian/Ubuntu: $ apt-get install screen lib32gcc1 CentOS: $ yum -y install screen glibc libstdc++ glibc.i686 libstdc++.i686
2. Erstelle einen Benutzer über den die Squad-Server laufen soll.
$adduser username
Geben Sie ein Passwort für den Benutzer Ihrer Wahl ein. Möglicherweise müssen Sie das Passwort mit "sudo passwd" username ändern. Wenn Sie aufgefordert werden, Ihren vollständigen Namen, Ihre Zimmernummer, Ihre Telefonnummer bei der Arbeit, Ihre Telefonnummer zu Hause und andere Daten einzugeben, drücken Sie einfach die Eingabetaste. Wenn Sie gefragt werden, ob die Informationen korrekt sind, schreiben Sie Y und drücken Sie Enter.
3. Melden Sie sich bei dem neuen Benutzerkonto an: ssh username@localhost und dann das von Ihnen gewählte Passwort.
4. Erstelle ein Verzeichnis mit z.B dem Namen SquadServer
$ mkdir SquadGameServer
5. Öffne den Ordner
$ cd SquadGameServer
6. Lade SteamCMD herunter und entpacke es mit einem der folgenden Befehle
$ wget -q -O - https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xzv $ curl -so - https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xzv
HINWEIS: Einige haben sich darüber beschwert, dass sie einen nicht vertrauenswürdigen/Lizenzfehler erhalten. Wenn das der Fall ist, versuchen Sie dies:
$ wget -q -O - http://media.steampowered.com/installer/steamcmd_linux.tar.gz | tar xzv $ curl -so - http://media.steampowered.com/installer/steamcmd_linux.tar.gz | tar xzv
7. Erstellen Sie ein Skript für die Installation und das Skript der SteamCMD-Datei (update_squad.txt) der ersten Serverinstanz und starten Sie sie dann
$ echo "./steamcmd.sh +runscript ./update_squad.txt; cd server1; ./SquadGameServer.sh Port=7787 QueryPort=27165 FIXEDMAXPLAYERS=80 RANDOM=NONE" > startserver1.sh $vim update_squad.txt
Hier müssen Sie die Taste 'i' im Einfügemodus drücken und diesen Text einfügen:
login anonymous
force_install_dir server1
app_update 403240 validate
quit
Wenn Sie fertig sind, drücken Sie "ESC", um die Eingabe zu beenden, und geben Sie
:wq!
ein und drücken Sie 'Enter' zum Speichern und Beenden
8. Das Skript ausführbar machen
$ chmod +x startserver1.sh
9. Erstellen Sie einen Bildschirm, in dem Ihr Server läuft
$ screen -dmS server1 $ screen -r server1
10. Starten Sie Ihren Server
$ ./startserver1.sh
Mithilfe von Screen läuft der Server auch weiter, selbst wenn du deine SSH-Verbindung trennst.
Bearbeiten von Config-Datein:
1. Melden Sie sich mit dem Benutzerkonto an, unter dem der Server läuft, und öffnen Sie den Ordner Serverconfig, der sich in unserem Beispiel in SSquadGameServer/server1/SquadGame/ServerConfig befindet.
$ cd SquadGameServer/server1/SquadGame/ServerConfig
2. Öffnen Sie die Datei, die Sie bearbeiten möchten, mit einem Texteditor (in diesem Fall nano)
$ nano Server.cfg
Bearbeiten Sie die Datei. Wenn Sie fertig sind, speichern Sie die Datei. Wenn Sie nano verwenden, speichern Sie die Datei mit Strg+o und dann enter. Beenden Sie nano mit Strg+x. DEN SERVER STOPPEN: 1. SSH zu Ihrem Linux-Server als der Benutzer, der den Squadgameserver ausführt. (Nicht root) Im Terminal öffnen Sie den Bildschirm für die besagte Serverinstanz, im obigen Beispiel server1 genannt.
$ screen -r server1
2. Sie sehen nun das SquadGameServer Log-Fenster, drücken Sie CTRL+C und der Server wird heruntergefahren. Danach können Sie ihn mit Ihrem Startbefehl wieder starten. --
Docker[]
Wenn auf deinem Server Docker läufst und können Sie die obigen Schritte überspringen und einfach verwenden:
docker run -d --net=host --name=squad-dedicated cm2network/squad
Der Container updatet das Spiel bei jedem Start, somit musst du den Server bei einem neuen Versions-Release nur neustarten.
Die Config findest du im folgenden Pfad: /home/steam/squad-dedicated/Squad/ServerConfig/
- Docker Volumes
Wenn der Docker Container beschädigt/zerstört wird, ist der gesamte Dateibaum betroffen. Anstelle Dateien direkt im Docker Container zu bearbeiten sollten lieber Docker Volumes verwendet werden. Dies hat den Vorteil, dass die Daten besser gegen Korruption geschützt sind. Wenn Sie den Container entfernen und aus dem Image einen neuen erstellen, müssen Sie keine Konfigurationsdateien ändern.
docker run -d --net=host --volume=/<Your local directory>:/home/steam/squad-dedicated --name=squad-dedicated cm2network/squad
- Docker Bind-mounts
Docker Bind-Mounts bieten ähnliche Vorteile wie Volumes, nutzen aber das Host-Dateisystem anstelle von virtualisierten Volumes und ermöglichen so einen einfachen Zugriff auf die Dateien.
- Mehrere Instanzen
Wenn Sie eine weitere Instanz starten wollen, können Sie die Umgebungsvariablen erhöhen, indem Sie -e (--env):
docker run -d --net=host -e PORT=7788 -e QUERYPORT=27166 -e RCONPORT=21115 --name=squad-dedicated2 cm2network/squad
Vergessen Sie nicht, die Rcon.cfg mit dem neuen Port zu aktualisieren (die Standardeinstellung ist 21114).
Die zugehörige Docker Hub-Seite finden Sie hier: https://hub.docker.com/r/cm2network/squad/
Docker (Compose)[]
Dieser Abschnitt ist für fortgeschrittene Systemadministratoren gedacht, die wissen, wie man docker compose. Nachstehend finden Sie ein Beispiel für eine Kompositionsdatei.
version: "3"
volumes:
squad_data:
services:
squad-event:
image: cm2network/squad
stdin_open: true
tty: true
restart: always
volumes:
- squad_data:/home/steam/squad-dedicated/
environment:
- PORT=7787
- beaconport=15000
- QUERYPORT=27165
- RCONPORT=21114
- FIXEDMAXPLAYERS=100
ports:
- 7787:7787/tcp
- 7788:7788/tcp
- 15000:15000/tcp
- 27165:27165/tcp
- 27166:27166/tcp
- 21114:21114/tcp
- 7787:7787/udp
- 7788:7788/udp
- 15000:15000/udp
- 27165:27165/udp
- 27166:27166/udp
- 21114:21114/udp
Mehrere Instanzen[]
LINUX[]
Beim erstellen von mehreren instanzen sind folgende Dinge zu beachten:
- Dupliziere das Verzeichnis und benenne es um.
- Dannach editiere die config files und setze in der Rcon.cfg einen Port mit mindestens 10 Ports abstand zur letzten Instanz.
Beispiel:
Server1 Rcon Port: 21114
Server2 Rcon Port: 21124
- Denk daran den Verbindungsport im start.sh Skript anzupassen um weitere Probleme zu vermeiden.
BETA PARAMETER[]
LinuX[]
./steamcmd.sh +force_install_dir server1 +login anonymous +app_update 403240 -beta NAMEOFTHEBETA -betapassword PASSWORD validate +quit
Windows[]
SET STEAMCMD="C:\steamcmd\steamcmd.exe" %STEAMCMD% +force_install_dir "C:\servers\squad_server" +login anonymous +app_update 403240 -beta NAMEOFTHEBETA -betapassword PASSWORD validate +quit
Zu öffnende Ports[]
Die Portweiterleitung ist je nach Router- und ISP-Hersteller unterschiedlich, erfordert aber in der Regel die Eingabe einer erweiterten Registerkarte in den Router-Einstellungen.
Müssen in der Windows-Firewall und im Router geöffnet sein (nur eingehend)
Game port = UDP 7787 + 7788
Beacon Port = UDP and TCP 15000
Steam query port = UDP and TCP 27165
Steam query port+1 = UDP and TCP 27166
RCON Port = UDP and TCP 21114
Ephemeral Ports** = UDP 30000+
Windows-Firewall-Skript (als BAT-Datei speichern, als Administrator ausführen, Ports je nach Installation nach Bedarf ändern, einschließlich der Standard-Ports)
<<netsh advfirewall firewall add rule Name= "Squad Game Port 7787 TCP" dir=in protocol=tcp localport=7787 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7787 UDP" dir=in protocol=udp localport=7787 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7788 TCP" dir=in protocol=tcp localport=7788 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7788 UDP" dir=in protocol=udp localport=7788 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port27165 TCP" dir=in protocol=tcp localport=27165 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27165 UDP" dir=in protocol=udp localport=27165 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27166 TCP" dir=in protocol=tcp localport=27166 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27166 UDP" dir=in protocol=udp localport=27166 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Rcon 21114 TCP" dir=in protocol=tcp localport=21114 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Rcon 21114 UDP" dir=in protocol=udp localport=21114 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7787 TCP" dir=out protocol=tcp localport=7787 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7787 UDP" dir=out protocol=udp localport=7787 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7788 TCP" dir=out protocol=tcp localport=7788 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Game Port 7788 UDP" dir=out protocol=udp localport=7788 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port27165 TCP" dir=out protocol=tcp localport=27165 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27165 UDP" dir=out protocol=udp localport=27165 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27166 TCP" dir=out protocol=tcp localport=27166 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Steam Query Port 27166 UDP" dir=out protocol=udp localport=27166 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Rcon 21114 TCP" dir=out protocol=tcp localport=21114 action=allow profile=any netsh advfirewall firewall add rule Name= "Squad Rcon 21114 UDP" dir=out protocol=udp localport=21114 action=allow profile=any
**Squad verwendet auch Ephemeral Ports für Verbindungen zwischen sich selbst und einzelnen Clients, nachdem die erste Verbindung über die oben genannten Ports erfolgt ist. Dies kann mit netstat beobachtet werden, nachdem sich ein Client erfolgreich verbunden hat und im Spiel ist. Je nach Ihrem Provider müssen Sie möglicherweise alle UDP-Ports über 30000 in Ihrer Firewall zulassen.
Tipps[]
Stelle fest dass der Steam Client geschlossen ist. Andernfalls wird der Squad Server nicht starten. Für weitere Fragen rund um das Hosten von Servern kannst du uns auf unseren Discord Server besuchen: http://discord.me/squadhosting
(Windows) SquadServer.exe Dateien in der Firewall freizuschalten kann die viele Kopfschmerzen ersparen.
Sollte auf dem selben Gerät gleichzeitig ein Server und ein Client betrieben werden, ist es wichtig dass der Server gestartet wird, bevor der Steam Client geöffnet wird und das Spiel gestartet wird.
AppID - 403240[]
Daten (Instanzierte Hosts beginnen hier)[]
Die Konfigurationsdateien befinden sich in C:\servers\squad_server\SquadGame\ServerConfig\
Die folgenden Konfigurationsdateien befinden sich in diesem Verzeichnis
Admins.cfg Bans.cfg CustomOptions.cfg ExcludedFactions.cfg ExcludedFactionSetups.cfg ExcludedLayers.cfg ExcludedLevels.cfg LayerRotation.cfg LevelRotation.cfg License.cfg Motd.cfg (optional) Rcon.cfg RemoteAdminListHosts.cfg RemoteBanListHosts.cfg Server.cfg ServerMessages.cfg VoteConfig.cfg
Server-Konfiguration[]
Nachdem wir den Server eingerichtet haben, müssen wir ihn konfigurieren.
Dazu gehen wir auf die nächste Seite: Server Konfiguration
|