Een legacy CS:GO-server hosten waar je vrienden echt via het internet op kunnen joinen is lastiger dan het lijkt. Valve heeft CS:GO bevroren toen CS2 uitkwam, en daarna de officiële matchmaking en de in-game serverbrowser uitgezet. Een server die je op de normale manier opstart, boot prima, maar elke vriend die probeert te verbinden ziet alleen maar "connect failed after 30 retries". Deze gids legt uit waarom, en toont de exacte setup die wel werkt. Elke stap hier is getest op een echte publieke server.
Waarom direct connect faalt
Twee dingen blokkeren een legacy CS:GO-server op het internet:
- Geen GSLT. Een publieke CS:GO-server heeft een Game Server Login Token nodig. Zonder token zegt de console "No Steam account token was specified. Connections will be restricted to LAN only."
- De lobby-reserveringspoort. Zelfs met een token stuurt CS:GO direct connects door zijn matchmaking-reserveringssysteem. Valve heeft dat uitgezet voor de bevroren build, dus de server maakt een reservering die nooit voltooid wordt. Dat is de "30 retries" die je ziet.
Wat je nodig hebt
- Een machine met een echt publiek IP (een VPS, niet een thuis-pc achter een router).
- De CS:GO dedicated server-bestanden (steamcmd app 740).
- Een GSLT voor de app die je spelers gebruiken: 4465480 voor de gratis losse CS:GO-app, 730 voor de CS2-tak csgo_legacy. Maak hem aan op steamcommunity.com/dev/managegameservers.
- MetaMod:Source, SourceMod en de NoLobbyReservation-plugin.
De werkende setup
- Installeren met steamcmd:
+login anonymous +app_update 740 validate - Verwijder de meegeleverde bin/libgcc_s.so.1. De bevroren build levert een oude kopie mee die stukloopt op moderne Linux (de server komt in een crash-loop bij het laden van libtier0.so). Door hem te verwijderen wordt de systeembibliotheek geladen in plaats daarvan.
- Installeer MetaMod:Source en SourceMod in de csgo/ mod-map, en voeg daarna NoLobbyReservation toe. NoLobbyReservation is wat de reserveringspoort uitschakelt, zonder deze kunnen clients helemaal niet verbinden. Het is het allerbelangrijkste onderdeel.
- Zet de app-id op de client van je spelers, in twee bestanden: csgo/steam.inf (de regel appID=, houd de Windows-regeleinden) en steam_appid.txt naast srcds_run. Gebruik 4465480 voor de losse app of 730 voor de CS2-tak csgo_legacy. steamcmd validate zet steam.inf terug naar 730, dus stel hem voor elke start opnieuw in.
- Zet je GSLT in server.cfg:
sv_setsteamaccount YOUR_TOKEN - Start op de echte poort:
-port 27015 +sv_lan 0. Heeft de machine meer dan één netwerkinterface, voeg dan ook -ip met je publieke adres toe, zodat de server op de juiste luistert. - Vrienden verbinden vanuit de in-game console:
connect YOUR_IP:27015
Veelvoorkomende valkuilen
- "STEAM validation rejected" betekent dat de client en de app-id van de server niet overeenkomen. Een server accepteert één client: 4465480 voor de losse app, 730 voor de CS2-tak csgo_legacy. Controleer beide app-id-bestanden en of de GSLT voor dezelfde app is gemaakt.
- Een kant-en-klare NoLobbyReservation .smx uit een willekeurige repo laadt vaak niet (die is gecompileerd voor een andere SourceMod-build). Compileer hem vers tegen jouw SourceMod.
- Testen vanaf hetzelfde thuisnetwerk als de server mislukt zelfs als de setup klopt, omdat de verbinding een hairpin maakt via je router. Test vanaf een echte externe verbinding.
Of sla het allemaal over
Dit zijn veel bewegende onderdelen om werkend te houden voor een game die Valve niet meer bijwerkt. Op 2hours.gg komt een CS:GO-server met de token, de plugins en de config al ingebakken. Je deployt, kiest een kaart, en je vrienden verbinden met het IP. Geen plugins om te compileren, geen token om te beheren. Een CS:GO-server deployen.
