Configura un servidor de Minecraft en Compute Engine

Este instructivo no está aprobado por Mojang o Minecraft ni está asociado con ninguno de ellos.

Para ejecutar un servidor de Minecraft dedicado, debes tener un servidor dedicado, además de RAM y ancho de banda suficientes. ¿Por qué no dejar que Google se encargue de estos requisitos por ti? En este instructivo, aprenderás cómo instalar, configurar y ejecutar un servidor estándar de Java Minecraft en Compute Engine. Este servidor es compatible con los clientes estándar de Minecraft de computadora de escritorio basados en Java.

Tu software del servidor de Minecraft se ejecutará en una instancia de Compute Engine, la cual es una máquina virtual que se ejecuta en la infraestructura de Google. En este instructivo, se usa el tipo de máquina predeterminado para las instancias de Compute Engine, n1-standard-1. El tipo de máquina n1-standard-1 incluye un disco de arranque de 10 GB, 1 CPU virtual (vCPU) y 3.75 GB de RAM. Este tipo de máquina ejecuta Debian Linux de forma predeterminada.

A fin de asegurarte de que haya espacio suficiente para los datos de mundos de tu servidor de Minecraft, también adjuntarás a la instancia una unidad de estado sólido (SSD) de 50 GB, persistente y de alto rendimiento. Con la incorporación de este SSD persistente, tu instancia satisfará los requerimientos del sistema para un servidor de Minecraft dedicado, que admite hasta 50 jugadores de forma cómoda.

Objetivos

  • Crear una instancia de máquina virtual de Compute Engine
  • Instalar y configurar el servidor de Minecraft
  • Configurar copias de seguridad automáticas para tus datos de mundo de Minecraft

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud Platform:

  • Máquinas virtuales de Compute Engine
  • Discos persistentes de Compute Engine
  • Cloud Storage

Para generar una estimación de costos en función del uso proyectado, usa la calculadora de precios. Los usuarios nuevos de GCP pueden optar por a una prueba gratuita.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En GCP Console, en la página de selección de proyecto, selecciona o crea un proyecto de GCP.

    Ir a la página de selección de proyecto

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

Crea y configura tu instancia de Compute Engine

Para empezar, crea y configura una nueva instancia de Compute Engine.

  1. En Cloud Console, ve a la página Instancias de VM:

    Ir a la página Instancias de VM

    Llegarás a un diálogo que te pedirá que crees una nueva instancia de Compute Engine.

  2. Haz clic en Crear para empezar.

  3. En la página Crear una instancia, configura tu instancia como se describe a continuación:

    • Asigna un nombre a tu instancia. En este instructivo se usa el nombre de instancia mc-server.
    • Selecciona la región y zona en la que deseas que se aloje tu instancia. En este instructivo se usan la región us-central1 (Iowa) y la zona us-central1-f.
    • En la sección Disco de arranque, haz clic en Cambiar. Aparecerá el diálogo Disco de arranque.
    • Cambia el tipo de disco a Disco persistente SSD.
  4. Haz clic en Seleccionar para confirmar el cambio y cerrar el diálogo.

Ya terminamos con la configuración básica. Pero todavía no crees tu instancia nueva. Para cumplir con los requisitos de un servidor de Minecraft dedicado, necesitarás establecer algunas configuraciones avanzadas.

Habilita el acceso de tu instancia a Cloud Storage

Más adelante en este instructivo, aprenderás cómo crear una copia de seguridad de tus datos de mundos en Cloud Storage, que requiere que tu instancia tenga acceso de lectura y escritura a Cloud Storage. Para habilitar el acceso, sigue estos pasos:

  1. En Identidad y acceso a la API, haz clic en el menú desplegable Cuenta de usuario y selecciona cuenta de servicio predeterminada de Compute Engine.
  2. Configura Alcances de acceso como Configurar el acceso para cada API.
  3. En el menú desplegable Almacenamiento, selecciona Lectura y escritura.

Etiqueta tu instancia

Luego, etiqueta tu instancia. Más adelante en el instructivo, usarás esta etiqueta para crear una regla de firewall que permitirá a los clientes externos de Minecraft acceder a tu servidor.

  1. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única para revelar una serie de pestañas de configuración avanzada.
  2. En la pestaña Herramientas de redes, agrega la etiqueta minecraft-server al campo Etiquetas de red.

Configura una dirección IP estática para tu instancia

Para poder reenviar las solicitudes entrantes a tu instancia de forma confiable, la instancia debe tener una dirección IP estática. Para agregar una dirección IP estática a tu instancia, haz lo siguiente:

  1. En la pestaña Herramientas de redes, en la sección Interfaces de redes, haz clic en Configuración predeterminada. Aparece el menú de configuración Interfaz de red.
  2. Haz clic en el menú desplegable IP externa y selecciona Crear dirección IP. Aparece un cuadro de diálogo:

    Crea una dirección IP estática nueva

  3. Asigna a la dirección IP el nombre mcs-ip.

  4. Haz clic en Reservar para crear la dirección.

  5. Haz clic en Listo para confirmar tus cambios y cerrar el menú de configuración de Interfaz de red.

Agrega un disco persistente a tu instancia

A continuación, adjuntarás un disco persistente a tu instancia. A diferencia de los discos de arranque, los discos persistentes no están vinculados a la vida de tu instancia de Compute Engine. Por ejemplo, si tu hosting requiere cambios con el paso del tiempo, puedes mover el disco a un tipo de máquina más adecuado más tarde.

El tipo específico de disco persistente que usarás en este instructivo es un disco persistente SSD. Este tipo de disco es compatible con operaciones de E/S muy rápidas, lo que puede contribuir a reducir el retraso del servidor.

Para agregar un disco persistente a tu instancia, sigue estos pasos:

  1. En la pestaña Discos, en la sección Discos adicionales, haz clic en Agregar nuevo disco. Aparece un diálogo de creación de disco:

    Crea un nuevo disco

  2. En el cuadro de diálogo, completa el formulario como se indica a continuación:

    • Nombre (Name): minecraft-disk
    • Tipo de disco: disco persistente SSD
    • Tipo de fuente (Source type): disco en blanco (Blank disk)
    • Tamaño (Size) (GB): 50
  3. Haz clic en Listo (Done). Cuando creas la instancia, el disco se creará y adjuntará automáticamente.

Crea tu instancia

Ya terminamos con la configuración de la instancia. Haz clic en el botón Crear en la parte inferior de la página para crear tu nueva instancia. Esta acción también te llevará de vuelta a la página Instancias de VM.

Formatea y activa tu disco persistente

En este punto, tu disco está vinculado a tu instancia, pero todavía no se activó en ella. Así debe ser: si activas el disco ahora, no podrías hacer mucho con él. Esto se debe a que, como cualquier otro disco, tu disco persistente primero debe formatearse con un sistema de archivos que el sistema operativo (en este caso, Debian Linux) pueda comprender.

Para comenzar, establece una conexión SSH con tu instancia. En la fila mc-server en la página Instancias de VM, haz clic en SSH para abrir una terminal de SSH basada en el navegador:

Terminal de SSH

Después de que se abra tu terminal de SSH, crea un directorio nuevo llamado minecraft en el directorio home de la instancia:

user@mc-server: sudo mkdir -p /home/minecraft

Usarás este directorio como un punto de activación para tu disco persistente.

A continuación, formatea tu disco:

user@mc-server: sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/google-minecraft-disk

Por último, activa tu disco:

user@mc-server: sudo mount -o discard,defaults /dev/disk/by-id/google-minecraft-disk /home/minecraft

Instala y ejecuta el servidor de Minecraft en tu instancia

Tu disco persistente está oficialmente activado. Ahora es momento de hacer la tarea principal: instalar y ejecutar tu servidor de Minecraft.

Configura Java Runtime Environment (JRE)

El servidor de Minecraft se ejecuta en la máquina virtual Java (JVM), por lo que es necesario ejecutar Java Runtime Environment (JRE). Debido a que el servidor no necesita una interfaz gráfica de usuario, en este instructivo se usa la versión sin interfaz gráfica del JRE. Este enfoque reduce el uso de recursos de JRE en la máquina, lo que ayuda a garantizar que el servidor de Minecraft tenga suficiente espacio para expandir su propio uso de recursos si es necesario.

Necesitarás actualizar los repositorios de Debian en tu instalación de Debian antes de descargar y, luego, instalar la versión sin interfaz gráfica del JRE. Para esto, ejecuta el comando siguiente en tu terminal de SSH:

user@mc-server: sudo apt-get update

Después de actualizar tus repositorios, puedes instalar el JRE sin interfaz gráfica:

user@mc-server: sudo apt-get install -y default-jre-headless

Instala el servidor de Minecraft

Ahora que configuraste el JRE, es momento de descargar y, luego, instalar el servidor de Minecraft. Primero, navega a tu directorio minecraft:

user@mc-server: cd /home/minecraft

Debido a que el directorio de minecraft contiene tu disco persistente activado, necesitarás un nivel de acceso especial conocido como acceso de usuario raíz para ejecutar comandos en él. Ejecuta lo siguiente para convertirte en el usuario raíz:

user@mc-server: sudo su

Luego, descarga el archivo de Java (JAR) del servidor de Minecraft actual a tu instancia: Visita la página de descarga de Minecraft, copia la URL del archivo desde el vínculo de descarga y, luego, reemplaza la URL en el siguiente comando con esa URL.

root@mc-server: wget https://launcher.mojang.com/v1/objects/f1a0073671057f01aa843443fef34330281333ce/server.jar

Inicia el servidor por primera vez:

root@mc-server: java -Xms1G -Xmx3G -d64 -jar server.jar nogui

La primera ejecución no es muy interesante: el servidor solo se inicia, ejecuta algunas operaciones rápidas y se detiene. Sin embargo, si ejecutas el comando siguiente, notarás que se crearon algunos archivos nuevos en el directorio de minecraft:

root@mc-server: ls -l

Entre estos archivos nuevos, encontrarás un archivo llamado eula.txt. Abre este archivo para editarlo:

root@mc-server: nano eula.txt

Este archivo contiene una sola variable booleana, eula. Para usar el servidor de Minecraft, debes aceptar los términos del Contrato de Licencia para el Usuario Final de Minecraft (CLUF). Si aceptas los términos del CLUF, configura el valor de eula de false a true, luego guarda y cierra.

Ejecuta el servidor de Minecraft

Si inicias el servidor de Minecraft de nuevo en esta etapa, estará vinculado a la vida de tu sesión SSH; es decir, si cierras tu terminal de SSH, el servidor también se cerrará. Para solucionar este problema, puedes usar screen, una aplicación que te permite crear una terminal virtual que se puede "separar" y ejecutar como un proceso en segundo plano, o "reconectar" y ejecutar como un proceso en primer plano. Cuando una terminal virtual se separa para iniciar el proceso en segundo plano, se ejecutará ya sea que hayas accedido al sistema o no.

En tu terminal de SSH, ejecuta lo siguiente para instalar screen:

root@mc-server: apt-get install -y screen

Luego, inicia tu servidor de Minecraft en una terminal virtual de screen. Usa la marca -S a fin de establecer el nombre mcs para tu terminal:

root@mc-server: screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui

Para separar la terminal screen, presiona Ctrl + a y, luego, escribe d. La terminal seguirá ejecutándose en segundo plano. Para volver a conectar la terminal, ejecuta screen -r <terminal_name> de la siguiente manera:

root@mc-server: screen -r mcs

Por último, desconecta tu terminal screen de nuevo si es necesario. Escribe exit una vez para salir del modo de usuario raíz y, luego, vuelve a escribir exit a fin de cerrar la conexión SSH.

Felicitaciones Ya tienes un servidor de Minecraft en funcionamiento. Sin embargo, todavía no está listo para compartirse. Antes de que puedas compartir tu servidor, necesitas configurar una regla de firewall que permitirá que las personas accedan a él.

Permite que los clientes accedan al servidor de Minecraft

A fin de reenviar solicitudes entrantes a tu instancia de forma confiable, necesitarás crear una regla de firewall. Para ello, sigue estos pasos:

  1. En Cloud Console, ve a la página Reglas de firewall.

    Ir a la página Reglas de firewall

  2. Haz clic en Crear regla de firewall.

  3. En la página Crear una regla de firewall, completa el formulario como se muestra a continuación:

    • Nombre: minecraft-rule
    • Etiquetas de destino: minecraft-server
    • Filtro de fuente: rangos de IP
    • Rangos de IP de origen: 0.0.0.0/0
    • Protocolos o puertos: selecciona tcp y, luego, ingresa el puerto 25565 en el campo proporcionado.
  4. Haz clic en Crear para crear tu nueva regla de firewall. Los usuarios ahora pueden acceder a tu servidor desde sus clientes de Minecraft locales.

Configura el servidor de Minecraft

Es posible que quieras editar las propiedades predeterminadas del servidor. Para ello, sigue estos pasos:

  1. Vuelve a conectar la terminal screen del servidor.

    root@mc-server: screen -r mcs
  2. Ingresa \stop para detener el servidor de Minecraft.

  3. Edita el archivo server.properties. Puedes encontrar información sobre cada tipo de propiedad y sus valores posibles en la página server.properties de la Wiki de Minecraft.

    $ nano server.properties
  4. Reinicia el servidor.

    root@mc-server: screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
  5. Desconecta la terminal screen.

Programa copias de seguridad periódicas

Ya sea que estés ejecutando un cliente de Minecraft local o un servidor de Minecraft, es recomendable que hagas copias de seguridad de tus datos mundiales de Minecraft con regularidad. En esta sección se muestra cómo configurar copias de seguridad periódicas de datos de mundo con Cloud Storage.

Cloud Storage ofrece varias clases de almacenamiento diferentes que están optimizadas para diferentes casos prácticos. En este instructivo se usa Standard Storage, que proporciona hasta 5 GB por mes sin cargo.

Crea una secuencia de comandos de copia de seguridad

Primero, establece una conexión SSH con tu instancia desde la página Instancias de VM en Cloud Console. Después de que se abra la terminal, conviértete en el usuario raíz:

user@mc-server: sudo su

Para crear un depósito nuevo de Standard Storage de Cloud Storage, reemplaza us-central1 con la región de Cloud Storage más cercana y [PROJECT_ID] con el ID del proyecto. Usarás este depósito para almacenar tus copias de seguridad.

root@mc-server: gsutil mb -c standard -l us-central1 gs://[PROJECT_ID]-minecraft-backup

Luego, crea un archivo nuevo de secuencia de comandos de shell, backup.sh, en tu carpeta minecraft, y ábrelo para editarlo.

root@mc-server: nano /home/minecraft/backup.sh

Pega la siguiente secuencia de comandos en el archivo. Reemplaza [BUCKET_NAME] con el nombre de tu depósito de Cloud Storage:

#!/bin/bash
screen -r mcs -X stuff '/save-all\n/save-off\n'
/usr/bin/gsutil cp -R ${BASH_SOURCE%/*}/world gs://[BUCKET_NAME]/$(date "+%Y%m%d-%H%M%S")-world
screen -r mcs -X stuff '/save-on\n'

Esta secuencia de comandos empieza por guardar el estado actual de tus datos de mundos y pausar la funcionalidad de guardado automático del servidor. A continuación, la secuencia de comandos realiza una copia de seguridad del directorio de datos de mundos del servidor (world) y coloca su contenido en un directorio ([TIMESTAMP]-world) con marca de tiempo en tu depósito de Cloud Storage. Una vez que la secuencia de comandos finaliza la copia de seguridad de los datos, se reanuda el guardado automático en el servidor de Minecraft.

Guarda y cierra; luego, ejecuta lo siguiente para que tu secuencia de comandos sea ejecutable:

root@mc-server: chmod 755 /home/minecraft/backup.sh

Prueba la secuencia de comandos:

root@mc-server: /home/minecraft/backup.sh

Una vez que finalice la secuencia de comandos, visita el navegador de almacenamiento en Cloud Console y haz clic en tu depósito. Deberías ver una copia de seguridad de tu directorio world con una marca de tiempo.

Programa un trabajo cron

A menos que prefieras inicializar cada copia de seguridad de forma manual, es probable que quieras que tu secuencia de comandos se ejecute de forma automática a intervalos predecibles. Para realizar esta tarea, necesitas programar un nuevo trabajo cron.

Si quieres programar un trabajo cron, primero abre la tabla de cron para editar:

root@mc-server: crontab -e

Desplázate hasta la parte inferior del archivo y pega la siguiente línea, que especifica que backup.sh se ejecutará cada 4 horas:

0 */4 * * * /home/minecraft/backup.sh

Guarda y cierra.

Listo. Ahora, tu instancia de Compute Engine hará automáticamente una copia de seguridad de tus datos mundiales en un depósito de Cloud Storage cada 4 horas.

Quita las copias de seguridad antiguas de forma automática

Si haces copias de seguridad de tus datos de mundos cada 4 horas, significa que haces copias 6 veces por día, 72 veces por semana y, aproximadamente, 300 veces por mes. Puedes quitar copias de seguridad antiguas automáticamente si usas una característica de Cloud Storage denominada Administración del ciclo de vida de los objetos. Esta característica te permite configurar tu depósito de Cloud Storage para archivar o borrar automáticamente las copias de seguridad antiguas después de un período de tiempo determinado o si hay nuevas copias de seguridad disponibles.

Para configurar tu depósito de Cloud Storage de modo que quite las copias de seguridad de forma automática, haz esto:

  1. Abre el navegador de Cloud Storage en Cloud Console:

    Ir al navegador de Cloud Storage

  2. En la lista de depósitos, encuentra tu depósito de copias de seguridad de Minecraft.

  3. Haz clic en Ninguno en la columna del depósito Ciclo de vida. Aparece la página Ver reglas del ciclo de vida de los objetos.

  4. Haz clic en Agregar regla.

  5. En la sección Seleccionar condiciones de objetos, selecciona Edad. Configura la antigüedad en 7 días y haz clic en Continuar.

  6. En la sección Seleccionar acción, selecciona Borrar y haz clic en Continuar.

  7. Haz clic en Guardar para guardar la configuración. Esto te hace volver a la página Ver reglas del ciclo de vida de los objetos.

Las copias de seguridad se borrarán una semana después de que tu secuencia de comandos las envíe a Cloud Storage.

Cierra tu servidor de Minecraft

Si no necesitas ejecutar tu servidor de Minecraft, deberías cerrarlo para no incurrir en gastos innecesarios.

Primero, establece una conexión SSH con tu instancia desde la página Instancias de VM en Cloud Console. Después de que se abra la terminal, para detener el servidor de Minecraft, pasa un comando \stop a la terminal de screen en la que se está ejecutando.

user@mc-server: sudo screen -r -X stuff '/stop\n'

Ahora que detuviste tu servidor de Minecraft, puedes cerrar tu instancia con seguridad. En la página de VM Instances, haz clic en el nombre de tu instancia y, luego, en el botón Detener en la parte superior de la página. Saldrás de tu sesión SSH.

Para iniciar tu instancia de nuevo, visita la página de tu instancia y haz clic en el botón Iniciar en la parte superior. Para iniciar el servidor de Minecraft de nuevo, puedes establecer una conexión SSH con la instancia, volver a activar tu disco persistente y, luego, iniciar el servidor de Minecraft en una terminal de screen nueva, como se describe en la sección Ejecuta el servidor de Minecraft.

Automatiza los procedimientos de inicio y apagado

Si tienes planeado cerrar tu servidor regularmente, considera agregar secuencias de comandos de inicio y cierre a tu instancia a fin de automatizar los procedimientos comunes de inicio y cierre. Puedes automatizar el procedimiento de inicio como se describe a continuación:

  1. Ve a la página Instancias de VM en Cloud Console:

    Ir a la página Instancias de VM

  2. Haz clic en el nombre de tu instancia.

  3. Haz clic en Editar.

  4. En la sección Metadatos personalizados, agrega una clave nueva llamada startup-script y copia la siguiente secuencia de comandos en el campo Valor:

    #!/bin/bash
    mount /dev/disk/by-id/google-minecraft-disk /home/minecraft
    (crontab -l | grep -v -F "/home/minecraft/backup.sh" ; echo "0 */4 * * * /home/minecraft/backup.sh")| crontab -
    cd /home/minecraft
    screen -d -m -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
    

Cuando reinicies la instancia, esta secuencia de comandos activará de forma automática el disco de Minecraft en el directorio apropiado, reinstalará el trabajo cron si es necesario, iniciará el servidor de Minecraft en una sesión de screen y separará la sesión.

Para automatizar el procedimiento de apagado, agrega otra clave llamada shutdown-script y copia lo siguiente en el campo Valor:

#!/bin/bash
/home/minecraft/backup.sh
sudo screen -r mcs -X stuff '/stop\n'

En la parte inferior de la página, haz clic en Guardar para confirmar tus cambios. Cuando detengas la instancia, esta secuencia de comandos creará una copia de seguridad de los últimos datos de juego y detendrá tu servidor de Minecraft antes de que se cierre la instancia.

Pasos siguientes

Visita la Wiki de Minecraft

La Wiki de Minecraft ofrece una gran cantidad de recursos útiles para los jugadores de Minecraft y los administradores de servidores de Minecraft.

Prueba un servidor de Minecraft alternativo

El servidor de Minecraft convencional que instalaste con este instructivo es tan solo uno de los numerosos servidores de Minecraft disponibles. Visita la página de servidores personalizados en la Wiki de Minecraft si quieres consultar la lista de los servidores alternativos optimizados para tipos de juego, requisitos de máquina, modificaciones sencillas y más.

Prueba otros instructivos

Prueba otras funciones de Google Cloud Platform. Revisa nuestros instructivos.