🤔 El problema real: cuando tu VPS se cae y no sabes por qué
Te lo vamos a decir sin rodeos: la mayoría de VPS para servidores de juegos vienen mal configurados de fábrica. No porque el proveedor sea malo, sino porque un VPS estándar está diseñado para servir webs genéricas, no para darle caña a un servidor Minecraft o FiveM con 30 jugadores conectados (si todavía dudas entre un VPS o un game server preconfigurado, tenemos un post comparativo).
Y ahí es donde empieza el drama. Tu server empieza a ir lento. Luego se laggea. Luego alguien no puede entrar. Y en el peor escenario: tu VPS empieza a hacer throttling o simplemente se cae, dejándoos a todos fuera sin explanationes claras.
Nosotros lo vemos cada semana en soporte. Clientes que pagan por un VPS decente pero que tienen el servidor funcionando como si fuera una tostadora. La buena notícia: la mayoría de esos problemas se resuelven con unos cuántos ajustes que vamos a ver ahora.
⚙️ Configuración del kernel: el ajuste más infravalorado
La mayoría de proveedores de VPS te entregan una máquina con la configuración por defecto del kernel. Esa configuración está pensada para funcionar en cualquier entorno posible, lo que significa que no está optimizada para nada concreto.
Tu servidor de juegos necesita que el kernel gestione bien tres cosas: red, memoria y procesos. Los parámetros disponibles están documentados oficialmente en la admin-guide de sysctl del kernel Linux.
Los parámetros críticos del sysctl
Abre tu terminal y añade esto a tu configuración. No te asustes si no sabes qué significa cada línea — aquí te lo explicamos:
# Red: aumentar buffers y mejorar throughput
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
# Memoria: gestión más agresiva (importante si tienes RAM justa)
vm.swappiness = 10
vm.dirty_ratio = 60
vm.dirty_background_ratio = 5
# Procesos: más filedescriptors disponibles
fs.file-max = 2097152
fs.nr_open = 2097152
¿Por qué esto importa? Cada jugador conectado abre múltiples conexiones de red y archivos. Un servidor con 50 jugadores puede tener fácilmente 10.000+ file descriptors abiertos. Si el límite por defecto es bajo, vas a empezar a ver errores de "Too many open files" y tu server puede llegar a caerse.
📌 Nota del equipo: Estos valores son para VPS con al menos 4 GB de RAM. Si tienes menos, baja los números proporcionalmente o puedes quedarte sin memoria para el propio sistema operativo.
Para aplicar los cambios permanentemente:
# Guardar configuración
sysctl -p
# Verificar que se han aplicado
sysctl net.core.rmem_max
El problema del I/O scheduler
Aquí hay un detalle que casi nadie menciona: el planificador de I/O del disco.
Si tu VPS usa discos NVMe (y debería, si no es así, tienes un problema más grave que configurar), el planificador por defecto puede no ser el mejor para cargas de juego intensivo.
# Ver qué planificador tienes activo
cat /sys/block/vda/queue/scheduler
# Si usas NVMe, el optimizado es "none" o "mq-deadline"
echo "none" > /sys/block/vda/queue/scheduler
Este cambio se deshace al reiniciar. Para hacerlo permanente, necesitas editar el GRUB, pero para empezar, un reinicio después de aplicar el cambio ya te dará una mejora notable.
🌐 Optimización de red: evitando cuellos de botella
Tu VPS tiene una cantidad limitada de ancho de banda y conexiones simultáneas. Cuando esa límite se supera, el servidor de juegos empieza a rechazar conexiones o se vuelve extremadamente lento.
Configurar los límites de conexión
El archivo que casi nadie toca pero que debería:
# Aumentar límites de conexión en /etc/security/limits.conf
* soft nofile 1048576
* hard nofile 1048576
root soft nofile 1048576
root hard nofile 1048576
# Añadir en /etc/pam.d/common-session
session required pam_limits.so
Sin esto, vas a pegar contra un muro muchas antes de que tu VPS se quede sin CPU o RAM.
Cortafuegos y gestión de conexiones
Si usas iptables o nftables, asegúrate de que las reglas están optimizadas. Un error común es filtrar conexiones de forma ineficiente, haciendo que cada paquete tenga que pasar por múltiples reglas antes de ser aceptado o rechazado.
Estructura recomendada:
# Tabla comparativa: Firewall por defecto vs optimizado
| Aspecto | Configuración por defecto | Configuración optimizada |
|---|---|---|
| **Filtrado de paquetes** | Secuencial, una regla por paquete | Uso de chains con jump rápido |
| **Conexiones establecidas** | Se revisan cada vez | Se aceptan directamente sin revisar |
| **Límite de rate** | Sin límite | Rate limiting en puertos de juego |
| **ESTADO de conexiones** | Puede saturar con SYN flood | Protección SYN洪水 integrada |
Para mejorar el throughput de red, también puedes activar BBR en lugar del algoritmo de congestión por defecto:
# Activar BBR
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -w net.core.default_qdisc=fq
BBR es el algoritmo que usa Google para sus servidores y está optimizado para conexiones de alta velocidad y baja latencia (documentado en el kernel.org como tcp_congestion_control=bbr). Para un servidor de juegos, esto marca la diferencia.
💾 Control de recursos: no todo es RAM y CPU
Aquí es donde la mayoría de la gente se equivoca. Piensan que poner más RAM y más GHz solve todo, pero hay factores que importan igual o más.
Limitar procesos con cgroups
Si tu VPS comparte nodo con otros usuarios (como en hosting compartido), puedes protegerte de vecinos ruidosos con cgroups v2. Esto evita que otros VPS te roben recursos:
# Verificar que cgroups está activo
mount | grep cgroup
# Crear un grupo para tu servicio
cgcreate -g memory,cpu:/limited_group
# Asignar tu proceso principal (ej: java para Minecraft)
cgexec -g memory,cpu:/limited_group java -Xmx4G -Xms4G -jar server.jar
No todos los paneles de control permiten esto, pero si tienes acceso root y estás en un VPS dedicado o semi-dedicado, es una mejora enorme.
Monitorización en tiempo real
No puedes optimizar lo que no mides. Instala estas herramientas (todas documentadas en el Advanced Routing HOWTO del Linux Documentation Project):
- htop — Monitor de procesos con uso de RAM, CPU y tiempo real
- iotop — Monitorización de uso de disco (crítico para detectar I/O bottlenecks)
- nethogs — Ver qué proceso está consumiendo tu ancho de banda
- vnstat — Historial de consumo de red por día/mes
# Instalar en Debian/Ubuntu
apt install htop iotop nethogs vnstat
Nuestro flujo típico cuando un cliente nos dice que el server está lento:
- Miramos
htop— ¿Qué proceso consume más CPU? - Miramos
free -h— ¿Queda RAM libre o estamos en swap? - Miramos
iotop— ¿El disco está saturado? - Miramos la cola de red — ¿Estamos limitados por ancho de banda?
En el 80% de los casos, el problema está en uno de esos cuatro sitios, no en falta de recursos generales.
🛡️ Seguridad hardening: cerrar los agujeros que hacen caer tu server
La seguridad no es solo proteger tus datos. También es evitar que tu VPS se caiga por ataques externos como los ataques DDoS, que explicamos a fondo aquí.
Protección contra DDoS básica
Si tu proveedor no incluye protección DDoS (y si estás leyendo esto para optimizar tu VPS, probablemente no la incluya), puedes implementar mitigación básica a nivel de servidor:
# Limitar conexiones por IP (protección básica SYN flood)
iptables -A INPUT -p tcp --syn -m hashlimit --hashlimit-above 50/sec --hashlimit-burst 100 --hashlimit-name syn_limit -j DROP
# Limitar conexiones nuevas por minuto por IP
iptables -A INPUT -p tcp --syn --dport 25565 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j DROP
# Rate limiting general
iptables -A INPUT -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
📌 Importante: Estos límites son orientativos. Ajústalos según la cantidad de jugadores que esperas. Si pusiste 50 jugadores máximo y tienes 20 IPs distintas conectadas, el límite de 20 conexiones por IP puede ser demasiado bajo.
Actualizaciones automáticas
Un servidor desactualizado es un servidor vulnerable. Y una vulnerabilidad explotada puede significar un server offline.
# Instalar unattended-upgrades (Debian/Ubuntu)
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades
# Asegurarte de que solo seguridad se actualiza automáticamente
# Edita /etc/apt/apt.conf.d/50unattended-upgrades y marca solo security
No vas a querer que una actualización mayor rompa tu configuración personalizada, pero sí necesitas parches de seguridad críticos.
📊 Resumen: la checklist de optimización
| Categoría | Ajuste | Impacto | Dificultad |
|---|---|---|---|
| Kernel | sysctl parámetros de red y memoria | Alto | Fácil |
| Kernel | I/O scheduler para NVMe | Medio | Fácil |
| Red | Límites de file descriptors | Muy alto | Fácil |
| Red | Activar BBR | Alto | Fácil |
| Red | Firewall optimizado con rate limiting | Alto | Media |
| Recursos | cgroups para aislamiento | Medio | Avanzada |
| Recursos | Monitorización con htop/iotop | Mantenimiento | Fácil |
| Seguridad | Límites de conexión anti-DDoS | Alto | Media |
| Seguridad | Actualizaciones automáticas | Preventivo | Fácil |
🚀 ¿Y ahora qué?
Si has aplicado estos ajustes y tu VPS sigue teniendo problemas, el problema probablemente está en el hardware subyacente o en la conexión de red del proveedor. En ese caso, puede que merezca la pena dar el salto a un servidor dedicado donde no compartes recursos con nadie.
Nosotros en Astrol Nodes ofrecemos VPS gaming-optimizados donde todos estos ajustes ya vienen aplicados de serie. Además, monitoreamos activamente para evitar que tu server se caiga sin previo aviso.
Si tienes dudas sobre qué configuración necesitas para tu proyecto específico, escríbenos antes de contratar. Te ayudamos a elegir el plan correcto basándonos en lo que realmente necesitas, no en el que más nos conviene vender.
¿Ya has optimizado tu VPS y sigues teniendo problemas? Abre un ticket de soporte y revisamos tu configuración contigo. Responder en minutos.