El sueño de todo jugador de Minecraft (sin arruinarte)
Siempre llega esa época del año en la que te juntas con tus amigos y se os ocurre la magnífica idea de hacer un servidor de Minecraft. Alguien sugiere hacerlo en su ordenador, pero eso siempre es mala idea porque dependes de que esa persona tenga el PC encendido todo el rato. Y sabemos que eso es imposible.
También miras precios de servidores por ahí y aunque no son muy caros, a decir verdad, están sobrevalorados para la potencia que te ofrecen. Y vosotros queréis un servidor bueno, que aguante bastantes jugadores o que aguante todos los mods que le vais a poner.
Pues amigos míos, el día de hoy os voy a enseñar a cómo tener vuestro propio servidor de Minecraft gestionado por vosotros. Obviamente abierto 24/7. Y con nada más y nada menos que 24 GB de RAM y 4 núcleos de procesador. Un servidor que va a soportar todo lo que le eches y más, va a aguantar como una fiera.
¿Y el precio? Me preguntaréis. En efecto, no es clickbait: el precio son 0€. Y es que es gratis. ¿Gratis para siempre? Sí, sí. Para siempre.
Voy a enseñaros cómo configurarlo y gestionarlo también con Crafty Controller, una herramienta para la gestión de servidores de Minecraft que si quieres aprender de ella, este también es tu video. Ya veréis como va a ser de gran utilidad para lo que queremos hacer.
Así que si os interesa algo de lo que he mencionado, quedaos en el post.
Una cosa súper importante antes de comenzar
Si os gustan este tipo de contenidos enfocados hacia la tecnología y la programación, te pido por favor que me dejes un like en el video y por qué no, suscríbete al canal. Ya que siempre traemos videos muy interesantes, como ya he dicho de tecnología, y estoy seguro que más de uno te va a gustar.
PREREQUISITO: Necesitas el servidor de Oracle
Para conseguir el servidor lo expliqué en el video anterior de este. Este sería como su segunda parte o como una extensión. Ahí explicó paso a paso cómo conseguir un servidor de Oracle y os lo explico todo.
Ya dije en ese video que haría una serie de tutoriales de cosas que hacer en ese propio servidor. Y este es uno de ellos. Mucha gente ya me ha dicho en los comentarios que lo tiene configurado, así que os recomiendo pasaros por ahí y hacerlo porque vais a necesitar eso para continuar con este tutorial.
Sin él no podréis continuar a no ser que ya tengáis vuestro propio servidor. Así que avisados estáis.
Puedes ver ese tutorial aquí: Consigue un servidor GRATIS de 24GB RAM
Paso 1: Crear la instancia en Oracle
Esto es algo que ya hicimos en el video que os acabo de mencionar. Pero bueno, si hay algún rezagado o quieres volverlo a ver, aquí te dejo un resumen rápido:
- Entra en Oracle Cloud y crea una nueva instancia
- Selecciona la opción de Always Free con arquitectura ARM
- Configura la instancia con los 24GB de RAM y 4 núcleos
- Guardaos bien la clave SSH privada que la vamos a usar para conectarnos después y configurar el resto de cosas
Con esto ya tenemos nuestra instancia, nuestra IP pública y podemos pasar al siguiente paso.
Paso 2: Abrir los puertos (MUY IMPORTANTE)
Este paso es necesario para que el servidor sea accesible. Así que lo que vamos a hacer es buscar la instancia y entrar en el detalle.
Ahí nos vamos a ir a Virtual Cloud Network y vamos a pulsar sobre el enlace azul que hay.
Luego: Subnets → Security → Default Security List → Security Rules → Add Ingress Rules
Es súper importante abrir estos puertos en concreto. Debéis de hacerlo igual que yo, poniendo:
- Source CIDR:
0.0.0.0/0 - Destination Port Range: (ver tabla abajo)
- IP Protocol: TCP o UDP según el puerto
Puertos a abrir:
| Puerto | Protocolo | Descripción |
|---|---|---|
| 8443 | TCP | Panel de Crafty Controller |
| 8123 | TCP | Dynmap (mapa web del servidor) |
| 25500-25600 | TCP | Rango de puertos para servidores Java Edition |
| 19132 | UDP | Servidores Minecraft Bedrock Edition |
Ojito con el puerto 25500-25600 que es un rango y hay que poner un guión especial. El guión normal del teclado a veces no funciona, así que si te da error de validación, prueba a copiarlo de aquí: 25500‐25600
No os dejéis nada por rellenar porque esto es crucial para que os funcione.
Básicamente lo que estamos haciendo es abrir los puertos para exponer a Internet, entre otras cosas, el panel que vamos a usar para configurar el servidor (el 8443). El resto ya es para los propios servidores de Minecraft.
Paso 3: Conectarnos por SSH al servidor
Para conectarnos vamos a abrir una terminal. Me da igual qué terminal utilicéis, podéis utilizar el CMD de Windows, da absolutamente igual. Aunque yo utilizo Warp, que es una terminal con inteligencia artificial que es gratis, que me gusta mucho. Si os interesa, búscala, pero no es obligatorio utilizarla.
Dar permisos a la clave SSH
Lo primero que vamos a hacer es darle permiso a la clave SSH que hemos descargado.
Si estás en Windows:
$key = "C:\ruta\a\tu\clave_privada.key"
icacls $key /inheritance:r
icacls $key /grant:r "$($env:USERNAME):(R)"
icacls $key /remove "NT AUTHORITY\Authenticated Users"
icacls $key /remove "BUILTIN\Users"
Si estás en Linux o Mac:
chmod 600 /ruta/a/tu/clave_privada.key
Fijaos que hay que cambiar la ruta por la ruta real de vuestra clave SSH.
Conectarse al servidor
Hecho esto, nos vamos a conectar por SSH referenciando ese archivo de clave privada que tenemos y la IP de nuestro servidor:
ssh -i /ruta/a/tu/clave_privada.key ubuntu@TU_IP_PUBLICA
Recordad que la IP estaba en el apartado de instancias en Oracle Cloud.
Y ya estamos conectados al servidor. ¡Vamos a por ello!
Paso 4: Instalar Docker
Una vez conectados vamos a instalar Docker para que nos permita meter el servidor en un contenedor. Esto es muy práctico hacerlo porque si queréis usar el servidor para otras cosas, lo ideal es localizar cada cosa que quieres hacer y así lo tienes como separado en contenedores.
Por ejemplo, si quisieras tener N8N aparte podrías hacerlo si lo queréis. Así que, por cierto, tengo un tutorial de cómo instalar N8N, pero eso es otra historia.
Comandos de instalación de Docker:
sudo apt-get update
sudo apt-get upgrade -y
curl -fsSL test.docker.com -o get-docker.sh && sh get-docker.sh
Esperad a que termine la instalación. Luego añadimos el usuario actual al grupo de Docker:
sudo usermod -aG docker $USER
Simplemente tenéis que seguir los comandos y copiarlos y pegar. La instalación de Docker y asignar el usuario actual al grupo de Docker no tiene más misterio.
Paso 5: Configurar el firewall del servidor (iptables)
Una vez termine el proceso, vamos a hacer otro paso súper importante: a veces el propio servidor dentro de Ubuntu te viene con un firewall ya configurado e instalado.
Y este firewall nos limita que ciertos puertos del servidor puedan salir al exterior y entre ellos, como no, están los puertos que hemos abierto. Que aunque los hayamos abierto en Oracle, hay que configurarlos también en el firewall interno.
El firewall es iptables y los comandos son estos:
sudo iptables -I INPUT 4 -p tcp --dport 8443 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p tcp --dport 8123 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p tcp --dport 25500:25600 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p udp --dport 19132 -m state --state NEW -j ACCEPT
Si os fijáis, son los mismos puertos. Haciendo referencia a lo que mencioné antes:
- 8443 es para entrar al panel de administración de Crafty Controller
- 8123 es para el Dynmap (el mapa web)
- 25500-25600 es el rango típico de puertos de servidores de Minecraft (aunque os sonará que el clásico es el 25565)
- 19132 es para los servidores de Minecraft Bedrock Edition (porque sí, también se puede desplegar un servidor de Bedrock. Aquí no echamos feos a nada)
Paso 6: Crear el docker-compose.yml
En fin, Serafín. Una vez abiertos los puertos, vamos a configurar el Docker Compose. Para eso vamos a crear un fichero nuevo con Nano:
nano docker-compose.yml
Se nos abrirá este editor de texto. Y aquí vamos a pegar esta configuración:
services:
crafty:
container_name: crafty_container
image: arcadiatechnology/crafty-4:nightly
restart: always
environment:
- TZ=Europe/Madrid
ports:
- "8443:8443" # HTTPS panel Crafty
- "8123:8123" # Dynmap
- "19132:19132/udp" # Bedrock
- "25500-25600:25500-25600" # Minecraft servers port range
volumes:
- ./docker/backups:/crafty/backups
- ./docker/logs:/crafty/logs
- ./docker/servers:/crafty/servers
- ./docker/config:/crafty/app/config
- ./docker/import:/crafty/import
Es básicamente un contenedor. Ojito ahí, personalizado de Crafty Controller. ¿Por qué digo personalizado? Porque el original no está preparado para la arquitectura de este servidor, que es una arquitectura ARM.
Pero ya he encontrado yo esta configuración de aquí (arcadiatechnology/crafty-4:nightly) para que os funcione y no tengáis ningún problema.
Guardar y levantar el contenedor
Una vez pegada la configuración, cerramos con Ctrl + X, le damos Y para que guarde, y luego Enter.
Ahora levantamos el contenedor:
sudo docker compose up -d
Y ahora ya estaremos viendo cómo se descarga el contenedor y se configura. Solo tenéis que tener un poco de paciencia y esperar.
Paso 7: Acceder al panel de Crafty Controller
Una vez completado, lo que tenemos que hacer es coger la IP del servidor, esa misma con la que nos hemos conectado, ponerla en el navegador seguida de :8443:
https://TU_IP_PUBLICA:8443
Y como veis, aquí nos sale la pantalla de login de Crafty Controller. Si has llegado hasta aquí te doy la enhorabuena porque lo más difícil ya ha pasado. Esto ya es coser y cantar.
Si no has podido llegar hasta aquí, déjame un comentario en el video y entre toda la comunidad te intentaremos ayudar.
Obtener las credenciales de acceso
Vemos que nos pide un usuario y contraseña. Para saberlo tenemos que entrar de nuevo a la terminal del servidor.
Como podemos ver, donde hemos creado el YAML del Docker Compose se nos han generado unas carpetas. Hay que entrar a ellas:
cd docker/config
Ahí tenemos un fichero llamado default-creds.txt. Vamos a hacerle un cat para abrirlo y ver lo que tiene:
cat default-creds.txt
Si le hacemos un CAT podremos ver su contenido y como veis aquí tiene un usuario y una contraseña. No tiene más, una contraseña por ahí larguísima. Pues ya está, tenemos que copiarla y pegarla para poder acceder.
Paso 8: Configurar el panel de Crafty
¡Y tachán! Aquí tenemos el servidor con las métricas que ahora mismo están a cero, pero ya tenemos acceso al panel del servidor.
Recomendación de seguridad
Una recomendación aquí es que ya nos sale en rojo: Activar el segundo factor de autenticación para que nadie os ataque vuestro servidor. Y yo también cambiaría la contraseña, que en teoría es aleatoria cada vez que generas esto, pero nunca está demás poner tu tu propia contraseña.
Paso 9: Crear tu primer servidor de Minecraft
Entonces para crear el servidor vamos a ir a Servers → Create a New Server.
Lo primero que nos pide es el tipo de servidor. Aquí seleccionamos Minecraft Servers y ahora viene la parte interesante: elegir qué tipo de instalación queremos.
Podemos elegir entre un montón de opciones. Si no vais a poner mods ni plugins, entonces lo quereis Vanilla, que es el Minecraft tal cual sale de la caja. Pero también tenéis Forge si queréis meter mods, Spigot o Paper si preferís plugins, Fabric para mods más ligeros… vamos, que tenéis donde elegir.
Después nos pregunta la versión del servidor. Yo recomiendo dejar la última, pero si queréis jugar en una versión específica, aquí podéis elegir la que os dé la gana.
Luego nos pide un nombre para el servidor. Esto es básicamente para identificarlo en el panel, así que poned lo que queráis: “Servidor con los colegas”, “Mi super server”, lo que sea.
Y ahora viene lo importante: la memoria RAM. Como veis, nos deja poner un mínimo y un máximo. Mi consejo es que si este servidor solo lo vais a usar para Minecraft, pongáis los 24 gigas que tenemos disponibles, adelante con todo. Pero si lo queréis usar para otras cosas, podéis reducirlo. Por ejemplo, mínimo 8GB y máximo 20GB, dejando margen para otras aplicaciones.
En cuanto al puerto del servidor, vamos a dejar el predefinido que es el 25565, el puerto de por defecto de Minecraft. Así no tenéis que andar configurando nada raro en el cliente.
Una cosa que mola mucho es que aparte de crear un servidor desde cero, tenéis otro apartado donde podéis importar un servidor existente que ya tengáis montado. Lo podéis hacer desde el sistema de archivos o incluso subiendo un zip comprimido. Por eso me gusta este panel, porque nos permite personalizar al máximo la creación del servidor.
Paso 10: Iniciar el servidor
Le damos en Build Server y en Acciones veréis un símbolo de Play, eso es para iniciar el servidor. Así que le damos y nos aparecerá un modal para confirmar el EULA (los términos y condiciones), le damos que sí y esperamos a que inicie.
Pequeño problema con Brave
Una cosa curiosa aquí es que me decía que se iba a recargar solo, pero como tengo el navegador Brave que te bloquea lo que considera publicidad y otras cookies, pues me daba problemas y lo tuve que desactivar. Nada más.
Y como veis, ya lo tenemos listo y tenemos aquí lista la terminal del servidor.
Paso 11: Configurar permisos de administrador
Por ejemplo, yo voy a hacer OP a mi usuario para así poder tener permisos de administrador. En la terminal del servidor escribo:
op TuNombreDeUsuario
Y listo, ya tengo permisos de administrador en el servidor.
Características del panel de Crafty Controller
También podemos ver varias cosas interesantes:
Logs
Donde puedes ver todo lo que está pasando en el servidor en tiempo real.
Programar eventos
Hay configuración para programar eventos, para hacer copias de seguridad. Ojito porque es muy personalizable, podéis hacer backup cuando queráis, o programarlo automáticamente cada X horas o días.
Gestor de ficheros
También tenemos el gestor de ficheros, donde podréis:
- Editar cualquier fichero
- Eliminar archivos
- Descargar archivos
- Renombrar archivos
- Crear directorios
Vamos, lo típico que se hace en cualquier editor de ficheros.
Configuración avanzada
A parte tenemos configuración más avanzada del servidor e incluso métricas en tiempo real de CPU, RAM, jugadores conectados, etc.
Server Status
Incluso hay una página de Server Status que se puede elegir si la quieres o no. Jaja, bueno, no le veo mucha utilidad pero ahí la tenéis.
Momento de la verdad: ¡Probamos que funciona!
Pero bueno, vamos a lo importante, al momento de la verdad. Vamos a verificar que todo el trabajo que hemos hecho funciona.
Abrimos Minecraft y añadimos un servidor nuevo con nuestra IP pública:
TU_IP_PUBLICA:25565
Le damos a Conectar y dejamos que cargue…
¡Y tachán! Aquí tenemos nuestro servidor, que os prometo que funciona de maravilla. Vamos, con que os diga que yo siempre que he comprado servidores con amigos han sido de máximo 10GB de RAM y aquí tenemos 24… simplemente una locura.
¿Qué más puedo hacer con esto?
Como veis, el panel de Crafty Controller es una pasada y se le puede sacar mucho jugo. Por ejemplo, si queréis poner mods, solo tenéis que elegir Forge cuando creéis el servidor y luego desde el gestor de archivos podéis ir cargando los mods que queráis. Es tan simple como subirlos a la carpeta correspondiente.
Lo mismo con los plugins. Si elegís Spigot o Paper, podéis instalar los plugins que os dé la gana y personalizar el servidor a tope. Que si quieres economía, que si quieres protección de zonas, que si quieres minijuegos… lo que se os ocurra.
Otra cosa que mola un montón es el Dynmap. Esto es básicamente un mapa web en tiempo real de vuestro servidor. Los jugadores pueden verlo desde el navegador y ver dónde están todos. Súper útil si tenéis una comunidad grande.
Y si 24GB os parecen mucho para un solo servidor, podéis crear múltiples servidores dividiendo los recursos. Por ejemplo, uno de supervivencia con 16GB y otro de creativo con 8GB. O uno de Vanilla y otro con mods. Las posibilidades son infinitas.
Ah, y no olvidéis configurar los backups automáticos. En serio, esto es lo primero que deberíais hacer. Programad copias de seguridad cada día o cada semana, porque nunca se sabe cuándo alguien puede liarla parda y necesitáis restaurar el servidor.
Conclusión
Así que si has llegado hasta aquí te doy la enhorabuena por aguantarme tanto rato y si te ha servido y quieres apoyar al blog/canal con un pequeño gesto, lo que dije antes me ayudaría mucho un like en el video y si ya te suscribes ni te cuento.
Si estás teniendo algún problema siguiendo este tutorial o piensas que también podría explicar otra cosa, déjamelo en los comentarios del video porque me dedico a leerlos todos. Intento contestar la mayoría, así que te veo por ahí por los comentarios. A ver qué me dices.
Muchas gracias por leer el post y nos vemos en el próximo.
Resumen de comandos importantes
Por si lo necesitas, aquí tienes todos los comandos juntos:
# Actualizar el sistema
sudo apt-get update
sudo apt-get upgrade -y
# Instalar Docker
curl -fsSL test.docker.com -o get-docker.sh && sh get-docker.sh
sudo usermod -aG docker $USER
# Configurar iptables
sudo iptables -I INPUT 4 -p tcp --dport 8443 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p tcp --dport 8123 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p tcp --dport 25500:25600 -m state --state NEW -j ACCEPT
sudo iptables -I INPUT 4 -p udp --dport 19132 -m state --state NEW -j ACCEPT
# Crear docker-compose.yml
nano docker-compose.yml
# Levantar el contenedor
sudo docker compose up -d
# Ver las credenciales
cd docker/config
cat default-creds.txt
¡A disfrutar de vuestro servidor!