Fast jeder CS2-Server-Guide im Netz ist eigentlich ein MatchZy-Guide: ein komplettes Match-Plugin, Knife-Runden und ein Haufen Config. Hier geht es ums Gegenteil. Du willst einen privaten CS2-Dedicated-Server für dich und deine Freunde, ganz vanilla, ohne Plugins. Das Setup ist viel kürzer, als das Internet es erscheinen lässt, und läuft auf eine Sache hinaus, die die meisten übersehen: Der Login-Token ist inzwischen Pflicht.
Zuerst: der GSLT-Token (nicht optional)
CS2 akzeptiert auf einer öffentlichen IP keine Verbindungen ohne Game Server Login Token (GSLT). Das ist der mit Abstand häufigste Grund, warum ein frischer Server „bootet zwar, aber niemand kann joinen“. Hol dir einen kostenlos:
- Geh auf die Steam-Seite zur Verwaltung von Spieleserver-Konten (steamcommunity.com/dev/managegameservers).
- Erstelle einen Token für App-ID 730 (Counter-Strike 2). Du bekommst einen langen String zurück.
- Er ist an dein Steam-Konto gebunden. Ein Token pro Server. Teile ihn nicht; ein geleakter Token kann die Server deines Kontos sperren lassen.
Den Server installieren
Der CS2-Dedicated-Server ist App 730 (dieselbe wie das Spiel). Installiere ihn mit SteamCMD:
./steamcmd.sh +login anonymous \
+app_update 730 validate \
+quitAnonymes Login funktioniert; du musst das Spiel auf dem Server-Konto nicht besitzen. Die Config liegt unter:
<install>/game/csgo/cfg/server.cfgEine vanilla server.cfg
Füge das ein und ändere die drei mit CHANGE ME markierten Werte. Keine Plugins, kein MatchZy.
// --- Identity ---
hostname "My Private CS2 Server" // CHANGE ME
sv_setsteamaccount "YOUR_GSLT_TOKEN" // CHANGE ME - the token from above
// --- Lock it down ---
sv_password "friends-only" // CHANGE ME - join password
rcon_password "pick-a-long-secret" // admin console over RCON
// --- Vanilla behaviour ---
sv_cheats 0
sv_pure 1
sv_lan 0
mp_autoteambalance 1
mp_limitteams 2
// --- A sane private match ---
mp_maxrounds 24
mp_roundtime 1.92
mp_freezetime 15
mp_warmuptime 30
sv_alltalk 0
sv_deadtalk 1Das ist eine komplette private kompetitive Config. Der Spielmodus und die Startmap stehen NICHT drin: CS2 setzt diese auf der Startzeile, weil game_type und game_mode bekannt sein müssen, bevor die Map lädt.
Die Startzeile
Starte den Server aus dem Installationsordner. Beachte, dass es jetzt das cs2-Binary mit -dedicated ist, nicht mehr srcds_run:
./game/bin/linuxsteamrt64/cs2 -dedicated \
-ip 0.0.0.0 -port 27015 \
+game_type 0 +game_mode 1 \
+map de_dust2 \
-maxplayers 10 \
+exec server.cfg- game_type 0 + game_mode 1 ist das Standard-5v5-Competitive. Weitere Modi findest du in der Tabelle unten.
- map de_dust2 ist die Startmap. Jede offizielle Map funktioniert (de_mirage, de_inferno, cs_office…).
- exec server.cfg führt deine Cvars aus, darunter sv_setsteamaccount, bevor Spieler joinen.
- Port 27015 ist der Spiel- und A2S-Query-Port. Öffne ihn in deiner Firewall (UDP + TCP).
Die game_type/game_mode-Paare
CS2 hat kein einzelnes „Modus“-Cvar. Jeder Modus ist ein Paar aus zwei Zahlen:
game_type game_mode Mode
0 0 Casual
0 1 Competitive (5v5)
0 2 Wingman (2v2)
0 3 Hostage / Casual (cs_ maps)
1 0 Arms Race
1 1 Demolition
1 2 Deathmatchgame_type auf einem laufenden Server zu ändern ist in CS2 instabil, wähle deinen Modus also auf der Startzeile und starte den Prozess neu, um zu wechseln. Nur die Map zu wechseln (changelevel de_mirage) innerhalb desselben Modus ist kein Problem.
Eine Workshop-Map laden
Workshop-Maps sind kein Startargument. Du lädst sie zur Laufzeit mit host_workshop_map und der Workshop-ID der Map, und der Server lädt sie herunter und hostet sie. Füge zuerst -disable_workshop_command_filtering auf der Startzeile hinzu, dann in der Serverkonsole (oder über RCON):
host_workshop_map 3070315466Die Zahl ist die ID aus der URL der Workshop-Seite. Der erste Ladevorgang holt die Map von Steam, gib ihr also einen Moment. Das ist der eine CS2-Stolperstein, über den alle fallen: Einen Workshop-Map-Namen hinter +map auf die Startzeile zu setzen bewirkt nichts; es muss host_workshop_map sein.
So bleibt er privat
Mit gesetztem sv_password können sich nur Leute verbinden, die das Passwort eingeben. Teile die IP deines Servers und das Passwort mit deiner Gruppe und lass sie die Konsole nutzen: connect your.server.ip:27015; password friends-only. Ein Passwort hält den Server außerdem aus dem öffentlichen Quick-Play-Pool heraus, was du für ein privates Spiel willst.