Como criar um servidor de Counter-Strike em VPS Linux com SRCDS

Tutorial passo a passo para subir um servidor dedicado de Counter-Strike (CS 1.6 ou CS2) em VPS Linux usando SteamCMD, SRCDS, firewall e systemd.

Subir um servidor próprio de Counter-Strike em VPS Linux dá controle total sobre tick rate, plugins, mapas custom e regras anti-cheat — coisas que servidores compartilhados em hospedagens game-as-a-service geralmente não permitem ajustar. Este tutorial cobre a instalação do SRCDS (Source Dedicated Server) em uma VPS Ubuntu 24.04, com foco em CS:GO (AppID 232330) e variantes baseadas no mesmo engine. As mesmas etapas, com ajustes de AppID, funcionam para CS 1.6 via HLDS.

Persona deste guia: desenvolvedor ou owner de comunidade que já tem familiaridade com SSH e linha de comando Linux, e quer rodar um servidor público ou privado para clã, treino ou comunidade. Tempo estimado de execução: 30 a 45 minutos do zero ao primeiro player conectado, descontando o tempo de download dos assets do Steam (3-4 GB para CS:GO).

Não vamos tratar de plugins Metamod/SourceMod, anti-cheat externo ou painel web — o objetivo é deixar o binário SRCDS subindo de forma confiável com systemd, firewall configurado e capaz de aparecer na busca pública do Steam.

Pré-requisitos

Antes de começar

Você precisa de VPS Linux com Ubuntu 24.04 LTS, mínimo 2 vCPUs e 2 GB de RAM para CS:GO (1 vCPU e 1 GB cobrem CS 1.6), 10 GB de disco livre, acesso root ou usuário com sudo, e um GSLT (Game Server Login Token) gerado em steamcommunity.com/dev/managegameservers caso queira servidor público de CS:GO.

A VPS precisa de IP IPv4 público dedicado — servidores Steam não funcionam atrás de NAT compartilhado sem port forwarding explícito, e a maioria das hospedagens de VPS já entrega IP dedicado por padrão. A porta UDP principal será 27015. Bloqueio de UDP em provedores genéricos é comum, então confirme com o suporte do provedor antes de seguir.

Sistema Ubuntu 24.04 LTS
Porta servidor (UDP) 27015
Porta consulta (UDP) 27015
AppID CS:GO 232330
AppID CS 1.6 90
Disco mínimo 10 GB

Preparar o sistema

O SRCDS é um binário de 32 bits, então mesmo em uma VPS x86_64 moderna você precisa habilitar a arquitetura i386 e instalar as bibliotecas compatíveis. SteamCMD também depende de libstdc++ específicas.

01

Atualize os pacotes do sistema:

sudo apt update && sudo apt upgrade -y

Reboot só se o kernel for atualizado (sudo reboot). Caso contrário, siga direto.

02

Habilite arquitetura 32 bits e instale dependências:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 libcurl4-gnutls-dev:i386 \
  ca-certificates wget curl tar screen ufw

Os pacotes :i386 são obrigatórios — SRCDS reclama com erro genérico de “library not found” se faltarem, sem dizer qual.

03

Crie um usuário dedicado pro servidor (nunca rode SRCDS como root):

sudo useradd -m -s /bin/bash csserver
sudo passwd csserver

Rodar como root expõe o sistema inteiro caso o servidor seja explorado por algum bug do engine. Usuário dedicado isola o processo.

Instalar o SteamCMD e baixar o servidor

SteamCMD é o utilitário oficial da Valve pra instalar e atualizar servidores dedicados. Ele baixa o conteúdo do mesmo CDN do Steam cliente.

04

Mude pro usuário csserver e crie a estrutura de pastas:

sudo su - csserver
mkdir -p ~/steamcmd ~/csgo-server
cd ~/steamcmd
05

Baixe e extraia o SteamCMD:

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

A primeira execução do SteamCMD auto-atualiza o utilitário e baixa runtime adicional — espere alguns minutos.

06

Instale o CS:GO Dedicated Server (AppID 232330):

./steamcmd.sh +force_install_dir /home/csserver/csgo-server \
  +login anonymous \
  +app_update 232330 validate \
  +quit

Para CS 1.6 (HLDS), troque por:

./steamcmd.sh +force_install_dir /home/csserver/cs16-server \
  +login anonymous \
  +app_update 90 validate \
  +quit

O download é de aproximadamente 3-4 GB pra CS:GO e 300 MB pra CS 1.6. Se a conexão cair no meio, rode o mesmo comando — o SteamCMD continua de onde parou e o validate corrige arquivos corrompidos.

Mensagem de erro AppID 740

Se aparecer “AppID 740 — Server is updating”, aguarde 30 segundos e rode novamente. É o próprio SteamCMD baixando dependências do CS:GO em paralelo.

Configurar o firewall e portas

O servidor escuta em UDP 27015 (game + query Steam). TCP 27015 também é usado pra RCON quando habilitado. Liberar essas portas no UFW é obrigatório.

07

Configure o UFW liberando SSH e portas do CS:

exit  # volta pro usuário sudo
sudo ufw allow 22/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw --force enable
sudo ufw status numbered

Confirme que SSH (22/tcp) está liberado antes de habilitar — você se desconecta e fica preso caso contrário.

Firewall do provedor

UFW só controla o firewall local da VPS. Vários provedores têm um segundo firewall externo na borda da rede que precisa ser ajustado no painel deles. Se o servidor sobe mas ninguém consegue conectar, é quase sempre isso.

Criar o arquivo de configuração

O server.cfg define nome, senha (opcional), regras de jogo e parâmetros de rede. Sem ele, o servidor sobe com defaults da Valve.

08

Volte ao usuário csserver e crie o arquivo:

sudo su - csserver
nano ~/csgo-server/csgo/cfg/server.cfg

Cole um template mínimo funcional:

hostname "Meu Servidor CS:GO BR"
rcon_password "TROQUE_PARA_ALGO_FORTE"
sv_password ""
sv_lan 0
sv_region 4
mp_friendlyfire 0
sv_cheats 0
sv_pure 1
mp_autoteambalance 1
mp_limitteams 1
mp_maxrounds 30
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1

sv_region 4 corresponde a América do Sul — ajuda no filtro de localização no Steam. rcon_password deve ser longa e única; RCON exposto com senha fraca é vetor comum de takeover.

Configurar o systemd para o servidor iniciar no boot

Rodar SRCDS em screen funciona pra testes, mas em produção use systemd — restart automático em crash, logs centralizados via journalctl e start no boot da VPS.

09

Crie o serviço systemd (como root):

exit
sudo nano /etc/systemd/system/csgo.service

Conteúdo:

[Unit]
Description=CS:GO Dedicated Server
After=network.target

[Service]
Type=simple
User=csserver
WorkingDirectory=/home/csserver/csgo-server
ExecStart=/home/csserver/csgo-server/srcds_run -game csgo -console -usercon \
  +game_type 0 +game_mode 1 +mapgroup mg_active +map de_dust2 \
  -tickrate 128 -port 27015 +sv_setsteamaccount SEU_GSLT_AQUI \
  -maxplayers_override 16
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Substitua SEU_GSLT_AQUI pelo token gerado em steamcommunity.com/dev/managegameservers. Sem GSLT válido, o servidor não aparece na busca pública do CS:GO desde 2016.

10

Habilite e inicie o servidor:

sudo systemctl daemon-reload
sudo systemctl enable csgo.service
sudo systemctl start csgo.service
sudo systemctl status csgo.service

O status deve mostrar active (running) e algumas linhas de log do SRCDS subindo.

Verificação

Confirme que o servidor está respondendo na porta correta e visível externamente.

11

Verifique o processo e a porta:

sudo ss -ulnp | grep 27015
sudo journalctl -u csgo.service -n 50 --no-pager

Você deve ver *:27015 em LISTEN UDP e logs mostrando o mapa de_dust2 carregado.

12

No cliente Steam, abra o console (~) e conecte:

connect SEU_IP_DA_VPS:27015

Se conectou, o servidor está operacional. Pra busca pública, vá em “Servidores Comunitários” no menu do CS:GO — o servidor aparece em 2-5 minutos após registro com GSLT válido.

Resolução de problemas

Servidor sobe mas não aceita conexões

Quase sempre é firewall externo do provedor (não o UFW) bloqueando UDP 27015. Teste com nmap -sU -p 27015 SEU_IP de outra máquina. Se vier “filtered”, contate o suporte do provedor.

”Server is enforcing secure connections, your client is not”

VAC desabilitado no cliente ou versão desatualizada. Pra debug em rede local sem VAC, adicione -insecure na linha do ExecStart, mas nunca em produção pública.

Lag/spikes apesar de CPU OK

SRCDS é single-threaded — se um core estiver saturado por outro processo, o tick atrasa. Use htop e confirme que o core onde o SRCDS roda está abaixo de 70% durante pico. Em VPS com vCPU compartilhada, peça migração pra plano com CPU dedicada.

Próximos passos

Com o servidor base operacional, alguns caminhos comuns de evolução:

  • Instalar SourceMod + Metamod para plugins (admin, mapas custom, anti-cheat plugin)
  • Configurar workshop collection com mapas competitivos via +host_workshop_collection
  • Adicionar segundo servidor na mesma VPS na porta 27016 para servidor de pug/aim
  • Configurar backup automático dos logs e configs com cron + rsync para storage remoto
  • Monitorar performance com systemd-cgtop ou Netdata para visualizar uso por instância

Se você está colocando múltiplos servidores em produção, uma VPS Hostini da linha /jogos já vem com IP dedicado, sem oversell de CPU e portas UDP liberadas por padrão — duas dores comuns ao migrar de hospedagens genéricas pra rodar servidor de jogo competitivo com tick 128.

Perguntas frequentes

Qual a diferença entre HLDS e SRCDS para Counter-Strike?

HLDS (Half-Life Dedicated Server) é o binário usado por CS 1.6 e mods baseados no engine GoldSrc. SRCDS (Source Dedicated Server) roda CS:Source, CS:GO e — com adaptações via Steam — CS2. A instalação via SteamCMD usa AppIDs diferentes: 90 para HLDS/CS 1.6 e 232330 para CS:GO. CS2 atualmente não tem binário dedicado público estável e é normalmente hospedado em estrutura própria.

Quanto de RAM e CPU preciso para um servidor de CS estável?

Para CS 1.6 com até 32 slots, 1 vCPU dedicada e 1 GB de RAM são suficientes. Para CS:GO com 16-20 slots em tick 64, planeje 2 vCPUs e 2 GB de RAM. Tick 128 dobra a demanda de CPU — prefira 3 GHz+ por core, já que SRCDS é single-threaded por instância. Disco importa menos: 10 GB cobrem instalação e mapas custom.

Por que o servidor não aparece na busca do Steam mesmo rodando?

Três causas comuns: a porta UDP 27015 está bloqueada no firewall do provedor (não só no ufw da VPS), o parâmetro +sv_lan está como 1 (precisa ser 0 para internet), ou o servidor não tem GSLT (Game Server Login Token) configurado — obrigatório para CS:GO público desde 2016. Verifique cada item antes de reinstalar.

É possível rodar vários servidores na mesma VPS?

Sim. Cada instância SRCDS roda em uma porta UDP diferente (27015, 27016, 27017, etc) e usa configs separadas via parâmetro +port. Cada servidor consome uma vCPU plena durante pico, então não passe de N-1 instâncias onde N é o número de vCPUs da VPS, deixando margem para o sistema.

O que é tick rate e como aumentar para 128?

Tick rate é quantas vezes por segundo o servidor processa input dos jogadores. CS:GO default é 64. Para 128, adicione -tickrate 128 nos parâmetros de inicialização do srcds_run. Tick 128 melhora precisão de tiros e movimento mas exige CPU mais rápida e largura de banda maior por jogador (~30 KB/s vs 15 KB/s no tick 64).

Como atualizar o servidor quando sai patch da Valve?

Rode novamente o steamcmd com o mesmo comando de instalação — ele detecta diferença e baixa só o delta. Pare o systemd antes (sudo systemctl stop csgo), atualize, e suba de novo. Em servidores públicos CS:GO, manter desatualizado faz o servidor sumir da busca até que coincida com a versão cliente atual.

Tópicos:
Próximos passos VPS, dedicado ou painel gerenciado para FiveM, SAMP, MTA, Tibia e mais.Hospede seu servidor de jogos com a Hostini →
Esse tutorial foi útil?
Falar no WhatsApp