Configuración de Servidor Minecraft en Linux: Guía Completa de Instalación

Introducción

Minecraft sigue siendo uno de los juegos más populares del mundo, con millones de jugadores activos creando, explorando y sobreviviendo en mundos virtuales pixelados. Aunque muchos jugadores disfrutan uniéndose a servidores públicos, alojar tu propio servidor de Minecraft ofrece control completo sobre el juego, mods, gestión de jugadores y reglas del servidor. Ejecutar un servidor de Minecraft en Linux proporciona excelente rendimiento, estabilidad y rentabilidad en comparación con otras soluciones de alojamiento.

Esta guía completa te guía en la configuración de un servidor de Minecraft listo para producción en Linux, cubriendo todo desde los requisitos iniciales del sistema hasta técnicas avanzadas de optimización. Ya sea que alojes un servidor pequeño para amigos o un servidor comunitario más grande, aprenderás las mejores prácticas para despliegue, seguridad, estrategias de respaldo y ajuste de rendimiento.

Los servidores Linux ofrecen varias ventajas para alojar Minecraft: menor sobrecarga de recursos en comparación con Windows, estabilidad superior para operación 24/7, potentes herramientas de gestión por línea de comandos y la capacidad de automatizar tareas de mantenimiento. Al final de esta guía, tendrás un servidor de Minecraft completamente funcional con respaldos automáticos, gestión de servicios systemd y configuraciones de rendimiento optimizadas.

Descripción del Caso de Uso

¿Por Qué Alojar Tu Propio Servidor de Minecraft?

Alojar tu propio servidor de Minecraft proporciona numerosos beneficios sobre jugar en servidores públicos o usar servicios de alojamiento comercial:

Control Completo: Tú decides qué versión del juego ejecutar, qué mods o plugins instalar y cómo configurar las reglas del juego. No hay espera a que los propietarios del servidor actualicen o agreguen características que deseas.

Privacidad y Seguridad: Los datos de tu servidor permanecen bajo tu control. Gestionas quién tiene acceso, qué permisos tienen y cómo se manejan los datos de los jugadores.

Rentabilidad: Para grupos de amigos o comunidades pequeñas, ejecutar un VPS con un servidor de Minecraft a menudo cuesta menos que el alojamiento comercial de Minecraft, especialmente al considerar mejores especificaciones de hardware.

Experiencia de Aprendizaje: Configurar y mantener un servidor de Minecraft enseña valiosas habilidades de administración de Linux, incluyendo gestión de procesos, configuración de red, estrategias de respaldo y optimización de rendimiento.

Personalización: Desde generadores de mundos personalizados hasta paquetes de mods extensos, tienes completa libertad para crear experiencias de juego únicas imposibles en servidores comerciales.

Escenarios Comunes de Despliegue

Servidor Personal para Amigos: Un servidor pequeño (2-10 jugadores) ejecutando Minecraft vanilla o mods ligeros, típicamente en un VPS modesto con 2-4GB de RAM.

Servidor Comunitario: Servidores de tamaño medio (20-50 jugadores) con plugins para protección contra griefing, sistemas económicos y juego personalizado, requiriendo 4-8GB de RAM y recursos de CPU dedicados.

Servidor con Mods: Servidores fuertemente modificados ejecutando paquetes de mods como FeedTheBeast o colecciones de mods personalizadas, a menudo requiriendo 8-16GB de RAM y procesadores potentes.

Servidor de Red: Múltiples servidores de Minecraft interconectados usando BungeeCord o Velocity, permitiendo a los jugadores moverse sin problemas entre diferentes modos de juego y mundos.

Servidor de Desarrollo: Entorno de prueba para desarrolladores de plugins o administradores de servidores para experimentar con configuraciones antes de desplegar en producción.

Consideraciones de Rendimiento

El rendimiento del servidor de Minecraft depende de varios factores:

  • Cantidad de Jugadores: Cada jugador conectado aumenta el uso de CPU y memoria
  • Tamaño del Mundo: Mundos explorados más grandes requieren más E/S de disco y memoria
  • Distancia de Renderizado: Distancias de vista más altas aumentan dramáticamente los requisitos de CPU y memoria
  • Mods y Plugins: Cada adición aumenta el consumo de recursos
  • TPS (Ticks Por Segundo): Mantener 20 TPS es crítico para un juego fluido

Requisitos

Requisitos del Sistema

Requisitos Mínimos para Minecraft Vanilla (5-10 jugadores):

  • CPU: 2 núcleos a 2.5+ GHz (equivalente a Intel Core i3/AMD Ryzen 3)
  • RAM: 2GB dedicados a Minecraft, 4GB RAM total del sistema
  • Almacenamiento: 10GB SSD (20GB recomendados para respaldos del mundo)
  • Red: 10 Mbps velocidad de subida
  • OS: Ubuntu 20.04/22.04, Debian 11/12, CentOS 8, Rocky Linux 8/9

Requisitos Recomendados para Servidor con Mods (10-20 jugadores):

  • CPU: 4 núcleos a 3.0+ GHz (equivalente a Intel Core i5/AMD Ryzen 5)
  • RAM: 6-8GB dedicados a Minecraft, 10GB RAM total del sistema
  • Almacenamiento: 30GB SSD con velocidades rápidas de lectura/escritura
  • Red: 50 Mbps velocidad de subida
  • OS: Ubuntu 22.04 LTS (recomendado para mejor compatibilidad)

Servidor de Alto Rendimiento (50+ jugadores o paquetes de mods pesados):

  • CPU: 6+ núcleos a 3.5+ GHz (equivalente a Intel Core i7/AMD Ryzen 7)
  • RAM: 12-16GB dedicados a Minecraft, 20GB RAM total del sistema
  • Almacenamiento: 50GB+ NVMe SSD
  • Red: 100+ Mbps velocidad de subida con baja latencia
  • OS: Ubuntu 22.04 LTS con optimizaciones de kernel personalizadas

Requisitos de Software

Java Runtime Environment: Minecraft 1.17+ requiere Java 17 o más reciente. Versiones anteriores pueden requerir Java 8 u 11. OpenJDK es recomendado para servidores Linux.

Herramientas de Compilación (opcional, para Paper/Spigot): git, make y bibliotecas de desarrollo si se compila software de servidor desde la fuente.

Screen o tmux: Multiplexor de terminal para ejecutar el servidor en sesiones separadas.

Herramientas de Respaldo: rsync, tar o soluciones de respaldo dedicadas como BorgBackup para protección de datos del mundo.

Requisitos de Red

Configuración de Puertos: Los servidores de Minecraft usan el puerto 25565 por defecto (TCP). RCON (consola remota) usa el puerto 25575. El protocolo de consulta usa el puerto 25565 UDP.

Configuración de Firewall: Asegúrate de que tu firewall de Linux (iptables, ufw, firewalld) permita conexiones entrantes en los puertos requeridos.

Nombre de Dominio (opcional): Aunque no es requerido, un nombre de dominio o subdominio apuntando a la IP de tu servidor mejora la accesibilidad para los jugadores.

Conocimientos Previos

  • Navegación básica por línea de comandos de Linux y edición de archivos
  • Comprensión de conexiones SSH y uso de terminal
  • Familiaridad con permisos de archivos y gestión de usuarios
  • Conceptos básicos de redes (direcciones IP, puertos, firewalls)

Instalación Paso a Paso

Paso 1: Actualizar el Sistema e Instalar Java

Primero, conéctate a tu servidor Linux vía SSH y actualiza los paquetes del sistema:

# Para Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# Para CentOS/Rocky Linux
sudo dnf update -y

Instala OpenJDK 17 (requerido para Minecraft 1.17+):

# Ubuntu/Debian
sudo apt install openjdk-17-jre-headless -y

# CentOS/Rocky Linux
sudo dnf install java-17-openjdk-headless -y

Verifica la instalación de Java:

java -version

Deberías ver una salida indicando que OpenJDK 17 o más reciente está instalado.

Paso 2: Crear Usuario Dedicado de Minecraft

Ejecutar Minecraft como root es un riesgo de seguridad. Crea un usuario dedicado:

sudo useradd -m -r -s /bin/bash minecraft

Esto crea un usuario del sistema llamado "minecraft" con un directorio home en /home/minecraft.

Paso 3: Crear Estructura de Directorios del Servidor

Cambia al usuario minecraft y crea los directorios necesarios:

sudo su - minecraft
mkdir -p ~/server
mkdir -p ~/backups
cd ~/server

Paso 4: Descargar Software del Servidor de Minecraft

Tienes varias opciones para el software del servidor:

Opción A: Servidor Minecraft Vanilla (oficial, sin modificar):

Visita el sitio web oficial de Minecraft para obtener la URL de descarga más reciente del servidor, o usa:

wget https://launcher.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar -O minecraft_server.jar

(Nota: Esta URL es un ejemplo. Visita minecraft.net/download/server para la versión actual.)

Opción B: Servidor Paper (recomendado para rendimiento y soporte de plugins):

wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/496/downloads/paper-1.20.4-496.jar -O paper.jar

(Visita papermc.io/downloads para la versión más reciente.)

Opción C: Servidor Fabric (para mods de Fabric):

wget https://meta.fabricmc.net/v2/versions/loader/1.20.4/0.15.6/1.0.0/server/jar -O fabric-server.jar

Opción D: Servidor Forge (para mods de Forge):

Descarga el instalador de Forge desde files.minecraftforge.net, luego ejecuta:

java -jar forge-installer.jar --installServer

Para esta guía, usaremos el servidor Paper ya que ofrece excelente rendimiento y compatibilidad con plugins.

Paso 5: Aceptar EULA y Primer Inicio del Servidor

Antes de iniciar el servidor, debes aceptar el Acuerdo de Licencia de Usuario Final de Minecraft:

echo "eula=true" > eula.txt

Inicia el servidor por primera vez para generar archivos de configuración:

java -Xms2G -Xmx2G -jar paper.jar --nogui

Este comando asigna 2GB de RAM al servidor. Ajusta -Xms (mínimo) y -Xmx (máximo) según tu RAM disponible.

El servidor generará archivos del mundo y archivos de configuración, luego comenzará a aceptar conexiones. Este inicio inicial puede tomar unos minutos.

Paso 6: Detener el Servidor y Configurar Ajustes Básicos

Detén el servidor escribiendo stop en la consola.

Edita el archivo de configuración principal:

nano server.properties

Configuraciones clave a modificar:

# Nombre y descripción del servidor
motd=Mi Increíble Servidor de Minecraft

# Configuraciones de juego
gamemode=survival
difficulty=normal
max-players=20
view-distance=10
simulation-distance=10

# Configuraciones del mundo
level-name=world
level-seed=
generate-structures=true
spawn-protection=16

# Configuraciones de rendimiento
max-tick-time=60000
max-world-size=29999984

# Configuraciones de red
server-port=25565
server-ip=
online-mode=true
enable-query=true
enable-rcon=false

# Seguridad
white-list=false
enforce-whitelist=false
pvp=true

Guarda y sal (Ctrl+X, luego Y, luego Enter).

Paso 7: Crear Script de Inicio del Servidor

Crea un script de inicio conveniente:

nano start.sh

Agrega el siguiente contenido:

#!/bin/bash

# Script de Inicio del Servidor de Minecraft
# Ajusta la asignación de memoria según la RAM de tu servidor

java -Xms4G -Xmx4G \
     -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 paper.jar --nogui

Haz el script ejecutable:

chmod +x start.sh

Estos flags de JVM (conocidos como flags de Aikar) mejoran significativamente el rendimiento del servidor de Minecraft optimizando la recolección de basura.

Paso 8: Configurar Servicio Systemd

Sal del usuario minecraft a tu usuario principal:

exit

Crea un archivo de servicio systemd:

sudo nano /etc/systemd/system/minecraft.service

Agrega el siguiente contenido:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/bin/bash /home/minecraft/server/start.sh
Restart=on-failure
RestartSec=10

# Gestión de procesos
StandardInput=null
StandardOutput=journal
StandardError=journal

# Configuraciones de seguridad
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Recarga systemd y habilita el servicio:

sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft

Verifica el estado del servicio:

sudo systemctl status minecraft

Ver logs del servidor:

sudo journalctl -u minecraft -f

Paso 9: Configurar Firewall

Permite el puerto de Minecraft a través del firewall:

# UFW (Ubuntu/Debian)
sudo ufw allow 25565/tcp
sudo ufw allow 25565/udp

# Firewalld (CentOS/Rocky Linux)
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --permanent --add-port=25565/udp
sudo firewall-cmd --reload

Paso 10: Conectarse a Tu Servidor

¡Tu servidor ahora está funcionando! Conéctate usando el cliente de Minecraft:

  1. Inicia Minecraft (Java Edition)
  2. Haz clic en "Multijugador"
  3. Haz clic en "Agregar Servidor"
  4. Ingresa la dirección IP o nombre de dominio de tu servidor
  5. Haz clic en "Listo" y luego "Unirse al Servidor"

Configuración

Ajuste Fino de Propiedades del Servidor

El archivo server.properties controla la mayoría del comportamiento del servidor. Configuraciones importantes explicadas:

Configuraciones de Rendimiento:

# La distancia de vista afecta qué tan lejos pueden ver los jugadores
# Valores más bajos mejoran el rendimiento pero reducen la visibilidad
view-distance=10

# La distancia de simulación controla qué tan lejos de los jugadores las entidades están activas
# Configurar esto más bajo que view-distance mejora el rendimiento
simulation-distance=8

# Umbral de compresión de red (bytes)
# Valores más bajos reducen el ancho de banda, valores más altos reducen el uso de CPU
network-compression-threshold=256

# Porcentaje de rango de transmisión de entidades
# Reducir esto mejora el rendimiento pero las entidades aparecen/desaparecen más cerca de los jugadores
entity-broadcast-range-percentage=100

Modificaciones de Juego:

# Radio de protección del spawn (bloques desde el spawn)
spawn-protection=0

# Permitir dimensión del Nether
allow-nether=true

# Permitir dimensión del End
allow-end=true

# Habilitar bloques de comandos
enable-command-block=true

# Anunciar logros de jugadores
announce-player-achievements=true

# Tiempo de espera de jugador inactivo (minutos, 0 para deshabilitar)
player-idle-timeout=0

Configuración de Paper

El servidor Paper proporciona archivos de configuración adicionales en el directorio config.

paper-global.yml - Configuraciones globales del servidor:

# Optimización de carga de chunks
chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-loads: 4.0

# Optimizaciones de entidades
entities:
  spawning:
    all-chunks-are-slime-chunks: false
    alt-item-despawn-rate:
      enabled: true
    count-all-mobs-for-spawning: false

# Optimizaciones de rendimiento
timings:
  enabled: true
  verbose: true

paper-world-default.yml - Configuraciones específicas del mundo:

# Anti-trampa
anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2

# Optimizaciones de tolvas
hopper:
  cooldown-when-full: true
  disable-move-event: false

# Límites de spawn
spawn-limits:
  monster: 70
  creature: 10
  ambient: 15
  water-creature: 5
  water-ambient: 20

Instalación de Plugins

Los servidores Paper/Spigot soportan plugins que extienden la funcionalidad. Plugins populares incluyen:

Plugins Esenciales:

  • EssentialsX: Comandos, economía, hogares, warps
  • LuckPerms: Gestión avanzada de permisos
  • WorldEdit: Edición y manipulación del mundo
  • WorldGuard: Protección de regiones y flags
  • Vault: API de economía para otros plugins

Para instalar plugins:

cd /home/minecraft/server/plugins
wget [plugin-download-url] -O PluginName.jar

Reinicia el servidor para cargar nuevos plugins:

sudo systemctl restart minecraft

Configuración de Operador y Lista Blanca

Otorgar privilegios de operador (poderes de administrador):

# Conectarse a la consola del servidor vía screen/tmux o usar RCON
sudo su - minecraft
screen -r minecraft
# Luego en la consola del servidor:
op NombreJugador

Habilitar y configurar lista blanca (restringir quién puede unirse):

Edita server.properties:

white-list=true
enforce-whitelist=true

Agregar jugadores a la lista blanca:

# En la consola del servidor
whitelist add NombreJugador
whitelist list

O edita manualmente whitelist.json:

[
  {
    "uuid": "player-uuid-here",
    "name": "NombreJugador"
  }
]

Configuración de RCON (Consola Remota)

RCON permite la gestión remota del servidor sin acceso SSH.

Edita server.properties:

enable-rcon=true
rcon.port=25575
rcon.password=TuContraseñaFuerteAquí

Configura el firewall si accedes a RCON de forma remota:

# Solo permitir desde una IP específica
sudo ufw allow from TU_IP to any port 25575

Usa el cliente RCON:

sudo apt install mcrcon -y
mcrcon -H localhost -P 25575 -p TuContraseña "list"

Optimización

Optimización de Asignación de Memoria

La asignación adecuada de memoria es crítica para el rendimiento. Sigue estas pautas:

Reglas Generales:

  • Asigna 1-2GB base + 500MB por jugador
  • Deja 1-2GB para el SO y otros procesos
  • Establece -Xms y -Xmx al mismo valor para rendimiento consistente

Ejemplos de Asignación de RAM:

# 5 jugadores: 3GB
-Xms3G -Xmx3G

# 10 jugadores: 4GB
-Xms4G -Xmx4G

# 20 jugadores: 6GB
-Xms6G -Xmx6G

# 50 jugadores o fuertemente modificado: 10-12GB
-Xms12G -Xmx12G

Optimización de Flags de JVM

Usar flags de JVM optimizados mejora dramáticamente el rendimiento. El script de inicio incluye las flags de Aikar, que están exhaustivamente probadas y recomendadas por la comunidad de Minecraft.

Flags clave explicadas:

  • +UseG1GC: Usar recolector de basura G1 (mejor para heaps grandes)
  • MaxGCPauseMillis=200: Tiempo máximo objetivo de pausa de GC
  • +AlwaysPreTouch: Pre-tocar páginas de memoria al inicio
  • G1NewSizePercent=30: Asignar 30% del heap a nueva generación
  • G1HeapRegionSize=8M: Optimizar tamaño de región para servidor típico

Configuraciones de Rendimiento del Servidor

Reducir distancia de vista y simulación para mejor rendimiento:

view-distance=8
simulation-distance=6

Optimizar límites de entidades en spigot.yml:

world-settings:
  default:
    entity-activation-range:
      animals: 32
      monsters: 32
      raiders: 48
      misc: 16
      water: 16
      villagers: 32
      flying-monsters: 32
    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64

Habilitar carga asíncrona de chunks en paper-global.yml:

chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-loads: 4.0

Optimización de E/S de Disco

Usar almacenamiento más rápido: Discos SSD o NVMe mejoran significativamente la carga del mundo y la generación de chunks.

Reducir frecuencia de guardado automático en bukkit.yml:

ticks-per:
  autosave: 6000  # Guardado automático cada 5 minutos en lugar de 1

Usar disco separado para respaldos para prevenir contención de E/S durante operaciones de respaldo.

Optimización de Red

Optimizar configuraciones de red en server.properties:

# Aumentar umbral de compresión para reducir uso de CPU
network-compression-threshold=512

# Optimizar envío de paquetes
max-tick-time=60000

Usar throttle de conexión para prevenir spam de conexiones:

# spigot.yml
settings:
  connection-throttle: 4000

Pre-generar Chunks del Mundo

Pre-generar chunks previene lag durante la exploración. Usa el plugin Chunky:

# En la consola del servidor
chunky world world
chunky radius 5000
chunky start

Esto pre-genera un área de 10,000x10,000 bloques, eliminando el lag de generación de chunks.

Solución de Problemas

El Servidor No Inicia

Síntoma: El servicio falla al iniciar o se bloquea inmediatamente.

Verificar versión de Java:

java -version

Minecraft 1.17+ requiere Java 17 o más reciente.

Verificar RAM disponible:

free -h

Si la memoria asignada excede la RAM disponible, reduce el valor de -Xmx.

Revisar logs:

sudo journalctl -u minecraft -n 100

Busca mensajes de error que indiquen el problema.

Verificar permisos de archivos:

ls -la /home/minecraft/server/

Asegúrate de que el usuario minecraft posea todos los archivos:

sudo chown -R minecraft:minecraft /home/minecraft/server

Alto Uso de CPU

Síntoma: Uso de CPU consistentemente por encima del 80-90%.

Verificar TPS (ticks por segundo):

# En la consola del servidor
tps

Los servidores saludables mantienen 20 TPS. Por debajo de 18 TPS indica problemas de rendimiento.

Perfilar rendimiento:

Instala el plugin Spark para análisis detallado de rendimiento:

cd /home/minecraft/server/plugins
wget https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-bukkit/build/libs/spark-bukkit.jar

Usa comandos de Spark:

/spark profiler start
# Espera 2-3 minutos
/spark profiler stop

Soluciones comunes:

  • Reducir distancia de vista y simulación
  • Limitar generación de mobs
  • Remover plugins que causan lag
  • Pre-generar chunks del mundo
  • Reducir cantidades de entidades con /kill @e[type=item]

Alto Uso de Memoria / Sin Memoria

Síntoma: El servidor se bloquea con OutOfMemoryError.

Aumentar RAM asignada:

Edita start.sh y aumenta el valor de -Xmx:

-Xms6G -Xmx6G

Monitorear uso de memoria:

# Mientras el servidor está funcionando
jps  # Obtener ID del proceso de Minecraft
jstat -gc [PID] 1000  # Monitorear recolección de basura

Habilitar registro detallado de GC:

Agrega a las flags de inicio:

-Xlog:gc*:file=/home/minecraft/server/gc.log:time,uptime:filecount=5,filesize=10M

Soluciones:

  • Asignar más RAM al servidor
  • Reducir chunks cargados (menor distancia de vista)
  • Remover plugins que consumen mucha memoria
  • Limpiar chunks antiguos con un plugin como WorldBorder
  • Reducir cantidades de entidades

Problemas de Conexión

Síntoma: Los jugadores no pueden conectarse al servidor.

Verificar que el servidor esté funcionando:

sudo systemctl status minecraft

Verificar si el puerto está abierto:

sudo netstat -tlnp | grep 25565

Debería mostrar Java escuchando en el puerto 25565.

Probar conectividad desde el servidor:

telnet localhost 25565

Si esto funciona pero las conexiones externas fallan, verifica el firewall.

Verificar reglas del firewall:

# UFW
sudo ufw status

# Firewalld
sudo firewall-cmd --list-all

Verificar si el servidor está vinculando correctamente:

En server.properties, asegúrate:

server-ip=

Deja en blanco para vincular a todas las interfaces, o especifica la dirección IP.

Probar conectividad externa:

Usa herramientas en línea como mcsrvstat.us o pide a un amigo que pruebe la conexión.

Corrupción del Mundo

Síntoma: El servidor se bloquea al iniciar, menciona chunks corruptos.

Restaurar desde respaldo:

sudo systemctl stop minecraft
cd /home/minecraft/server
rm -rf world world_nether world_the_end
tar -xzf /home/minecraft/backups/world-backup-YYYY-MM-DD.tar.gz
sudo systemctl start minecraft

Reparar chunks corruptos:

Usa MCEdit o Amulet Map Editor para identificar y eliminar chunks corruptos.

Prevención:

  • Respaldos automáticos regulares
  • Procedimientos de apagado adecuados (nunca kill -9)
  • Almacenamiento confiable (evitar SSDs baratos propensos a fallar)
  • Monitorear salud del disco regularmente

Errores de Permiso Denegado

Síntoma: Los logs del servidor muestran errores de permiso al leer/escribir archivos.

Corregir propiedad de archivos:

sudo chown -R minecraft:minecraft /home/minecraft/server
sudo chown -R minecraft:minecraft /home/minecraft/backups

Corregir permisos de archivos:

sudo chmod -R 755 /home/minecraft/server
sudo chmod 644 /home/minecraft/server/*.properties
sudo chmod 644 /home/minecraft/server/*.yml
sudo chmod 644 /home/minecraft/server/*.json

Conflictos de Plugins

Síntoma: El servidor se bloquea o se comporta incorrectamente después de instalar plugins.

Identificar plugin problemático:

Remueve plugins uno a la vez de la carpeta plugins y reinicia el servidor.

Verificar compatibilidad de plugins:

Asegúrate de que los plugins sean compatibles con tu versión de servidor (1.20.4, etc.).

Revisar logs de plugins:

tail -f /home/minecraft/server/logs/latest.log

Busca mensajes de error que mencionen plugins específicos.

Conflictos comunes:

  • Múltiples plugins de permisos
  • Plugins con funcionalidad duplicada
  • Plugins desactualizados para la versión actual de Minecraft

Estrategia de Respaldo

Script de Respaldo Automático

Crea un script de respaldo:

sudo nano /home/minecraft/backup.sh

Agrega el siguiente contenido:

#!/bin/bash

# Script de Respaldo del Servidor de Minecraft

MINECRAFT_DIR="/home/minecraft/server"
BACKUP_DIR="/home/minecraft/backups"
DATE=$(date +%Y-%m-%d-%H%M%S)
BACKUP_NAME="minecraft-backup-$DATE.tar.gz"
DAYS_TO_KEEP=7

# Anunciar inicio de respaldo
echo "save-off" > /tmp/minecraft-cmd
echo "save-all flush" >> /tmp/minecraft-cmd
screen -S minecraft -p 0 -X stuff "$(cat /tmp/minecraft-cmd)^M"

# Esperar a que se complete el guardado
sleep 10

# Crear respaldo
cd $MINECRAFT_DIR
tar -czf $BACKUP_DIR/$BACKUP_NAME world world_nether world_the_end \
    *.properties *.yml *.json plugins \
    --exclude='*.jar' --exclude='plugins/*.jar'

# Reanudar guardado
echo "save-on" > /tmp/minecraft-cmd
screen -S minecraft -p 0 -X stuff "$(cat /tmp/minecraft-cmd)^M"

# Eliminar respaldos antiguos
find $BACKUP_DIR -name "minecraft-backup-*.tar.gz" -mtime +$DAYS_TO_KEEP -delete

# Registrar finalización de respaldo
echo "Respaldo completado: $BACKUP_NAME" >> $BACKUP_DIR/backup.log

Haz ejecutable:

sudo chmod +x /home/minecraft/backup.sh
sudo chown minecraft:minecraft /home/minecraft/backup.sh

Programar Respaldos Automáticos

Crea trabajo cron:

sudo crontab -e -u minecraft

Agrega programación de respaldo:

# Respaldo diario a las 3 AM
0 3 * * * /home/minecraft/backup.sh

# Respaldo cada 6 horas
0 */6 * * * /home/minecraft/backup.sh

Respaldo Externo con Rclone

Instala rclone:

sudo apt install rclone -y

Configura almacenamiento en la nube:

rclone config

Crea script de respaldo externo:

#!/bin/bash

# Subir último respaldo a almacenamiento en la nube
LATEST_BACKUP=$(ls -t /home/minecraft/backups/*.tar.gz | head -1)
rclone copy "$LATEST_BACKUP" remote:minecraft-backups/

Respaldo Antes de Actualizaciones

Antes de actualizar el servidor o instalar plugins importantes, crea respaldo manual:

sudo su - minecraft
cd /home/minecraft
DATE=$(date +%Y-%m-%d-%H%M)
tar -czf backups/pre-update-$DATE.tar.gz server/

Configuración Avanzada

Múltiples Instancias de Servidor

Ejecuta múltiples servidores de Minecraft en una máquina:

# Crear directorio de segundo servidor
sudo mkdir -p /home/minecraft/server2
sudo chown minecraft:minecraft /home/minecraft/server2

# Copiar archivos del servidor
sudo cp /home/minecraft/server/*.jar /home/minecraft/server2/

# Editar server.properties con puerto diferente
# server-port=25566

# Crear segundo servicio systemd
sudo cp /etc/systemd/system/minecraft.service /etc/systemd/system/minecraft2.service

# Editar minecraft2.service para usar directorio server2

Configuración de Red BungeeCord

BungeeCord permite que múltiples servidores aparezcan como una red:

# Descargar BungeeCord
mkdir -p /home/minecraft/proxy
cd /home/minecraft/proxy
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar

# Configurar config.yml con definiciones de servidor
# Iniciar BungeeCord en puerto 25565
# Configurar servidores backend en puertos diferentes (25566, 25567, etc.)

Configuración de Servidor con Paquete de Mods

Para servidores modificados (Forge/Fabric):

# Descargar archivos del servidor del paquete de mods
# Extraer al directorio del servidor
# Instalar mods requeridos en carpeta mods/
# Asignar más RAM (8-16GB recomendados)
# Ajustar script de inicio para mayor memoria:
-Xms8G -Xmx8G

Monitoreo de Rendimiento con Grafana

Configurar monitoreo avanzado:

  1. Instalar Prometheus y Grafana
  2. Instalar plugin Minecraft Prometheus Exporter
  3. Configurar panel de Grafana
  4. Monitorear TPS, cantidad de jugadores, uso de memoria, carga de chunks

Conclusión

Ahora tienes un servidor de Minecraft completamente funcional ejecutándose en Linux con configuraciones de rendimiento optimizadas, respaldos automáticos e integración adecuada del sistema. Esta configuración proporciona una base sólida para alojar desde pequeños servidores para amigos hasta servidores comunitarios más grandes.

Puntos clave de esta guía:

  • Java 17+ es requerido para versiones modernas de Minecraft, con OpenJDK recomendado para Linux
  • Servidor Paper ofrece el mejor balance de rendimiento y compatibilidad con plugins
  • Flags de JVM adecuadas (flags de Aikar) mejoran significativamente la recolección de basura y reducen el lag
  • Integración con Systemd asegura inicio automático y gestión fácil del servicio
  • Respaldos regulares son esenciales para prevenir pérdida de datos por corrupción o errores
  • Ajuste de rendimiento a través de distancia de vista, distancia de simulación y límites de entidades mantiene un juego fluido
  • Prácticas de seguridad como usuarios dedicados, configuración de firewall y lista blanca protegen tu servidor

La naturaleza modular de esta configuración permite un escalado fácil. Comienza con Minecraft vanilla básico y agrega gradualmente plugins, mods o instancias de servidor adicionales a medida que tu comunidad crece. Los archivos de configuración y scripts proporcionados sirven como plantillas que puedes personalizar para necesidades específicas.

Recuerda monitorear tu servidor regularmente usando herramientas como htop, verificar logs con journalctl, y usar herramientas en el juego como /tps para asegurar un rendimiento fluido. La comunidad de servidores de Minecraft desarrolla continuamente nuevas técnicas de optimización y plugins, así que mantenerse informado a través de foros como SpigotMC y PaperMC ayuda a mantener rendimiento de vanguardia.

Ya sea que ejecutes un servidor de construcción creativa, mundo de supervivencia multijugador, red de minijuegos o aventura fuertemente modificada, esta configuración basada en Linux proporciona la confiabilidad y rendimiento necesarios para excelentes experiencias de juego. El mantenimiento regular, monitoreo y participación de la comunidad asegurarán que tu servidor de Minecraft prospere durante años.

¡Feliz construcción!