O servidor dedicado do TF2 (app SteamCMD 232250) é instalado com login anônimo, sem possuir o jogo na máquina, e iniciado com srcds_run -game tf. Conte com cerca de 8 GB de disco, meia hora e um token GSLT para aparecer na lista de servidores. Fonte principal: wiki.teamfortress.com (Linux dedicated server).
Instalação passo a passo
Prepare uma máquina Linux (Ubuntu/Debian) com pelo menos 8 GB livres de disco, ou um PC Windows.
Crie um usuário não root (steam) e instale as bibliotecas de 32 bits.
Baixe o SteamCMD e instale o servidor com app_update 232250.
Crie um token GSLT em steamcommunity.com/dev/managegameservers (necessário para ser listado).
Gere a linha de inicialização com a ferramenta «Comando de inicialização do TF2» e execute srcds_run.
Edite tf/cfg/server.cfg (ferramenta «Gerador de server.cfg do TF2») e tf/mapcycle.txt.
Abra 27015 UDP/TCP e 27020 UDP (e 27005 UDP) no ufw, no provedor e no roteador.
Teste com connect 127.0.0.1 localmente e depois de outra conexão com connect IP:27015.
Crie um serviço systemd e agende atualizações e backups.
Pré-requisitos
- Sistema: Linux com glibc 2.3.6 ou superior e cerca de 8 GB livres de disco (wiki TF); Windows também é possível.
- CPU/RAM: não especificados na wiki consultada; o exemplo oficial usa 24 slots. Observe a carga antes de aumentar.
- Contas: a instalação é anônima (não é preciso possuir o TF2 no servidor). Uma conta Steam serve para criar o token GSLT.
Instalação local no Windows
Descompacte o SteamCMD em C:\steamcmd, instale o servidor e execute srcds.exe com os mesmos parâmetros do Linux. Teste com connect 127.0.0.1 no console do TF2.
cd C:\steamcmd
steamcmd +force_install_dir C:\tf2ds +login anonymous +app_update 232250 validate +quit
cd C:\tf2ds
srcds.exe -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKENVPS Linux: usuário e dependências
Pacotes citados pela wiki do TF para Debian/Ubuntu 64 bits. Em versões recentes, libtinfo5 e libncurses5 podem não ser mais fornecidos: a wiki indica então downloads manuais.
sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386
su - steamVPS Linux: instalação e primeira inicialização
Comandos da wiki do TF. Substitua YOUR_GSLT_TOKEN (um token válido é exigido para aparecer no navegador de servidores). Para o branch prerelease, adicione -beta prerelease antes de +app_update.
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar zxf steamcmd_linux.tar.gz
./steamcmd.sh +force_install_dir ~/hlserver/tf2 +login anonymous +app_update 232250 +quit
cd ~/hlserver/tf2
./srcds_run -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKENArquivos de configuração importantes
- tf/cfg/server.cfg: nome, senha RCON, limites de tempo e rodadas (exemplo da wiki: hostname, sv_contact, rcon_password, mp_timelimit, mp_maxrounds).
- tf/mapcycle.txt: lista de rotação de mapas (a wiki não detalha o formato: um mapa por linha, como em outros jogos Source).
- motd.txt e pure_server_whitelist.txt: opcionais (mensagem de boas-vindas e lista branca do sv_pure).
Portas a abrir e firewall Linux (ufw)
Para mudar a porta de jogo, adicione -port N à linha de inicialização (uma porta por instância) e abra-a no lugar de 27015.
Abra apenas o necessário e teste de outra conexão (não do próprio servidor).
- 27015/udp: tráfego de jogo (wiki TF)
- 27015/tcp: RCON (wiki TF)
- 27020/udp: SourceTV (wiki TF)
- 27005/udp: comunicação do cliente (valor padrão do Source, não citado pela wiki TF consultada)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw statusFirewall do Windows (netsh)
Em um prompt de comando de administrador, crie uma regra de entrada por porta (ou abra «Firewall do Windows Defender com Segurança Avançada»).
netsh advfirewall firewall add rule name="Team Fortress 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Team Fortress 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020Firewall do provedor e redirecionamento de portas (roteador)
Em um provedor (OVH, Hetzner, Scaleway…), abra também as mesmas portas no firewall ou «security group» do provedor: o ufw não basta se houver firewall externo. Em casa, crie no roteador um redirecionamento (NAT) de cada porta para o IP local da máquina (fixo ou reservado por DHCP).
Teste: de outra conexão, adicione o servidor como «IP:porta» no navegador de servidores de Team Fortress 2 ou no console. Se falhar, verifique em ordem: serviço iniciado, firewall local, firewall do provedor, redirecionamento NAT.
Início automático: serviço systemd
Crie /etc/systemd/system/tf2.service (como root) e ative-o. Adapte o usuário e os caminhos; veja os logs com journalctl -u tf2 -f.
[Unit]
Description=Team Fortress 2 dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/hlserver/tf2
ExecStart=/home/steam/hlserver/tf2/srcds_run -console -game tf -norestart +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now tf2Windows: tarefa agendada na inicialização
No Windows, uma tarefa agendada executa seu script .bat na inicialização do sistema (execute o comando em um prompt de administrador).
schtasks /Create /TN "Team Fortress 2 server" /TR "C:\tf2ds\start-tf2.bat" /SC ONSTART /RU SYSTEM /RL HIGHESTAtualizações, backups e reinícios agendados
Pare o serviço antes de atualizar (mesmo comando SteamCMD da instalação), faça backup regular dos arquivos de configuração e dados e agende um reinício diário se o servidor degradar com o tempo.
sudo systemctl stop tf2
steamcmd +force_install_dir /home/steam/hlserver/tf2 +login anonymous +app_update 232250 validate +quit
sudo systemctl start tf2
# backup
tar czf ~/tf2-$(date +%F).tar.gz -C /home/steam/hlserver/tf2 tf/cfg tf/addons tf/mapcycle.txt
# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart tf2Cadastrar e encontrar seu servidor
Cadastre seu servidor em https://game-rank.com/jeux/team-fortress-2 para que a comunidade o veja. No jogo, use o navegador de servidores ou conecte direto por IP:porta.
Solução de problemas: erros frequentes
- O servidor roda mas não está na lista: token GSLT ausente ou inválido. Solução: a wiki do TF exige um token válido; passe-o com +sv_setsteamaccount (ou SRCDS_TOKEN no Docker) e reinicie.
- Erro de biblioteca: libtinfo.so.5 / libncurses.so.5 não encontrada em uma distribuição recente. Solução: instale os pacotes i386 correspondentes, se existirem; senão siga os downloads manuais indicados pela wiki do TF.
- Servidor invisível de fora: o serviço roda mas ninguém conecta. Causa: porta fechada (ufw, firewall do provedor ou falta de NAT). Solução: abra as portas listadas nos três níveis e teste de outra conexão.
- Porta já em uso na inicialização: outra instância ocupa a porta. Solução: liste os processos com ss -lunp | grep 27015, pare a instância antiga ou dê uma porta diferente com -port a cada servidor.
- SteamCMD «Failed to install app» ou download travado: causa frequente, disco cheio ou permissões insuficientes na pasta. Solução: verifique df -h e o dono da pasta e repita o comando com validate (várias vezes se preciso).
- srcds_run: «No such file or directory» ou biblioteca de 32 bits ausente: o servidor Source é de 32 bits. Solução: ative a arquitetura i386 (dpkg --add-architecture i386) e instale lib32gcc-s1 e lib32stdc++6.
Perguntas frequentes
- Quantos jogadores um servidor TF2 comporta?
- O exemplo oficial usa +maxplayers 24; a wiki consultada não dá limite. Ajuste +maxplayers conforme sua CPU e seus plugins.
- Como atualizo o servidor?
- Segundo a wiki do TF, basta repetir o comando de instalação do SteamCMD (+app_update 232250). A atualização automática com -autoupdate exige parâmetros extras (-steam_dir, -steamcmd_script) não detalhados: prefira uma atualização agendada como na seção dedicada.
- Posso rodar o servidor como root?
- Não recomendado: crie um usuário dedicado (por exemplo steam) sem direitos de administrador e instale e execute o servidor com ele. Assim uma falha no servidor ou plugin não compromete toda a máquina.
- Meu servidor de Team Fortress 2 não aparece na lista: o que verificar?
- Verifique primeiro se as portas estão abertas em todos os níveis, se o servidor não está em modo LAN (sv_lan 0) e, se o jogo exigir, se um token de servidor (GSLT) válido foi informado. A lista da Steam pode levar alguns minutos para atualizar; enquanto isso, conecte por IP:porta.
