Counter-Strike 2 bleibt auch im Sommer 2026 eines der meistgespielten Spiele auf Steam: Laut activeplayer.io erreichte der Shooter zuletzt einen 24-Stunden-Höchststand von 1.213.496 gleichzeitigen Spielern, bei einem 30-Tage-Durchschnitt von 926.785 Spielern und einem historischen Höchstwert von 1.818.368 Spielern im März 2025. Millionen dieser Spielstunden laufen nicht über Valves offizielles Matchmaking, sondern auf privaten, selbst betriebenen Servern – von kleinen Freundesrunden über deutsche Vereins-Ligen bis zu Turnier-Infrastruktur für internationale Events.

Ein eigener CS2 Server lässt sich komplett kostenlos über SteamCMD einrichten und gibt Ihnen die volle Kontrolle über Karten, Regeln, Plugins und Zugriffsrechte. Dieses Tutorial führt in 12 Schritten durch die komplette Einrichtung unter Windows und Linux: von SteamCMD über den Game Server Login Token (GSLT) und die server.cfg bis zu Plugins, Wettkampf-Modus, Autostart, Containerisierung und Serverabsicherung. Alle Angaben basieren auf aktuellen, mehrfach gegengeprüften Quellen (Valve Developer Community, Steam-Dokumentation, GitHub-Projektseiten) – Stand 28. Juli 2026.

Im Unterschied zum offiziellen Matchmaking entscheiden Sie auf einem selbst betriebenen Server über jedes Detail selbst: welche Karten rotieren, welche Cheat- und Verhaltensregeln gelten, wer Adminrechte bekommt und ob überhaupt fremde Spieler beitreten dürfen. Gerade für deutsche Vereine, Schul- und Universitäts-Ligen sowie LAN-Veranstalter ist das ein entscheidender Vorteil gegenüber gemieteten Drittanbieter-Slots, bei denen Konfigurationsmöglichkeiten meist eingeschränkt sind.

Voraussetzungen: Was Sie für die Einrichtung brauchen

Bevor Sie loslegen, sollten Hardware und Netzwerk die folgenden Mindestanforderungen erfüllen. Die Werte stammen aus den offiziellen Empfehlungen von Hosting-Anbietern (IONOS, ZAP-Hosting) und decken sich mit den Erfahrungswerten aus der Community:

KomponenteMinimumEmpfohlen (aktive Community)
CPU3,0 GHz Quad-Core3–4 dedizierte Kerne pro Instanz
RAM6 GB6–8 GB pro Instanz
Speicherplatz50 GB frei80 GB+ NVMe-SSD
BetriebssystemWindows 10/11 oder LinuxLinux (Ubuntu 22.04+/Debian) für Dauerbetrieb
NetzwerkStabile Verbindung, Ports 27015/27016 offenSymmetrische Anbindung, niedrige Latenz

Wichtig für den Heimgebrauch: Eine Instanz auf dem eigenen Windows-Rechner läuft nur, solange der PC eingeschaltet ist, und die Upload-Bandbreite vieler deutscher Internetanschlüsse (insbesondere DSL/VDSL mit asymmetrischer Anbindung) wird bei mehr als 4–6 gleichzeitigen Spielern schnell zum Flaschenhals. Ein einzelner Spieler in einem 64-Tick-Match verursacht grob 15–20 KB/s Upload pro Client, was bei zehn Spielern bereits 150–200 KB/s dauerhaft belegt – für viele Anschlüsse mit begrenztem Upstream spürbar. Für einen dauerhaft erreichbaren Server empfiehlt sich daher ein Root-Server oder VPS bei einem deutschen oder europäischen Hoster, siehe dazu den Kostenvergleich weiter unten.

Windows oder Linux? Für einzelne Testläufe oder Freundesrunden reicht ein vorhandener Windows-PC völlig aus. Wer dauerhaft eine Instanz betreiben will – etwa für eine Community oder einen Verein –, ist mit Linux besser bedient: geringerer RAM- und CPU-Overhead im Leerlauf, native Unterstützung für Autostart-Mechanismen wie systemd (Schritt weiter unten) und in der Regel günstigere Hosting-Tarife, da die meisten Anbieter Linux-Images bevorzugt anbieten.

Auch die Wahl des Rechenzentrum-Standorts beeinflusst die spielbare Latenz spürbar: Für eine überwiegend deutsche oder DACH-Spielerschaft liefert ein Standort in Frankfurt, Nürnberg oder Wien in der Regel einstellige bis niedrige zweistellige Millisekunden-Pings, während ein Server in London, Paris oder gar außerhalb Europas bereits durch die reine Signallaufzeit spürbar höhere Latenzen verursacht. Prüfen Sie bei der Anbieterwahl daher gezielt den physischen Standort des Rechenzentrums, nicht nur den Firmensitz des Hosters.

CS2 Dedicated Server im Überblick: Die wichtigsten Fakten

Bevor es an die Installation geht, hier die technischen Eckdaten, die jeder Betreiber kennen sollte:

MerkmalWert
Steam App ID (Client & Server)730 – identisch für beide, anders als bei CS:GO mit separater Server-Branch 740
Spiel-EngineSource 2
Tickratefest 64 Hz, kompensiert durch das Subtick-System
Primärport27015 (TCP + UDP)
Sekundärport (SourceTV/GOTV)27016 (TCP + UDP)
Installationsgrößeca. 60 GB
Lizenzmodell Serverkostenlos über SteamCMD, kein Kauf nötig
Community-Rekord Concurrent-Spieler1.818.368 (activeplayer.io, März 2025)

Ein häufiges Missverständnis, das aus der CS:GO-Ära stammt: Damals gab es für den Dedicated Server eine eigene App-ID (740) getrennt vom Client (730). Valve hat das für CS2 vereinheitlicht – Client und Server teilen sich dieselbe App-ID 730. Wer in älteren Foren-Threads oder KI-Suchzusammenfassungen noch auf „740″ für CS2 stößt, bezieht sich meist unbewusst auf CS:GO-Anleitungen. Das haben mehrere unabhängige Quellen (ZAP-Hosting, IONOS Deutschland, TroubleChute Hub) übereinstimmend bestätigt.

Technisch basiert CS2 vollständig auf Valves Source-2-Engine, mit der auch Dota 2 und Half-Life: Alyx laufen. Die Umstellung von CS:GO (Source 1) brachte 2023 unter anderem überarbeitete Beleuchtung, physikbasierte Rauch-Granaten mit echter Volumenberechnung und das bereits erwähnte Subtick-System mit sich – aber auch einen kompletten Bruch bei der Plugin-Kompatibilität, der bis heute für Verwirrung sorgt (siehe Schritt 10).

Schritt 1: Firewall und Router vorbereiten

Bevor Sie Software installieren, öffnen Sie die benötigten Ports in Router und Firewall. Ohne Port-Freigabe bleibt die Instanz für andere Spieler unsichtbar, selbst wenn sie lokal einwandfrei läuft – der mit Abstand häufigste Anfängerfehler.

PortProtokollZweck
27015TCP + UDPPrimärer Spielport, RCON
27016TCP + UDPSekundärport / SourceTV (GOTV)
27020UDP (optional)Zusätzlicher Puffer, von manchen Hostern empfohlen

Bei einer FritzBox öffnen Sie die Ports über Internet → Freigaben → Portfreigaben → Gerät für Freigaben hinzufügen und tragen dort die IP-Adresse Ihres Servers sowie die Ports 27015 und 27016 für TCP und UDP ein. Läuft Ihr Anschluss hinter Telekom- oder Vodafone-DS-Lite/CGNAT (häufig bei reinen Kabel- oder Mobilfunk-Tarifen), funktioniert klassisches Port-Forwarding nicht – hier hilft nur ein IPv4-Zusatztarif oder ein Root-Server mit echter öffentlicher IP-Adresse.

Unter Linux mit UFW öffnen Sie die Ports so:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27016/tcp
sudo ufw allow 27016/udp
sudo ufw reload
sudo ufw status

Testen Sie die Portfreigabe idealerweise von einem Gerät außerhalb Ihres Heimnetzwerks (etwa über mobile Daten), bevor Sie mit der eigentlichen Installation beginnen. So sparen Sie sich später eine langwierige Fehlersuche zwischen Netzwerk- und Softwareproblemen. Ein einfacher Online-Port-Checker zeigt bereits vor der Softwareinstallation, ob die Weiterleitung grundsätzlich funktioniert – wichtig ist dabei, den Test für UDP separat durchzuführen, da viele kostenlose Tools standardmäßig nur TCP prüfen und eine funktionierende UDP-Weiterleitung fälschlich als Fehler melden können.

Schritt 2: SteamCMD installieren

SteamCMD ist Valves offizielles Kommandozeilen-Tool zum Herunterladen von Server-Dateien und die Basis jeder Installation – egal ob Windows oder Linux.

Unter Linux (Ubuntu/Debian): SteamCMD benötigt zwingend die 32-Bit-Kompatibilitätsbibliotheken, auch auf einem reinen 64-Bit-System – ein Schritt, den viele Kurzanleitungen weglassen und der dann zu kryptischen „error while loading shared libraries”-Meldungen führt:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 lib32stdc++6 -y
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh

Unter Windows: Laden Sie steamcmd.zip von der offiziellen Valve-Seite herunter, entpacken Sie das Archiv nach C:\steamcmd und starten Sie steamcmd.exe per Doppelklick. Beim ersten Start aktualisiert sich das Tool automatisch selbst und legt die benötigte Ordnerstruktur an. Windows Defender oder andere Antivirenprogramme markieren steamcmd.exe gelegentlich fälschlich als verdächtig (ein bekannter False-Positive) – fügen Sie den Ordner bei Bedarf zu den Ausnahmen hinzu.

Schritt 3: Serverdateien herunterladen

Innerhalb von SteamCMD melden Sie sich anonym an und laden die Server-Dateien der App-ID 730 herunter. Ein eigener Steam-Account ist dafür nicht nötig:

login anonymous
force_install_dir ./cs2server
app_update 730 validate
quit

Der Download umfasst rund 60 GB und dauert je nach Verbindung 20–60 Minuten. Ein erfolgreicher Abschluss sieht in der Konsole so aus:

Success! App '730' fully installed.
[  0%] Checking for available updates...
[----] Verifying installation...
Update state (0x5) verifying install, progress: 100.00 (...)

Erscheint stattdessen „Failed to install app ‘730’”, prüfen Sie zuerst den freien Speicherplatz (mindestens 60 GB) und Schreibrechte im Zielordner. Führen Sie app_update 730 validate im Zweifel einfach erneut aus – SteamCMD setzt einen unterbrochenen Download automatisch fort, statt von vorn zu beginnen.

Schritt 4: Game Server Login Token (GSLT) erstellen

Damit die Instanz öffentlich in der Serverliste erscheint (reine LAN-Server ohne Internet-Sichtbarkeit können diesen Schritt überspringen), benötigen Sie einen Game Server Login Token. Diesen erstellen Sie unter steamcommunity.com/dev/managegameservers:

  • App-ID 730 eintragen
  • Ein Memo vergeben, z. B. „CS2-Server-Zuhause”
  • Token generieren und sicher speichern

Wichtig: Die Token-Generierung scheitert, wenn dem Steam-Account keine verifizierte Telefonnummer hinterlegt ist – ein häufiger Stolperstein bei Erstnutzern. Zudem verfällt ein GSLT-Token automatisch nach 5 Wochen Inaktivität; wird der Server länger nicht gestartet, muss ein neues Token erzeugt werden. Jede Instanz braucht ihr eigenes, eindeutiges Token – wer mehrere Server gleichzeitig betreibt (etwa für einen Liga-Spieltag), muss entsprechend mehrere GSLTs anlegen. Den Token übergeben Sie beim Start per Parameter:

+sv_setsteamaccount IHR_GSLT_TOKEN

Schritt 5: server.cfg konfigurieren

Die zentrale Konfigurationsdatei liegt unter game/csgo/cfg/server.cfg – CS2 verwendet intern weiterhin den historischen Ordnernamen „csgo”, was viele Einsteiger zunächst verwirrt. Existiert die Datei nicht, legen Sie sie als leere Textdatei mit diesem Namen an. Ein funktionierendes Grundgerüst:

hostname "Mein CS2 Server"
sv_password ""
rcon_password "IhrSicheresRconPasswort"
sv_lan 0
sv_region 3
sv_setsteamaccount IHR_GSLT_TOKEN
mp_maxrounds 24
mp_autoteambalance 1
mp_friendlyfire 0
sv_alltalk 0
tv_enable 1
tv_port 27020
mp_backup_round_file "backup_"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

Kurz erklärt: hostname legt den in der Serverliste angezeigten Namen fest. sv_password setzt ein optionales Beitritts-Passwort (leer = öffentlich zugänglich). sv_region 3 steht für Europa und sorgt dafür, dass europäische Spieler den Server bevorzugt angezeigt bekommen. mp_autoteambalance und mp_friendlyfire steuern grundlegende Fairness-Regeln, während exec banned_user.cfg und exec banned_ip.cfg beim Start automatisch gesperrte Spieler beziehungsweise IP-Adressen einlesen (die Dateien müssen dafür existieren, notfalls leer anlegen). Passen Sie rcon_password unbedingt auf ein starkes, individuelles Passwort an – dazu mehr im Abschnitt Sicherheit.

Schritt 6: Server starten

Unter Windows

Navigieren Sie zu cs2server\game\bin\win64\, erstellen Sie eine Verknüpfung zu cs2.exe und ergänzen Sie im Feld „Ziel” folgende Startparameter:

cs2.exe -dedicated -usercon +game_type 0 +game_mode 1 +map de_inferno +exec server.cfg

Unter Linux

cd cs2server/game/bin/linuxsteamrt64
./cs2 -dedicated -console -usercon +game_type 0 +game_mode 1 +map de_dust2 +exec server.cfg

Läuft alles korrekt, meldet die Konsole eine erfolgreiche Verbindung zu den Steam-Servern und lädt anschließend die angegebene Karte:

Connection to Steam servers successful.
   VAC secure mode is activated.
Adding master server 208.64.200.65:27011
Host activate: Loading (de_dust2)
Server is hibernating

„Server is hibernating” ist normal und kein Fehler – die Instanz geht in einen ressourcensparenden Ruhezustand, sobald kein Spieler verbunden ist, und „erwacht” automatisch, sobald sich jemand einloggt. Der CPU- und RAM-Verbrauch im Ruhezustand liegt nahe null, was das gleichzeitige Betreiben mehrerer Server auf einer Maschine erleichtert.

Schritt 7: Mit dem eigenen Server verbinden

Öffnen Sie in CS2 die Entwicklerkonsole (muss vorher unter Optionen → Spieloptionen aktiviert werden) und verbinden Sie sich mit:

connect IHRE_IP:27015

Für Spieler im selben lokalen Netzwerk reicht die private IP-Adresse (z. B. 192.168.x.x); für Verbindungen über das Internet benötigen Sie Ihre öffentliche IP-Adresse, die Sie z. B. über die FritzBox-Oberfläche einsehen. Bei dynamischen IP-Adressen (Standard bei den meisten deutschen Privatanschlüssen) empfiehlt sich ein kostenloser DynDNS-Dienst, damit sich die Adresse nicht bei jeder Zwangstrennung ändert und Spieler den Server erneut suchen müssen. Alternativ tragen Sie den Server unter „Favoriten” im CS2-Serverbrowser ein, sodass zukünftige Verbindungen nur noch einen Klick entfernt sind.

Schritt 8: Workshop-Maps einbinden

Neben den offiziellen Karten lassen sich auch Community-Maps aus dem Steam Workshop laden. Eine komplette Workshop-Collection binden Sie beim Start per Parameter ein:

+host_workshop_collection IHRE_COLLECTION_ID

Weitere nützliche Konsolenbefehle für die Workshop-Verwaltung:

ds_workshop_listmaps            // zeigt alle verfügbaren Workshop-Karten
ds_workshop_changelevel NAME    // wechselt zu einer bestimmten Workshop-Karte
sv_workshop_allow_other_maps 1  // erlaubt Spielern, Karten außerhalb der Collection vorzuschlagen

Die Collection selbst muss auf dem Steam Workshop öffentlich einsehbar sein – private oder unlisted Collections lädt der Server nicht. Für FastDL-Downloads (schnellere Übertragung großer Custom-Maps an Clients) richten viele Communitys zusätzlich einen separaten HTTP-Server für die Kartendateien ein, was den Ladevorgang gerade bei vielen gleichzeitig beitretenden Spielern spürbar beschleunigt.

Schritt 9: SourceTV und Demo-Aufzeichnung

SourceTV (GOTV) erlaubt Zuschauern, Matches live zu verfolgen, und ist zugleich die Basis für Demo-Aufzeichnungen – etwa zur Wettkampf-Absicherung bei Streitfällen oder für Anti-Cheat-Nachweise. Aktivieren Sie es in der server.cfg mit:

tv_enable 1
tv_port 27020
tv_autorecord 1
tv_delay 30
tv_maxclients 16

tv_delay 30 verzögert die Übertragung um 30 Sekunden – ein Standardwert bei Wettkampf-Matches, der Stream-Sniping (das Ausnutzen eines Live-Streams zur taktischen Vorhersage von Gegnerpositionen) verhindert. tv_autorecord 1 speichert jede Partie automatisch als .dem-Datei im Ordner game/csgo/ – nützlich, um im Nachhinein Regelverstöße, Verdachtsfälle oder einfach nur gute Runden erneut anzuschauen.

Schritt 10: Plugins installieren – Metamod:Source und CounterStrikeSharp

Ein wichtiger Fakt, den viele ältere und generische Anleitungen falsch darstellen: SourceMod unterstützt CS2 nicht. SourceMod bleibt ein reines Source-1-Projekt (CS:GO, TF2 usw.) ohne CS2-Build. Der moderne Plugin-Stack besteht stattdessen aus Metamod:Source (537 GitHub-Stars, Stand 28. Juli 2026) als Basis-Loader und CounterStrikeSharp (1.326 GitHub-Stars, zuletzt aktualisiert am 28. Juli 2026) als C#-Plugin-Host, der die klassische SourceMod-Rolle – Admin-Menüs, Rock-the-Vote, Bans, Statistiken – übernimmt.

Die Installationsreihenfolge ist entscheidend: zuerst Metamod:Source, dann CounterStrikeSharp, dann erst einzelne Plugins. In falscher Reihenfolge installiert, laden die Plugins nicht oder der Server stürzt beim Start ab.

# 1. Metamod:Source in game/csgo/addons/metamod entpacken
# 2. In gameinfo.gi den Metamod-Eintrag ergänzen (einmalig)
# 3. CounterStrikeSharp-Release in game/csgo/addons/counterstrikesharp entpacken
# 4. Server neu starten und in der Konsole prüfen:
meta list
css plugins list

Erscheinen Metamod und CounterStrikeSharp in der jeweiligen Liste, war die Installation erfolgreich. Ab hier lassen sich einzelne CounterStrikeSharp-Plugins – etwa für Admin-Verwaltung, Statistik-Tracking oder eigene Spielmodi – einfach in den Plugins-Unterordner entpacken; ein Neustart der Instanz reicht in der Regel aus, damit neue Plugins geladen werden. Halten Sie sowohl Metamod:Source als auch CounterStrikeSharp regelmäßig aktuell: Beide Projekte veröffentlichen nach größeren CS2-Updates häufig binnen weniger Tage kompatible Releases, während veraltete Plugin-Versionen nach einem Spiel-Update nicht selten kommentarlos den Dienst verweigern oder den Serverstart komplett blockieren.

Schritt 11: Wettkampf-Modus mit MatchZy einrichten

Für Vereine, Ligen und Turnier-Organisatoren ist MatchZy (478 GitHub-Stars, MIT-Lizenz, aktiv gepflegt) das etablierte CounterStrikeSharp-Plugin für kompetitive 5-gegen-5-Matches. Es automatisiert genau die Abläufe, die ein Community-Server sonst manuell nachbauen müsste:

  • Messerrunde zur Seitenwahl
  • Best-of-1, Best-of-3 und Best-of-5-Serien
  • Karten-Veto-Systeme für Team-Captains
  • Team-Lock, damit Spieler während des Matches nicht die Seite wechseln können

Nach der CounterStrikeSharp-Installation genügt es, das MatchZy-Release in den Plugins-Ordner zu entpacken und einen Match per Konfigurationsdatei oder Admin-Befehl zu starten. Für ein einzelnes Community-Match reicht die Standard-Konfiguration; Ligen mit festen Regelwerken hinterlegen zusätzlich eigene Match-JSON-Dateien mit Team-Namen und Karten-Pools. Ein Detail, das MatchZy von generischen Hosting-Guides abhebt: Es unterstützt auch den nachträglichen Wiedereinstieg via !reconnect, falls ein Spieler mitten im Match die Verbindung verliert – ohne dass der laufende Match-Status verloren geht.

Schritt 12: RCON und Serververwaltung

Über RCON (Remote Console) verwalten Sie den Server aus der Ferne, ohne direkten Shell-Zugriff auf die Maschine zu benötigen – etwa um Karten zu wechseln, Spieler zu kicken oder Einstellungen live anzupassen:

rcon_password "IhrSicheresRconPasswort"
rcon_address IHRE_SERVER_IP:27015

// Beispielbefehle nach der Verbindung:
rcon changelevel de_mirage
rcon kick "Spielername"
rcon say "Serverneustart in 5 Minuten"

Nutzen Sie für RCON ausschließlich ein langes, zufällig generiertes Passwort und beschränken Sie den Zugriff nach Möglichkeit per Firewall-Regel auf bekannte IP-Adressen. Mehr dazu im Sicherheitsabschnitt weiter unten. Damit ist die grundlegende Einrichtung – SteamCMD, GSLT, server.cfg, Plugins und Fernverwaltung – abgeschlossen; die folgenden Abschnitte behandeln Spielmodi, Autostart, Containerisierung und Betrieb.

Server-Modi: Competitive, Wingman, Retakes und Deathmatch

Über die Startparameter game_type und game_mode legen Sie fest, welcher Spielmodus geladen wird. Wingman- und Deathmatch-Server (häufig auch als „DM-Server” oder „Warmup-Server” bezeichnet) gehören zu den meistgesuchten Community-Serverformen abseits des klassischen 5-gegen-5.

ModusParameterSpielerTypischer Einsatzzweck
Competitivegame_type 0, game_mode 110 (5v5)Standard-Wettkampf, Liga- und Turniermatches
Wingmangame_type 0, game_mode 24 (2v2)Schnellere Runden, beliebt für Aim-Training
Deathmatchgame_type 1, game_mode 2bis 16+Aufwärm- und Aim-Server ohne Rundensystem
RetakesCommunity-Plugin (z. B. über CounterStrikeSharp)variabel, meist 5v5Nur Bombenverteidigung nach Plant, sehr beliebt für Utility-Übung

Deathmatch- und Warmup-Server zählen zu den am häufigsten gesuchten Server-Typen der Community, weil sie Spielern erlauben, gezielt Aim und Spawns zu trainieren, ohne auf eine volle Runde warten zu müssen. Retake-Server – bei denen jede Runde direkt nach dem Bombenlegen beginnt – lassen sich nicht über einfache Startparameter, sondern nur über ein zusätzliches CounterStrikeSharp-Plugin realisieren, das Spawn-Punkte, Bombenstatus und Rundenlogik entsprechend umbaut.

Da CS2-Instanzen im Ruhezustand kaum Ressourcen verbrauchen (siehe „Server is hibernating” in Schritt 6), lassen sich mehrere Modi problemlos parallel auf derselben Maschine betreiben: ein Competitive-Server für Liga-Matches, daneben ein Wingman- und ein Deathmatch-Server für das freie Training. Jede Instanz benötigt dafür lediglich einen eigenen Port (z. B. 27015, 27017, 27019 für die primären Spielports) sowie ein eigenes GSLT-Token und eine eigene server.cfg im jeweiligen Installationsverzeichnis. Ein separater systemd-Service pro Instanz (siehe nächster Abschnitt) hält die Verwaltung dabei übersichtlich.

Server automatisch starten und am Laufen halten (systemd)

Wer die Instanz unter Linux dauerhaft betreibt, sollte sie nicht manuell in einer SSH-Sitzung starten – diese endet, sobald die Verbindung getrennt wird, und nimmt den Serverprozess gleich mit. Ein systemd-Service startet den Server stattdessen automatisch beim Booten und neu, falls er abstürzt:

sudo nano /etc/systemd/system/cs2server.service
[Unit]
Description=CS2 Dedicated Server
After=network.target

[Service]
Type=simple
User=cs2
WorkingDirectory=/home/cs2/cs2server/game/bin/linuxsteamrt64
ExecStart=/home/cs2/cs2server/game/bin/linuxsteamrt64/cs2 -dedicated -console -usercon +game_type 0 +game_mode 1 +map de_dust2 +exec server.cfg
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable cs2server
sudo systemctl start cs2server
sudo systemctl status cs2server

Wichtig: Betreiben Sie den Serverprozess nach Möglichkeit unter einem eigenen, unprivilegierten Systembenutzer (hier cs2) statt unter root – stürzt ein Plugin ab oder wird eine Sicherheitslücke ausgenutzt, bleibt der Schaden so auf diesen Account begrenzt. Restart=on-failure sorgt dafür, dass systemd den Server nach einem Absturz automatisch nach 10 Sekunden neu startet, ohne dass Sie manuell eingreifen müssen.

Server in Docker betreiben

Als Alternative zur klassischen Installation direkt auf dem Host-System betreiben viele Communitys ihre Instanz inzwischen in einem Docker-Container – das erleichtert Updates, Isolation und das parallele Betreiben mehrerer Server auf derselben Maschine. Auf Docker Hub existieren mehrere community-gepflegte Images, die SteamCMD und den Installationsprozess bereits bündeln. Das folgende Beispiel zeigt das grundlegende, containerübliche Muster (Ports mappen, Konfiguration über ein persistentes Volume auslagern) und ist bewusst allgemein gehalten – prüfen Sie bei einem konkreten Community-Image immer dessen eigene Dokumentation auf abweichende Umgebungsvariablen:

# Illustratives Muster, kein offizielles Valve-Image:
docker run -d --name cs2server \
  -p 27015:27015/tcp -p 27015:27015/udp \
  -p 27016:27016/tcp -p 27016:27016/udp \
  -v /srv/cs2server/config:/home/steam/cs2-dedicated/game/csgo/cfg \
  -e SRCDS_TOKEN="IHR_GSLT_TOKEN" \
  -e CS2_SERVERNAME="Mein CS2 Server" \
  IMAGE_NAME:TAG

Der Vorteil gegenüber einer nativen Installation: Updates, Neustarts und sogar der komplette Wechsel zwischen mehreren Konfigurationen (etwa Competitive tagsüber, Deathmatch abends) lassen sich über einfache Container-Befehle statt manueller Dateiverwaltung erledigen. Der Nachteil: ein zusätzlicher Virtualisierungs-Overhead und die Abhängigkeit von der Update-Frequenz des jeweiligen Community-Images, das nicht offiziell von Valve gepflegt wird.

Für Administratoren, die bereits mehrere Spieleserver oder andere selbst gehostete Dienste betreiben, zahlt sich der Docker-Ansatz besonders aus: Eine einzelne Docker-Compose-Datei kann mehrere Instanzen (Competitive-, Wingman- und Deathmatch-Server) samt individueller Ports und Volumes zentral definieren, sodass sich die komplette Infrastruktur mit einem einzigen Befehl starten, stoppen oder auf eine andere Maschine umziehen lässt. Wer keine Vorerfahrung mit Containern hat, fährt für einen einzelnen Server dennoch meist einfacher mit der nativen SteamCMD-Installation aus Schritt 2 und 3.

Server mieten oder selbst hosten? Kostenvergleich für Deutschland

Nicht jeder möchte eine Instanz dauerhaft zuhause betreiben. Die folgende Übersicht vergleicht die gängigen Optionen für deutsche und DACH-Nutzer:

OptionBeispielUngefähre KostenBemerkung
Eigene Hardware (zuhause)Eigener PC oder Mini-Servernur Stromkosten, ca. 0,35 €/kWhNur online, wenn der Rechner läuft; Upload-Bandbreite oft Flaschenhals
VPS (Einstieg)ZAP-Hosting VPSab 7,90 €/MonatFür kleine Community-Server mit wenigen gleichzeitigen Spielern
Dedizierter ServerKimsufi SYS-GAME-2 (Ryzen 7 3800X, 64 GB DDR4, 2×960 GB NVMe)64,99 € HT/MonatFür aktive Communities oder mehrere gleichzeitige Instanzen
Cloud nach BedarfIONOS Cloud Serverminutengenaue Abrechnung, kein FestpreisFlexibel skalierbar, gut geeignet für einzelne Turniere oder Events

Für die meisten deutschen Hobby-Communities ist ein VPS eines europäischen Anbieters der beste Kompromiss aus Preis, Zuverlässigkeit und rechtlicher Einordnung (dazu mehr im Abschnitt Datenschutz). Ein dedizierter Server lohnt sich erst, wenn mehrere Instanzen parallel laufen sollen – etwa für einen Liga-Spieltag mit mehreren gleichzeitigen Matches oder wenn zusätzlich ein Wingman- und ein Deathmatch-Server neben dem Haupt-Match-Server benötigt werden.

Zur Einordnung über eine typische Saison hinweg: Ein durchgehend laufender VPS für rund 8 Euro im Monat summiert sich über eine sechsmonatige Liga-Saison auf ungefähr 48 Euro – ein überschaubarer Betrag, der sich in den meisten Vereinen und Communitys problemlos über Mitgliedsbeiträge oder Spenden decken lässt. Ein dedizierter Server für mehrere gleichzeitige Instanzen liegt mit rund 390 Euro über denselben Zeitraum spürbar höher, rechtfertigt sich aber, sobald mehrere parallele Matches oder ein durchgehender Trainingsbetrieb neben dem eigentlichen Ligaspiel benötigt werden.

Backups und Wartung

Konfigurationsdateien, Demos und Plugin-Einstellungen sollten regelmäßig gesichert werden – gerade bei Liga-Betrieb, wo eine verlorene Match-Konfiguration am Spieltag ärgerlich wird. Ein einfaches, per Cron-Job automatisierbares Backup-Skript unter Linux:

#!/bin/bash
BACKUP_DIR="/srv/backups/cs2"
DATUM=$(date +%Y-%m-%d)
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/cs2-cfg-$DATUM.tar.gz" \
  /home/cs2/cs2server/game/csgo/cfg \
  /home/cs2/cs2server/game/csgo/addons
find "$BACKUP_DIR" -type f -mtime +14 -delete

Die letzte Zeile löscht automatisch Backups, die älter als 14 Tage sind, damit der Speicherplatz nicht unbegrenzt wächst. Tragen Sie das Skript per crontab -e für einen täglichen Lauf ein. Vor größeren Änderungen – etwa einem Plugin-Update oder einer neuen MatchZy-Version – empfiehlt sich zusätzlich ein manueller Snapshot, damit sich ein fehlgeschlagenes Update jederzeit rückgängig machen lässt. Aktualisieren Sie die Server-Dateien selbst regelmäßig mit einem erneuten app_update 730 validate, idealerweise automatisiert vor jedem geplanten Neustart, damit Sicherheits- und VAC-Updates zeitnah einfließen.

Für Liga- und Turnierbetrieb empfiehlt sich zusätzlich eine Kopie der Backups außerhalb der eigenen Servermaschine – etwa auf einem separaten Storage-Anbieter oder einem zweiten Root-Server. Fällt die Hauptmaschine durch einen Hardwaredefekt oder eine Hosting-Störung komplett aus, bleiben Matchkonfigurationen, Demos und Plugin-Einstellungen so trotzdem erhalten. Ein einfacher rsync-Cron-Job auf eine zweite Maschine reicht für die meisten Community-Setups bereits aus und lässt sich mit demselben Backup-Skript aus dem vorherigen Codeblock kombinieren.

Häufige Stolperfallen

Diese Fehler tauchen bei nahezu jeder Ersteinrichtung auf – die meisten lassen sich mit wenig Aufwand von vornherein vermeiden:

  • Firewall/Router nicht konfiguriert: Der Server läuft lokal einwandfrei, ist aber für andere Spieler unsichtbar, weil Ports 27015/27016 nicht weitergeleitet wurden.
  • GSLT ohne verifizierte Telefonnummer: Die Token-Generierung schlägt kommentarlos fehl, wenn dem Steam-Account keine Telefonnummer hinterlegt ist.
  • Verwirrung durch den Ordnernamen „csgo”: server.cfg liegt unter game/csgo/cfg/, obwohl es sich um CS2 handelt – ein Relikt aus der gemeinsamen Codebasis.
  • SourceMod statt Metamod:Source + CounterStrikeSharp installiert: SourceMod unterstützt CS2 schlicht nicht; Plugins auf SourceMod-Basis laden nie.
  • Schwaches oder fehlendes RCON-Passwort: Ein Standard- oder leeres Passwort erlaubt Dritten die vollständige Kontrolle über den Server.
  • Anonymous-Login mit dem eigenen Steam-Account verwechselt: Für den reinen Dateidownload über SteamCMD ist „login anonymous” ausreichend und korrekt – ein eigener Account wird erst für das GSLT gebraucht.
  • Zu knapp bemessene Hardware bei mehreren Instanzen: Mehrere gleichzeitige Kartenwechsel auf zu schwacher Hardware führen zu Abstürzen oder Freezes.
  • Abgelaufenes GSLT-Token übersehen: Nach 5 Wochen Inaktivität verfällt das Token automatisch, der Server verschwindet dann scheinbar grundlos aus der Serverliste.

Fehlerbehebung: Die häufigsten Probleme

Falls die Instanz nicht wie erwartet funktioniert, hilft meist einer dieser Schritte:

  • Server erscheint nicht in der Serverliste: Port-Weiterleitung, GSLT-Gültigkeit und sv_lan 0 in der server.cfg prüfen.
  • „Connection Failed After 30 Seconds”: Firewall blockiert Port 27015, oder es wurde der falsche Port bzw. die falsche IP angegeben.
  • „Bad Password” bei RCON: rcon_password wurde nicht korrekt gesetzt oder die server.cfg beim Start nicht per +exec geladen.
  • Server stürzt beim Kartenwechsel ab: Arbeitsspeicher und Festplattenplatz prüfen, anschließend die Server-Logs auf Plugin-Konflikte durchsuchen.
  • Workshop-Karte lädt nicht: Workshop-ID falsch, oder die Collection ist auf „privat”/„nicht gelistet” statt „öffentlich” gestellt.
  • Hoher Ping trotz lokalem Server: Netzwerkkonfiguration und Tickrate-Einstellungen (sv_minupdaterate/sv_maxupdaterate) prüfen.
  • Plugins laden nicht: Installationsreihenfolge kontrollieren – zwingend erst Metamod:Source, dann CounterStrikeSharp, dann das eigentliche Plugin.
  • SourceTV-Zuschauer können nicht beitreten: tv_enable 1 fehlt in der Konfiguration, oder Port 27016 ist nicht freigegeben.
  • „Failed to Update Game” bei SteamCMD: Meist zu wenig freier Speicherplatz (unter 60 GB) oder fehlende Schreibrechte im Zielverzeichnis.
  • systemd-Dienst startet nicht: Meist ein falscher Pfad in ExecStart oder fehlende Ausführungsrechte – prüfen Sie journalctl -u cs2server -e für die genaue Fehlermeldung.

Sicherheit und Datenschutz: Den Server richtig absichern

Als sicherheitsfokussiertes Portal legen wir besonderen Wert auf diesen Punkt: Ein öffentlich erreichbarer Server ist ein potenzielles Angriffsziel und verarbeitet zugleich personenbezogene Daten Ihrer Spieler.

  • RCON-Zugriff absichern: Verwenden Sie ein langes, zufälliges Passwort und beschränken Sie rcon_address-Zugriffe nach Möglichkeit per Firewall-Regel auf bekannte IP-Adressen.
  • DDoS-Schutz: Die meisten deutschen und europäischen Hosting-Anbieter (Hetzner, netcup, IONOS, ZAP-Hosting) bieten Basis-DDoS-Schutz bereits im Grundpreis – ein Vorteil gegenüber reinem Eigen-Hosting hinter einem Privatanschluss ohne Schutzmechanismen.
  • Serverprotokolle und DSGVO: server.cfg-Befehle wie writeid und writeip speichern Steam-IDs und IP-Adressen verbundener Spieler in Log-Dateien. Das sind personenbezogene Daten im Sinne der DSGVO – wer einen Server für eine Community oder einen Verein betreibt, sollte Aufbewahrungsfristen begrenzen und den Zugriff auf diese Logs beschränken.
  • EU-Hosting bevorzugen: Wer Spieler-Logs verarbeitet, sollte Server bei Anbietern mit Rechenzentren innerhalb der EU wählen, um Datentransfers in Drittstaaten zu vermeiden.
  • Separater Systembenutzer: Betreiben Sie den Serverprozess wie in Schritt „Autostart” gezeigt unter einem unprivilegierten Benutzer statt unter root, um die Angriffsfläche im Fall einer kompromittierten Instanz zu begrenzen.
  • Regelmäßige Updates: SteamCMD sollte vor jedem Start erneut app_update 730 validate ausführen, damit Sicherheitspatches und Anti-Cheat-Updates (VAC) automatisch eingespielt werden.

Wichtig einzuordnen: VAC (Valve Anti-Cheat) läuft weiterhin ausschließlich clientseitig und schützt nicht vor Angriffen auf die Serverinfrastruktur selbst – etwa kompromittierte Plugins, unsichere RCON-Zugänge oder veraltete Metamod-Versionen mit bekannten Schwachstellen. Betreiber sollten VAC daher als Ergänzung, nicht als Ersatz für die oben genannten Absicherungsmaßnahmen verstehen. Laden Sie Plugins und Server-Erweiterungen ausschließlich aus vertrauenswürdigen Quellen wie den offiziellen GitHub-Repositories von Metamod:Source, CounterStrikeSharp und etablierten Projekten wie MatchZy – nicht aus anonymen Foren-Uploads oder inoffiziellen Spiegelservern.

Erweiterte Tipps: Performance, Subtick-System und Tickrate in der Praxis

CS2 arbeitet anders als CS:GO nicht mit wählbaren 64- oder 128-Tick-Servern, sondern mit einer fest codierten 64-Hz-Tickrate, die durch das sogenannte Subtick-System kompensiert wird: Jede Eingabe – Schuss, Sprung, Granatenwurf – wird auf die Millisekunde genau erfasst und unabhängig von den Tick-Grenzen verarbeitet. Dadurch verringert sich der spürbare Unterschied zwischen früherem 64- und 128-Tick-Feeling erheblich, auch wenn die Server-Tickrate selbst fix bleibt.

Für den Praxisbetrieb relevante Stellschrauben:

  • sv_minupdaterate / sv_maxupdaterate: steuern, wie oft der Server Updates pro Sekunde an Clients sendet – bei stabiler Anbindung auf den Maximalwert setzen.
  • CPU-Affinität: Bei mehreren Instanzen auf derselben Maschine sollte jede Instanz auf einen eigenen CPU-Kern gepinnt werden, um Tick-Schwankungen durch Ressourcenkonkurrenz zu vermeiden.
  • multihome: Bei Maschinen mit mehreren Netzwerkschnittstellen bindet dieser Parameter den Server an eine bestimmte IP – nützlich bei Root-Servern mit mehreren zugewiesenen Adressen.
  • tv_delay bei Turnieren erhöhen: 30–60 Sekunden Verzögerung verhindert Stream-Sniping bei Wettkampf-Matches mit Live-Übertragung.

Bei spürbaren Rucklern oder unregelmäßigem Tickverhalten lohnt sich zunächst eine Netzwerkdiagnose statt sofortiger Server-Neukonfiguration: Paketverlust und Jitter zwischen Host und Spielern lassen sich mit einem einfachen mtr IHRE_SERVER_IP (Linux/macOS) oder pathping IHRE_SERVER_IP (Windows) über mehrere Netzwerk-Hops hinweg sichtbar machen. Erst wenn Netzwerkwerte unauffällig sind, sollten CPU-Auslastung und gleichzeitig laufende Prozesse auf der Servermaschine selbst als Ursache in Betracht gezogen werden – ein häufig übersehener Punkt gerade bei Root-Servern, auf denen mehrere Dienste parallel laufen.

Im Wettkampf und Esport: Warum Vereine eigene Server betreiben

Counter-Strike ist nach wie vor eine der tragenden Säulen des internationalen Esports – ein Server-Ökosystem, das von Community-Ligen bis zu Großevents wie dem Esports World Cup reicht. Eigene, selbst kontrollierte Server bieten dabei entscheidende Vorteile gegenüber öffentlichem Matchmaking: volle Kontrolle über Anti-Cheat-Konfiguration, lückenlose Demo-Aufzeichnung für Streitfälle und die Möglichkeit, Turnierregeln (Karten-Veto, Pausenregelungen, Overtime-Formate) exakt wie gewünscht umzusetzen.

Gerade die Demo-Funktion über SourceTV gewinnt an Bedeutung, seit Wettbewerbsmanipulation im Esport verstärkt öffentlich diskutiert wird – ein Thema, das zuletzt auch einen anderen Valve-Titel betraf. Selbst gehostete Server mit vollständiger Demo-Aufzeichnung liefern im Streitfall eine lückenlose, überprüfbare Nachweiskette, auf die sich weder Veranstalter noch Teams allein verlassen müssen. Auch deutsche Amateur- und Semi-Profi-Ligen setzen aus genau diesem Grund zunehmend auf selbst betriebene statt gemietete Match-Server, kombiniert mit MatchZy und einer strikten Demo-Aufbewahrungspflicht für alle Liga-Spieltage.

Ein weiterer praktischer Vorteil eigener Infrastruktur: Turnierorganisatoren können identische Server-Konfigurationen (gleiche Tickrate-Einstellungen, gleiche Anti-Cheat-Parameter, gleiche Karten-Pools) für alle Teams garantieren, statt sich auf die jeweiligen Voreinstellungen unterschiedlicher Drittanbieter-Hoster zu verlassen. Für kleinere deutsche LAN-Events lässt sich so mit überschaubarem Aufwand eine konsistente, reproduzierbare Wettkampfumgebung aufbauen, die sich nicht von Community-Server zu Community-Server unterscheidet.

Häufig gestellte Fragen

Ist ein eigener CS2 Server kostenlos?
Die Server-Software selbst ist über SteamCMD komplett kostenlos. Kosten entstehen nur, wenn Sie Hardware bei einem Hoster mieten statt sie auf eigener Hardware zuhause zu betreiben.

Welche Steam-App-ID hat der CS2-Dedicated-Server?
730 – dieselbe ID wie der Client. Anders als bei CS:GO gibt es keine separate Server-Branch mehr.

Funktioniert SourceMod mit CS2?
Nein. SourceMod unterstützt ausschließlich Source-1-Titel wie CS:GO. Für CS2 ist der aktuelle Standard die Kombination aus Metamod:Source und CounterStrikeSharp.

Wie lange ist ein GSLT-Token gültig?
Ein Game Server Login Token verfällt automatisch nach 5 Wochen ohne Nutzung. Wird der Server länger pausiert, muss ein neues Token erstellt werden.

Welche Ports muss ich freigeben?
Mindestens 27015 (TCP+UDP) als Primärport. Für SourceTV/GOTV zusätzlich 27016 (TCP+UDP). Manche Hoster empfehlen zusätzlich Port 27020 als Puffer.

Kann ich einen Server unter Linux betreiben?
Ja, Linux (insbesondere Ubuntu 22.04 oder neuer) wird offiziell unterstützt und ist für den Dauerbetrieb wegen des geringeren Ressourcenverbrauchs meist die bessere Wahl gegenüber Windows.

Was ist der Unterschied zwischen 64-Tick und dem Subtick-System?
CS2 nutzt eine feste 64-Hz-Serverkommunikation, verarbeitet Eingaben durch das Subtick-System aber millisekundengenau statt nur zu festen Tick-Zeitpunkten – dadurch wird die frühere Lücke zum CS:GO-128-Tick-Gefühl deutlich kleiner.

Brauche ich einen dedizierten Server oder reicht ein VPS?
Für kleine Community-Runden mit wenigen gleichzeitigen Spielern reicht ein günstiger VPS ab rund 7,90 €/Monat. Erst bei mehreren parallelen Instanzen oder Liga-Spieltagen lohnt sich ein dedizierter Server.

Wie richte ich einen reinen Deathmatch- oder Wingman-Server ein?
Über die Startparameter game_type/game_mode: Wingman nutzt game_type 0 game_mode 2, Deathmatch game_type 1 game_mode 2. Retake-Server benötigen zusätzlich ein CounterStrikeSharp-Plugin.

Startet der Server nach einem Absturz automatisch neu?
Nur, wenn Sie ihn über einen Autostart-Mechanismus wie systemd mit Restart=on-failure betreiben. Ein manuell in einer SSH-Sitzung gestarteter Prozess endet dagegen ohne automatischen Neustart.

Wie viele Spieler passen auf einen CS2 Server?
Ein klassischer Competitive-Server ist für 10 Spieler (5 gegen 5) ausgelegt. Wingman-Server fassen 4 Spieler, während Deathmatch- und Warmup-Server je nach Konfiguration auch deutlich mehr gleichzeitige Spieler zulassen.

Weiterführende Ressourcen

Für tiefergehende Details über die reine Einrichtung hinaus lohnt sich ein Blick in die folgenden Quellen: Valves eigene Dedicated-Server-Dokumentation im Valve Developer Wiki behandelt seltenere Konfigurationsszenarien und Konsolenbefehle im Detail, während die community-gepflegte TroubleChute-Anleitung zusätzliche Windows-spezifische Automatisierungsskripte bereitstellt. Wer den Steam Workshop intensiver nutzen möchte, findet in der DatHost-Dokumentation zu CS2-Workshop-Maps weiterführende Hinweise zu FastDL und Collection-Verwaltung.