VPS para Pterodactyl: panel, Wings y servidores de juegos
Pterodactyl es un panel gratuito para gestionar servidores de juegos. Tiene dos partes. Panel es la interfaz web en PHP con base de datos MariaDB o MySQL y Redis: en ella se crean usuarios, servidores y límites. Wings es un daemon en Go que se instala en cada nodo y ejecuta cada servidor de juego en un contenedor Docker aparte, con límites estrictos de memoria, CPU y disco. Las dos partes se pueden instalar en un mismo VPS, o se puede llevar el panel a un servidor pequeño y conectarle tantos nodos Wings como quieras.
Virtualización: solo completa
La documentación de Pterodactyl lo dice claramente: en OpenVZ, Virtuozzo y LXC lo más probable es que Wings no arranque, y en KVM funciona siempre. La razón es Docker, que necesita kernel propio, cgroups y módulos de red. Puedes comprobar el servidor con el comando systemd-detect-virt: si la respuesta es openvz o lxc, el plan no sirve. Otra trampa son los kernels modificados de algunos proveedores sin las funciones que Docker necesita; Wings requiere el kernel estándar de la distribución. Por eso en la tabla de arriba solo hay VPS con KVM. Más sobre los requisitos de los contenedores en la página VPS para Docker.
Wings soporta oficialmente Ubuntu y Debian (en la rama 1.x también Rocky Linux y AlmaLinux) y no funciona en Windows. El panel necesita un servidor web (NGINX, Apache o Caddy), PHP con extensiones, una base de datos y Redis; todo eso ocupa alrededor de 1 GB de memoria, así que es mejor no instalar el panel junto con los juegos en un plan diminuto.
Cuánta memoria reservar para los juegos
Un nodo Wings se calcula como la suma de los servidores que van a funcionar en él, más 1–2 GB para el sistema, Docker y el panel. Referencias por servidor:
- Terraria, Factorio, TeamSpeak: 0,5–2 GB.
- Minecraft con Paper: 2–6 GB según los plugins y los jugadores conectados; los modpacks, 8 GB o más. Lo explicamos en detalle en la página VPS para Minecraft.
- Valheim, CS2: 2–4 GB.
- Rust, ARK, Palworld: 8–16 GB por servidor, y aún más al final del wipe o con un mundo grande.
El panel permite sobreasignar memoria en el nodo, pero para juegos es peligroso: si los contenedores ocupan a la vez más de lo que hay físicamente, el kernel empezará a matar procesos. En nodos donde los servidores son para otras personas, deja margen y activa la contabilidad de swap (en kernels 6.1 y posteriores viene activada por defecto).
Procesador y disco
La mayoría de servidores de juegos calculan el mundo en un hilo principal, así que en el nodo importa la frecuencia del núcleo, y el número de núcleos determina cuántos servidores caben juntos. Cuatro núcleos rápidos son un mínimo razonable para varios servidores. En Pterodactyl puedes fijar un servidor a núcleos concretos para que un Rust pesado no le robe tiempo al Minecraft de al lado.
Mejor disco NVMe: las imágenes Docker, los archivos de los juegos y las partidas guardadas crecen rápido, y la instalación de cada servidor con SteamCMD descarga gigabytes. CS2 o ARK ocupan decenas de gigabytes antes incluso de la primera copia de seguridad. Las copias integradas de Pterodactyl se guardan por defecto en el mismo nodo; para más seguridad, configura el envío a un almacenamiento compatible con S3.
Una máquina o varios nodos
Para una primera toma de contacto y un servidor para un grupo de amigos basta un VPS con el panel y Wings a la vez. Cuando hay más juegos, conviene separar los roles: el panel con la base de datos vive en un servidor pequeño y barato, y los juegos, en varios nodos Wings que puedes ubicar en distintos países, más cerca de los jugadores. Los nodos se añaden en la sección Nodes, y el panel reparte entre ellos los servidores nuevos según la memoria y el disco libres. Si un nodo falla, el panel y el resto de juegos siguen funcionando. La comunicación entre el panel y los nodos va por internet, así que el panel no tiene por qué estar en el mismo centro de datos: lo importante es que los nodos de juego estén cerca de los jugadores.
Red y puertos
Wings recibe los comandos del panel por HTTPS en el puerto 8080 y ofrece SFTP a los usuarios en el 2022; los dos puertos deben estar abiertos, y para HTTPS el nodo necesita su propio dominio con certificado. Cada servidor de juego recibe sus propios puertos del rango que asignes (allocations), y también hay que permitirlos en el firewall. Los servidores de juegos públicos sufren ataques a menudo, así que para un nodo con juegos abiertos elige un proveedor con protección DDoS y, si puedes, deja el panel detrás de una restricción por IP.