Minecraft es uno de los juegos más populares de todos los tiempos. Es un videojuego de sandbox sobre colocar bloques y emprender aventuras.
En este tutorial, seguiremos los pasos necesarios para instalar y configurar Minecraft Server en CentOS 7. Usaremos Systemd para ejecutar el servidor de Minecraft y mcrcon
utilidad para conectarse a la instancia en ejecución. También le mostraremos cómo programar copias de seguridad automáticas del servidor mediante un trabajo Cron.
Requisitos previos #
El usuario con el que inició sesión debe tener privilegios sudo para poder instalar paquetes.
Instale los paquetes necesarios para construir el mcrcon
herramienta:
sudo yum install git
sudo yum group install "Development Tools"
Instalando Java Runtime Environment #
Minecraft requiere Java 8 o superior. Debido a que Minecraft Server no necesita una interfaz gráfica de usuario, instalaremos la versión sin interfaz de openjdk. Esta versión es más adecuada para aplicaciones de servidor ya que tiene menos dependencias y utiliza menos recursos del sistema.
La instalación de Java es bastante simple, simplemente ejecute:
sudo yum install java-1.8.0-openjdk-headless
Verifique la instalación imprimiendo la versión de Java:
java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Creación del número de usuario de Minecraft
No se recomienda ejecutar servicios como Minecraft bajo el usuario raíz por razones de seguridad.
Crearemos un nuevo usuario y grupo del sistema minecraft
con el directorio de inicio /opt/minecraft
que ejecutará el servidor de Minecraft:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
No vamos a establecer una contraseña para este usuario. Esta es una buena práctica de seguridad porque este usuario no podrá iniciar sesión a través de SSH. Para cambiar al minecraft
usuario deberá iniciar sesión en el servidor como root o usuario con privilegios sudo.
Instalando Minecraft en CentOS #
Antes de comenzar con el proceso de instalación, asegúrese de cambiar a usuario minecraft
:
sudo su - minecraft
Cree tres nuevos directorios dentro del directorio de inicio del usuario usando el siguiente comando:
mkdir -p ~/{backups,tools,server}
- Las
backups
El directorio almacenará la copia de seguridad de su servidor. Posteriormente, puede sincronizar este directorio con su servidor de respaldo remoto. - Las
tools
directorio almacenará elmcrcon
cliente y el script de copia de seguridad. - El
server
El directorio contendrá el servidor de Minecraft real y sus datos.
Descargando y Compilando mcrcon #
RCON es un protocolo que le permite conectarse a los servidores de Minecraft y ejecutar comandos. cliente mcronis RCON construido en C.
Descargaremos el código fuente de GitHub y construiremos el mcrcon
binario.
Comience moviéndose a ~/tools
directorio y clone el Tiiffi/mcrcon
repositorio de GitHub usando el siguiente comando:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
Una vez clonado el repositorio, navegue a su directorio:
cd ~/tools/mcrcon
Construye el mcrcon
utilidad usando el compilador GCC:
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
Cuando haya terminado, pruébelo escribiendo:
./mcrcon -h
La salida se verá así:
Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to Minecraft server.
Option:
-h Print usage
-H Server address
-P Port (default is 25575)
-p Rcon password
-t Interactive terminal mode
-s Silent mode (do not print received packets)
-c Disable colors
-r Output raw packets (debugging and custom handling)
-v Output version information
Server address, port and password can be set using following environment variables:
MCRCON_HOST
MCRCON_PORT
MCRCON_PASS
Command-line options will override environment variables.
Rcon commands with arguments must be enclosed in quotes.
Example:
mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop
mcrcon 0.6.1 (built: May 19 2019 23:39:16)
Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/
Descargando servidor Minecraft #
Hay varias modificaciones de servidor de Minecraft como Craftbukkitor Spigot que le permiten agregar funciones (complementos) en su servidor y personalizar y modificar aún más la configuración del servidor. En este tutorial, instalaremos el último servidor Vanilla Minecraft oficial de Mojang.
El último archivo Java (JAR) del servidor de Minecraft está disponible para su descarga desde la página de descargas de Minecraft.
En el momento de escribir este artículo, la última versión es 1.14.1
. Antes de continuar con el siguiente paso, debe consultar la página de descarga para obtener una nueva versión.
Ejecute el siguiente wget
comando para descargar el archivo jar de Minecraft en el ~/server
directorio:
wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server
Configuración del servidor de Minecraft #
Navegue hasta el ~/server
directorio e inicie el servidor de Minecraft:
cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui
Cuando inicia el servidor por primera vez, ejecuta algunas operaciones y crea el server.properties
y eula.txt
archivos y paradas.
[14:33:44] [main/ERROR]: Failed to load properties from file: server.properties
[14:33:45] [main/WARN]: Failed to load eula.txt
[14:33:45] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Deberá aceptar el EULA de Minecraft para ejecutar el servidor. Abra el eula.txt
archivo y cambie eula=false
a eula=true
:
nano ~/server/eula.txt
~/server/eula.txt#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun May 19 23:41:45 PDT 2019
eula=true
Cierra y guarda el archivo.
A continuación, abra server.properties
archivo, habilite el protocolo rcon y configure la contraseña rcon:
nano ~/server/server.properties
Localice las siguientes líneas y actualice sus valores como se muestra a continuación:
~/servidor/servidor.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
No olvide cambiar la strong-password
a algo más seguro. Si no desea conectarse al servidor de Minecraft desde ubicaciones remotas, asegúrese de que su firewall bloquee el puerto rcon. Mientras esté aquí, también puede ajustar las propiedades predeterminadas del servidor. Para obtener más información sobre las posibles configuraciones, visite la página server.properties.
Creando archivo de unidad Systemd #
Para ejecutar Minecraft como un servicio, crearemos un nuevo archivo de unidad Systemd.
Vuelva a su usuario sudo escribiendo exit
.
Abre tu editor de texto y crea un archivo llamado minecraft.service
en el /etc/systemd/system/
:
sudo nano /etc/systemd/system/minecraft.service
Pegue la siguiente configuración:
/etc/systemd/system/minecraft.service[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
[Install]
WantedBy=multi-user.target
Modificar el Xmx
y Xms
banderas según los recursos de su servidor. El Xmx
define el grupo de asignación de memoria máxima para una máquina virtual Java (JVM), mientras que Xms
define el grupo de asignación de memoria inicial. Además, asegúrese de estar utilizando el rcon
correcto puerto y contraseña.
Guarde y cierre el archivo y notifique a systemd que creamos un nuevo archivo de unidad:
sudo systemctl daemon-reload
Ahora puede iniciar el servidor de Minecraft ejecutando:
sudo systemctl start minecraft
La primera vez que inicie el servicio, generará varios archivos y directorios de configuración, incluido el mundo de Minecraft.
Verifique el estado del servicio con el siguiente comando:
sudo systemctl status minecraft
● minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
Main PID: 17356 (java)
CGroup: /system.slice/minecraft.service
└─17356 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui --noconsole
Habilite el servicio de Minecraft para que se inicie automáticamente en el momento del arranque:
sudo systemctl enable minecraft
Ajuste del cortafuegos #
Si su servidor está protegido por un firewall para acceder al servidor de Minecraft desde el exterior de su red local, debe abrir el puerto 25565
:
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --reload
Configuración de copias de seguridad #
En esta sección, crearemos un script de copia de seguridad y un cronjob para hacer una copia de seguridad automática del servidor de Minecraft.
Comience cambiando a minecraft
usuario:
sudo su - minecraft
Abre tu editor de texto y crea el siguiente archivo:
nano /opt/minecraft/tools/backup.sh
Pegue la siguiente configuración:
/opt/minecraft/tools/backup.sh#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}
rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
Haga que el script sea ejecutable emitiendo el siguiente chmod
comando:
chmod +x /opt/minecraft/tools/backup.sh
Abra el archivo crontab y cree un cronjob que se ejecutará una vez al día automáticamente a una hora fija:
crontab -e
Ejecutaremos el script de copia de seguridad todos los días a las 23:00 h:
0 23 * * * /opt/minecraft/tools/backup.sh
Accediendo a la Consola de Minecraft #
Para acceder a la Consola de Minecraft puedes usar el mcrcon
utilidad.
La sintaxis es la siguiente, debe especificar el host, el puerto rcon, la contraseña rcon y usar -t
modificador que habilita el mcrcon
modo terminal:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
>
Si se conecta regularmente a la consola de Minecraft, en lugar de escribir este largo comando, debe crear un alias de bash.