Cómo instalar el servidor Spigot Minecraft en Ubuntu 20.04
Spigot es un software de servidor de Minecraft modificado basado en CraftBukkit. Proporciona optimizaciones de rendimiento, opciones de configuración y características adicionales, manteniendo la compatibilidad con todos los plugins y mods existentes.
En este tutorial, aprenderás a construir e instalar el servidor Spigot en un servidor basado en Ubuntu 20.04 y a instalar los plugins.
Requisitos previos
-
Un servidor con Ubuntu 20.04 con un mínimo de 4GB de RAM y 2 núcleos de CPU.
-
Un usuario no root con privilegios sudo.
-
Todo actualizado.
$ sudo apt update && sudo apt upgrade
-
Instala los paquetes necesarios.
$ sudo apt install wget apt-transport-https gnupg nano screen
Paso 1 – Configurar el cortafuegos
El primer paso es configurar el cortafuegos. Ubuntu viene con ufw (Uncomplicated Firewall) por defecto.
Comprueba si el cortafuegos se está ejecutando.
$ sudo ufw status
Deberías obtener la siguiente salida.
Status: inactive
Permite el puerto SSH para evitar que el cortafuegos rompa la conexión actual al habilitarlo.
$ sudo ufw allow OpenSSH
Permite el puerto 25565 para que el servidor Spigot acepte conexiones.
$ sudo ufw allow 25565
Habilita el cortafuegos
$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Vuelve a comprobar el estado del cortafuegos.
$ sudo ufw status
Deberías ver una salida similar.
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 25565 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 25565 (v6) ALLOW Anywhere (v6)
Paso 2 – Instalar Java y Git
El instalador de Spigot necesita Java y Git para funcionar. Ubuntu 20.04 incluye OpenJDK 17 como la última versión disponible de Java. Ejecuta el siguiente comando para instalarlo.
$ sudo apt install openjdk-17-jre-headless
Confirma la versión.
$ java --version openjdk 17.0.1 2021-10-19 OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17.0.1+12-Ubuntu-120.04, mixed mode, sharing)
Instala Git.
$ sudo apt install git
Paso 3 – Crear un usuario de Minecraft
El siguiente paso es crear un usuario dedicado para ejecutar el servidor.
$ sudo adduser minecraft
Cambia al usuario recién creado.
$ sudo su - minecraft
Paso 4 – Descarga e instala Spigot
Construiremos Spigot utilizando la aplicación BuildTools.jar. El primer paso es cambiar al directorio principal.
minecraft:$ cd ~
Crea un nuevo directorio para BuildTools y cambia a él.
minecraft:$ mkdir buildtools && cd buildtools
Coge el archivo BuildTools.jar
.
minecraft:$ wget -O BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
Construye la última versión estable de Spigot.
minecraft:$ java -jar BuildTools.jar --rev latest
Dependiendo de los recursos disponibles del servidor, este proceso puede tardar en completarse.
Comprueba el nombre del archivo jar de Spigot creado.
minecraft:$ ls apache-maven-3.6.0 BuildData BuildTools.jar BuildTools.log.txt Bukkit CraftBukkit Spigot spigot-1.18.1.jar work
En nuestro caso, el nombre es.
Crea otro directorio para tu servidor de Spigot y pasa a él.
minecraft:$ cd ~ && mkdir server && cd server
Mueve tu archivo jar de Spigot al directorio del servidor recién creado.
minecraft:$ mv ~/buildtools/spigot-1.18.1.jar ~/server/spigot.jar
Paso 5 – Iniciar el servidor Spigot
Para iniciar el servidor de Spigot, tenemos que crear un script de inicio que nos permita pasar varios parámetros Java para optimizar el servidor.
Crea y abre el script de inicio de Spigot.
minecraft:$ sudo nano spigotstart.sh
Pega el siguiente código en el archivo.
#!/bin/sh java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui
El parámetro -Xms3G -Xmx3G
ha configurado el heapspace de Java para 4GB de RAM. En nuestro caso hemos dejado 1GB libre para el SO y cualquier otra cosa para la que necesite la ram. Cambia esto por la cantidad de RAM que quieras asignar al servidor de Spigot. Si tu servidor tiene 16GB de RAM, deberás ajustar el parámetro para que ocupe 14 o 15GB de RAM.
Una vez terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Haz que el script de inicio sea ejecutable.
minecraft:$ chmod +x spigotstart.sh
Inicia tu servidor Spigot por primera vez.
minecraft:$ ./spigotstart.sh
El servidor no se iniciará y en su lugar terminará, dando el siguiente mensaje.
[14:14:21] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Abre eula.txt
para editarlo.
minecraft:$ nano eula.txt
Establece el valor de la variable eula
en true
.
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Sun Dec 26 13:29:15 UTC 2021 eula=true
Una vez que hayas terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Antes de iniciar el servidor, vamos a configurarlo para que se ejecute como un servicio en segundo plano.
Paso 6 – Configurar Spigot como servicio
El servidor necesita que el intérprete de comandos se ejecute todo el tiempo para que funcione, lo cual no es lo ideal. Tenemos que crear un servicio para que el servidor se inicie automáticamente al arrancar y se ejecute en segundo plano.
Sal del usuario minecraft
.
minecraft:$ exit
Crea un archivo de Servicio Spigot y ábrelo para editarlo.
$ sudo nano /etc/systemd/system/spigot.service
Pega el siguiente código.
[Unit] Description=SpigotMC After=network.target [Service] Type=forking User=minecraft Group=minecraft ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh ExecStop=/usr/bin/screen -S minecraft -p 0 -X stuff "stop$(printf \\r)" WorkingDirectory=/home/minecraft/server [Install] WantedBy=multi-user.target
Una vez terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.
Vuelve a cargar el demonio del servicio.
$ sudo systemctl daemon-reload
Habilita el servicio.
$ sudo systemctl enable spigot
Inicia el servicio Spigot.
$ sudo systemctl start spigot
Comprueba el estado del servicio.
$ sudo systemctl status spigot ? spigot.service - SpigotMC Loaded: loaded (/etc/systemd/system/spigot.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2021-12-27 09:15:25 UTC; 6s ago Process: 32011 ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh (code=exited, sta> Main PID: 32012 (screen) Tasks: 25 (limit: 4691) Memory: 3.2G CGroup: /system.slice/spigot.service ??32012 /usr/bin/SCREEN -d -m -S minecraft /home/minecraft/server/spigotstart.sh ??32013 /bin/sh /home/minecraft/server/spigotstart.sh ??32014 java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockEx> Dec 27 09:15:25 spigot systemd[1]: Starting SpigotMC... Dec 27 09:15:25 spigot systemd[1]: Started SpigotMC.
Paso 7 – Conéctate a Minecraft
Ahora que nuestro servidor está en funcionamiento, es el momento de conectarse a Minecraft. Inicia tu juego de Minecraft.
Haz clic en el botón Multijugador e ignora la advertencia para el futuro marcando la casilla No volver a mostrar esta pantalla.
Haz clic en el botón Añadir servidor en la siguiente página.
Introduce la dirección IP pública y el nombre de tu servidor. Haz clic en Listo cuando hayas terminado.
Tu servidor aparecerá ahora en la lista.
Haz clic en el nombre de tu servidor y pulsa el botón Unirse al servidor para iniciarlo. Tu partida empezará pronto.
Puedes pedir a tus amigos que se unan a tu servidor y jugar con ellos.
Paso 8 – Personalizar las propiedades del servidor
Puedes personalizar tu servidor editando el archivo /home/minecraft/server/server.properties
. A continuación veremos algunas de las propiedades.
-
Habilitar bloques de comandos: Los valores disponibles son
true
yfalse
.enable-command-block=false
-
Modo de juego: Los valores disponibles son supervivencia, creativo, aventura y espectador. También se pueden definir mediante números enteros que empiezan por 0 para supervivencia, 1 para creativo, 2 para aventura y 3 para espectador.
gamemode=survival
-
Dificultad: Los valores disponibles son pacífico, fácil, normal y difícil. También se pueden definir mediante números enteros que empiezan por 0 para pacífico, 1 para fácil, 2 para normal y 3 para difícil.
difficulty=easy
-
MOTD: Significa Mensaje del Día. Es el mensaje que se muestra en la página de la lista de servidores. Acepta un valor de cadena. Admite color, caracteres especiales y códigos de formato. No debe tener más de 59 caracteres.
motd=A Minecraft Server
-
PVP: Activa el modo Jugador contra Jugador. Los valores disponibles son
true
yfalse
.pvp=true
-
Puerto del servidor: Define el puerto en el que escucha el servidor de Minecraft. El valor por defecto es 25565.
server-port=25565
Si cambias el valor del puerto por otro, tendrás que habilitarlo en el cortafuegos; de lo contrario, los jugadores no podrán conectarse.
-
Consulta la wiki de Minecraft para conocer más propiedades.
Tendrás que reiniciar tu servidor Spigot después de hacer cualquier cambio en estas propiedades para que surtan efecto.
$ sudo systemctl restart spigot
Paso 9 – Instalar plugins
Puedes descargar los plugins desde las páginas de recursos de Spigot o de plugins de Bukkit.
Si descargas el plugin desde Spigot, el siguiente método no funcionará ya que ha sido bloqueado. Tendrás que descargar manualmente el archivo Jar y moverlo al servidor. Pero si lo descargas desde Bukkit, utiliza el siguiente método para descargarlo directamente a tu servidor.
Descarga el archivo .jar
del plugin desde las páginas anteriores al directorio /home/minecraft/server/plugins
.
$ sudo wget -P /home/minecraft/server/plugins/ --content-disposition <plugin url>
La bandera --content-disposition
asegura que el archivo se descargue con el nombre correcto haciendo uso de las cabeceras Content-Disposition
.
Por ejemplo, si estás descargando el plugin WorldEdit, así es como lo descargarás.
$ sudo wget -P /home/minecraft/server/plugins --content-disposition https://dev.bukkit.org/projects/world edit/files/latest
Para volver a cargar el plugin, reinicia tu servidor Spigot.
$ sudo systemctl restart spigot
Paso 10 – Actualizar Spigot
La actualización de Spigot requerirá que repitas el paso 4 de esta guía para obtener la última versión del archivo BuildTools.jar
y luego crear un nuevo archivo spigot.jar
. Asegúrate de hacer una copia de seguridad de los archivos jar antiguos y de detener el servidor antes de hacerlo.
Conclusión
Con esto concluye nuestro tutorial sobre la instalación y configuración del servidor Spigot Minecraft en un sistema basado en Ubuntu 20.04. Si tienes alguna pregunta, publícala en los comentarios de abajo.