O Rust é dos que mais confusão gera, porque usa três portas diferentes para três coisas diferentes, e uma delas funciona em TCP enquanto as outras usam UDP. Abrir só a de jogo faz com que as pessoas consigam entrar escrevendo o IP à mão, mas o servidor não aparece no browser.
As portas
| Porta | Protocolo | Para que serve | Abrir? |
|---|---|---|---|
| 28015 | UDP | O jogo: é por aqui que entram os jogadores | Sim |
| 28017 | UDP | Consulta do Steam: põe-te no browser da comunidade | Sim |
| 28016 | TCP | RCON / consola web | Só se o usares de fora |
| 28083 | TCP | Aplicação Rust+ | Só se quiseres o Rust+ |
Dois avisos sobre esta tabela:
- A porta de consulta não se configura sozinha. Se não puseres
+server.queryport, o Rust escolhe uma acima da maior entre a de jogo e a de RCON, o que numa instalação normal dá a 28017. Se mudaste alguma, faz a conta ou fixa-a à mão. - O Rust+ fica à escuta na porta que indicares com
+app.port. Se não indicares nada, usa a maior entre jogo e RCON mais 67, ou seja, a 28083 numa instalação padrão.
Windows (PowerShell como administrador)
# Jogo e consulta: o imprescindível
New-NetFirewallRule -DisplayName "Rust jogo UDP 28015 (entrada)" -Direction Inbound -Protocol UDP -LocalPort 28015 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust consulta UDP 28017 (entrada)" -Direction Inbound -Protocol UDP -LocalPort 28017 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust jogo UDP 28015 (saida)" -Direction Outbound -Protocol UDP -LocalPort 28015 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust consulta UDP 28017 (saida)" -Direction Outbound -Protocol UDP -LocalPort 28017 -Action Allow -Profile Any
E se vais usar o RCON ou o Rust+ de fora (só nesse caso):
New-NetFirewallRule -DisplayName "Rust RCON TCP 28016 (entrada)" -Direction Inbound -Protocol TCP -LocalPort 28016 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust+ TCP 28083 (entrada)" -Direction Inbound -Protocol TCP -LocalPort 28083 -Action Allow -Profile Any
Linux
# Ubuntu / Debian
ufw allow 28015/udp
ufw allow 28017/udp
ufw allow 28016/tcp # só se usares o RCON de fora
# AlmaLinux / Rocky
firewall-cmd --permanent --add-port=28015/udp
firewall-cmd --permanent --add-port=28017/udp
firewall-cmd --permanent --add-port=28016/tcp
firewall-cmd --reload
# Está à escuta?
ss -lntup | grep -E '28015|28016|28017'
O RCON, com cuidado
O RCON dá-te controlo total da consola do servidor. Se o abrires à Internet com uma palavra-passe curta, é uma questão de dias até alguém a adivinhar e te apagar o mapa. Põe uma palavra-passe longa e única em +rcon.password e, se só tu o usas, melhor por túnel SSH:
ssh -L 28016:localhost:28016 root@O_TEU_IP
Assim ligas-te a localhost:28016 com a tua ferramenta de RCON sem abrires nada ao mundo.
Não apareço no browser da comunidade
- Falta a porta de consulta (UDP 28017). É a causa mais frequente: com a de jogo aberta pode-se entrar por IP, mas o Steam não te lista.
- Protocolo errado. A de jogo e a de consulta são UDP. Uma regra de TCP 28015 não abre nada útil.
- O servidor demora a aparecer. Depois de arrancar, o Steam pode demorar uns minutos a indexá-lo. Dá-lhe tempo antes de mexeres em alguma coisa.
- Acabaste de fazer um wipe. O servidor reinicia e volta a registar-se; é normal desaparecer durante um bocado.
- Filtragem AntiDDoS: separador Segurança do teu serviço. Se tens filtros feitos à mão, a 28015 e a 28017 têm de estar em UDP.
Para dimensionar a máquina antes do wipe, atenção a uma coisa: o consumo do Rust sobe ao longo do ciclo, porque tudo o que os jogadores constroem fica lá. A nossa calculadora de Rust tem isso em conta.