Rust es de los que más confusión genera porque usa tres puertos distintos para tres cosas distintas, y uno de ellos va en TCP mientras los otros van en UDP. Abrir solo el de juego hace que la gente pueda entrar escribiendo la IP a mano, pero el servidor no aparezca en el buscador.
Los puertos
| Puerto | Protocolo | Para qué | ¿Abrir? |
|---|---|---|---|
| 28015 | UDP | El juego: por aquí entran los jugadores | Sí |
| 28017 | UDP | Consulta de Steam: te pone en el buscador de la comunidad | Sí |
| 28016 | TCP | RCON / consola web | Solo si lo usas desde fuera |
| 28083 | TCP | Aplicación Rust+ | Solo si quieres Rust+ |
Dos avisos sobre esa tabla:
- El de consulta no se configura solo. Si no pones
+server.queryport, Rust elige uno por encima del mayor entre el de juego y el de RCON, que en una instalación normal da el 28017. Si tú cambiaste alguno, haz la cuenta o fíjalo a mano. - Rust+ escucha en el puerto que indiques con
+app.port. Si no indicas nada, usa el mayor entre juego y RCON más 67, o sea el 28083 en una instalación estándar.
Windows (PowerShell como administrador)
# Juego y consulta: lo imprescindible
New-NetFirewallRule -DisplayName "Rust juego 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 juego UDP 28015 (salida)" -Direction Outbound -Protocol UDP -LocalPort 28015 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Rust consulta UDP 28017 (salida)" -Direction Outbound -Protocol UDP -LocalPort 28017 -Action Allow -Profile Any
Y si vas a usar RCON o Rust+ desde fuera (solo entonces):
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 # solo si usas RCON desde fuera
# 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
# ¿Escucha?
ss -lntup | grep -E '28015|28016|28017'
El RCON, con cuidado
El RCON te da control total de la consola del servidor. Si lo abres a Internet con una contraseña corta, es cuestión de días que alguien la adivine y te borre el mapa. Pon una contraseña larga y única en +rcon.password y, si solo lo usas tú, mejor por túnel SSH:
ssh -L 28016:localhost:28016 root@TU_IP
Así te conectas a localhost:28016 con tu herramienta de RCON sin abrir nada al mundo.
No aparezco en el buscador de la comunidad
- Falta el puerto de consulta (UDP 28017). Es la causa más frecuente: con el de juego abierto se puede entrar por IP, pero Steam no te lista.
- Protocolo equivocado. El de juego y el de consulta son UDP. Una regla de TCP 28015 no abre nada útil.
- El servidor tarda en aparecer. Tras arrancar, Steam puede tardar unos minutos en indexarlo. Dale tiempo antes de tocar nada.
- Recién hecho un wipe. El servidor se reinicia y vuelve a registrarse; es normal que desaparezca un rato.
- Filtrado AntiDDoS: pestaña Seguridad de tu servicio. Si tienes filtros a mano, el 28015 y el 28017 tienen que estar en UDP.
Para dimensionar la máquina antes del wipe, ojo con una cosa: el consumo de Rust sube a lo largo del ciclo, porque todo lo que construyen los jugadores se queda. Nuestra calculadora de Rust lo tiene en cuenta.