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:
- Inicia Minecraft (Java Edition)
- Haz clic en "Multijugador"
- Haz clic en "Agregar Servidor"
- Ingresa la dirección IP o nombre de dominio de tu servidor
- 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
-Xmsy-Xmxal 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 inicioG1NewSizePercent=30: Asignar 30% del heap a nueva generaciónG1HeapRegionSize=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:
- Instalar Prometheus y Grafana
- Instalar plugin Minecraft Prometheus Exporter
- Configurar panel de Grafana
- 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!


