Héberger un serveur CS:GO legacy auquel tes amis peuvent vraiment se connecter par internet est plus compliqué qu'il n'y paraît. Valve a figé CS:GO au lancement de CS2, puis a désactivé le matchmaking officiel et le navigateur de serveurs en jeu. Un serveur lancé de la manière habituelle démarre bien, mais chaque ami qui tente de se connecter voit juste "connect failed after 30 retries". Ce guide explique pourquoi, et la configuration exacte qui fonctionne. Chaque étape ici a été testée sur un vrai serveur public.
Pourquoi la connexion directe échoue
Deux choses bloquent un serveur CS:GO legacy sur internet :
- Pas de GSLT. Un serveur CS:GO public a besoin d'un Game Server Login Token. Sans lui, la console indique "No Steam account token was specified. Connections will be restricted to LAN only."
- La barrière de réservation de lobby. Même avec un token, CS:GO fait passer les connexions directes par son système de réservation de matchmaking. Valve l'a désactivé pour la version figée, donc le serveur crée une réservation qui n'aboutit jamais. C'est le "30 retries" que tu vois.
Ce qu'il te faut
- Une machine avec une vraie IP publique (un VPS, pas un PC domestique derrière un routeur).
- Les fichiers du serveur dédié CS:GO (steamcmd app 740).
- Un GSLT pour l'application de tes joueurs : 4465480 pour l'application CS:GO autonome gratuite, 730 pour la branche csgo_legacy de CS2. Crée-le sur steamcommunity.com/dev/managegameservers.
- MetaMod:Source, SourceMod et le plugin NoLobbyReservation.
La configuration qui marche
- Installe avec steamcmd :
+login anonymous +app_update 740 validate - Supprime le bin/libgcc_s.so.1 fourni. La version figée embarque une vieille copie qui casse sur un Linux moderne (le serveur boucle en plantant au chargement de libtier0.so). Le supprimer laisse la bibliothèque système se charger à la place.
- Installe MetaMod:Source et SourceMod dans le dossier de mod csgo/, puis ajoute NoLobbyReservation. NoLobbyReservation est ce qui lève la barrière de réservation, sans lui les clients ne peuvent pas se connecter du tout. C'est la pièce la plus importante.
- Règle l'app id selon le client de tes joueurs, dans deux fichiers : csgo/steam.inf (la ligne appID=, garde ses fins de ligne Windows) et steam_appid.txt à côté de srcds_run. Mets 4465480 pour l'application autonome ou 730 pour la branche csgo_legacy de CS2. steamcmd validate remet steam.inf à 730, alors règle-le de nouveau avant chaque démarrage.
- Mets ton GSLT dans server.cfg :
sv_setsteamaccount YOUR_TOKEN - Lancez sur le vrai port :
-port 27015 +sv_lan 0. Si la machine a plus d'une interface réseau, ajoutez aussi -ip avec votre adresse publique pour que le serveur écoute sur la bonne. - Les amis se connectent depuis la console en jeu :
connect YOUR_IP:27015
Pièges fréquents
- "STEAM validation rejected" signifie que le client et l'app id du serveur ne correspondent pas. Un serveur n'accepte qu'un seul client : 4465480 pour l'application autonome, 730 pour la branche csgo_legacy de CS2. Vérifie les deux fichiers d'app id et que le GSLT a été créé pour la même application.
- Un .smx NoLobbyReservation précompilé venant d'un dépôt au hasard ne se charge souvent pas (il est compilé pour une autre version de SourceMod). Recompile-le à neuf contre ton SourceMod.
- Tester depuis le même réseau domestique que le serveur échouera même quand la configuration est correcte, parce que la connexion fait un aller-retour (hairpin) sur ton routeur. Teste depuis une vraie connexion extérieure.
Ou saute tout ça
Ça fait beaucoup de pièces à maintenir en état de marche sur un jeu que Valve ne met plus à jour. Sur 2hours.gg un serveur CS:GO arrive avec le token, les plugins et la config déjà intégrés. Tu déploies, choisis une carte, et tes amis se connectent à l'IP. Aucun plugin à compiler, aucun token à gérer. Déployer un serveur CS:GO.
