Hospedar um servidor legado de CS:GO que seus amigos realmente conseguem acessar pela internet é mais difícil do que parece. A Valve congelou o CS:GO quando o CS2 foi lançado, depois desligou o matchmaking oficial e o navegador de servidores no jogo. Um servidor que você sobe da forma normal inicia bem, mas todo amigo que tenta se conectar só vê "connect failed after 30 retries". Este guia explica por quê, e a configuração exata que funciona. Cada passo aqui foi testado num servidor público real.
Por que a conexão direta falha
Duas coisas bloqueiam um servidor legado de CS:GO na internet:
- Sem GSLT. Um servidor público de CS:GO precisa de um Game Server Login Token. Sem ele, o console diz "No Steam account token was specified. Connections will be restricted to LAN only."
- A trava de reserva de lobby. Mesmo com um token, o CS:GO passa as conexões diretas pelo sistema de reserva do matchmaking. A Valve desligou isso na build congelada, então o servidor cria uma reserva que nunca é concluída. É essa a mensagem de "30 retries" que você vê.
O que você precisa
- Uma máquina com um IP público real (um VPS, não um PC de casa atrás de um roteador).
- Os arquivos do servidor dedicado de CS:GO (steamcmd app 740).
- Um GSLT para o app que seus jogadores usam: 4465480 para o app independente gratuito do CS:GO, 730 para o branch csgo_legacy do CS2. Crie em steamcommunity.com/dev/managegameservers.
- MetaMod:Source, SourceMod e o plugin NoLobbyReservation.
A configuração que funciona
- Instale com o steamcmd:
+login anonymous +app_update 740 validate - Remova o bin/libgcc_s.so.1 que vem junto. A build congelada traz uma cópia antiga que quebra no Linux moderno (o servidor entra em loop de crash ao carregar libtier0.so). Apagá-lo faz a biblioteca do sistema carregar no lugar.
- Instale MetaMod:Source e SourceMod na pasta do mod csgo/, depois adicione o NoLobbyReservation. O NoLobbyReservation é o que remove a trava de reserva, sem ele os clientes não conseguem se conectar de jeito nenhum. É a peça mais importante de todas.
- Defina o app id conforme o cliente dos seus jogadores, em dois arquivos: csgo/steam.inf (a linha appID=, mantenha as quebras de linha do Windows) e steam_appid.txt ao lado do srcds_run. Use 4465480 para o app independente ou 730 para o branch csgo_legacy do CS2. O steamcmd validate volta o steam.inf para 730, então defina de novo antes de cada inicialização.
- Coloque seu GSLT no server.cfg:
sv_setsteamaccount YOUR_TOKEN - Inicie na porta real:
-port 27015 +sv_lan 0. Se a máquina tiver mais de uma interface de rede, adicione também -ip com seu endereço público para o servidor escutar na interface certa. - Os amigos se conectam pelo console do jogo:
connect YOUR_IP:27015
Armadilhas comuns
- "STEAM validation rejected" significa que o cliente e o app id do servidor não batem. Um servidor aceita um só cliente: 4465480 para o app independente, 730 para o branch csgo_legacy do CS2. Confira os dois arquivos de app id e se o GSLT foi criado para o mesmo app.
- Um .smx pré-compilado de NoLobbyReservation de um repositório aleatório muitas vezes não carrega (foi compilado para uma build diferente do SourceMod). Compile-o do zero contra o seu SourceMod.
- Testar a partir da mesma rede doméstica do servidor vai falhar mesmo com a configuração certa, porque a conexão faz hairpin no seu roteador. Teste a partir de uma conexão externa real.
Ou pule tudo isso
São muitas peças móveis para manter funcionando num jogo que a Valve não atualiza mais. No 2hours.gg um servidor de CS:GO já vem com o token, os plugins e a configuração prontos. Você sobe o servidor, escolhe um mapa, e seus amigos se conectam ao IP. Sem plugins para compilar, sem token para gerenciar. Iniciar um servidor de CS:GO.
