Einen Legacy-CS:GO-Server zu hosten, dem deine Freunde tatsächlich über das Internet beitreten können, ist schwieriger als es aussieht. Valve hat CS:GO mit dem Start von CS2 eingefroren und dann das offizielle Matchmaking sowie den serverinternen Server-Browser abgeschaltet. Ein Server, den du auf die normale Weise aufsetzt, startet zwar problemlos, aber jeder Freund, der sich zu verbinden versucht, sieht nur "connect failed after 30 retries". Dieser Guide erklärt warum, und das genaue Setup, das funktioniert. Jeder Schritt hier wurde auf einem echten öffentlichen Server getestet.
Warum Direct Connect scheitert
Zwei Dinge blockieren einen Legacy-CS:GO-Server im Internet:
- Kein GSLT. Ein öffentlicher CS:GO-Server braucht ein Game Server Login Token. Ohne eines sagt die Konsole "No Steam account token was specified. Connections will be restricted to LAN only."
- Das Lobby-Reservierungs-Gate. Selbst mit einem Token schickt CS:GO Direct Connects durch sein Matchmaking-Reservierungssystem. Valve hat das für den eingefrorenen Build abgeschaltet, also erstellt der Server eine Reservierung, die nie abgeschlossen wird. Das sind die "30 retries", die du siehst.
Was du brauchst
- Eine Maschine mit einer echten öffentlichen IP (ein VPS, kein Heim-PC hinter einem Router).
- Die CS:GO-Dedicated-Server-Dateien (steamcmd app 740).
- Ein GSLT für die App, die deine Spieler nutzen: 4465480 für die kostenlose eigenständige CS:GO-App, 730 für den CS2-Zweig csgo_legacy. Erstelle ihn unter steamcommunity.com/dev/managegameservers.
- MetaMod:Source, SourceMod und das NoLobbyReservation-Plugin.
Das funktionierende Setup
- Installieren mit steamcmd:
+login anonymous +app_update 740 validate - Entferne die mitgelieferte bin/libgcc_s.so.1. Der eingefrorene Build liefert eine alte Kopie mit, die auf modernem Linux kaputtgeht (der Server läuft beim Laden von libtier0.so in eine Absturzschleife). Wenn du sie löschst, wird stattdessen die System-Bibliothek geladen.
- Installiere MetaMod:Source und SourceMod in den Mod-Ordner csgo/, dann füge NoLobbyReservation hinzu. NoLobbyReservation ist das, was das Reservierungs-Gate deaktiviert, ohne es können sich Clients überhaupt nicht verbinden. Es ist das mit Abstand wichtigste Teil.
- Setze die App-ID passend zum Client deiner Spieler, in zwei Dateien: csgo/steam.inf (die Zeile appID=, Windows-Zeilenenden beibehalten) und steam_appid.txt neben srcds_run. Nimm 4465480 für die eigenständige App oder 730 für den CS2-Zweig csgo_legacy. steamcmd validate setzt steam.inf auf 730 zurück, setze sie also vor jedem Start neu.
- Trag dein GSLT in die server.cfg ein:
sv_setsteamaccount YOUR_TOKEN - Auf dem echten Port starten:
-port 27015 +sv_lan 0. Hat die Maschine mehr als eine Netzwerkschnittstelle, füg zusätzlich -ip mit deiner öffentlichen Adresse hinzu, damit der Server auf der richtigen lauscht. - Freunde verbinden sich über die Ingame-Konsole:
connect YOUR_IP:27015
Häufige Fallen
- "STEAM validation rejected" heißt, dass Client und App-ID des Servers nicht zusammenpassen. Ein Server akzeptiert genau einen Client: 4465480 für die eigenständige App, 730 für den CS2-Zweig csgo_legacy. Prüfe beide App-ID-Dateien und ob der GSLT für dieselbe App erstellt wurde.
- Eine vorkompilierte NoLobbyReservation-.smx aus einem beliebigen Repo lädt oft nicht (sie ist für einen anderen SourceMod-Build kompiliert). Kompiliere sie frisch gegen dein SourceMod.
- Ein Test aus demselben Heimnetzwerk wie der Server scheitert selbst dann, wenn das Setup stimmt, weil die Verbindung an deinem Router zurückgeworfen wird (Hairpinning). Teste von einer echten externen Verbindung aus.
Oder spar dir das alles
Das sind viele bewegliche Teile, die man bei einem Spiel am Laufen halten muss, das Valve nicht mehr aktualisiert. Auf 2hours.gg kommt ein CS:GO-Server mit dem Token, den Plugins und der Konfiguration bereits fertig eingebaut. Du deployst, wählst eine Karte, und deine Freunde verbinden sich mit der IP. Keine Plugins zu kompilieren, kein Token zu verwalten. Einen CS:GO-Server starten.
