Guias

Cómo crear un servidor de Minecraft en Linux: guía completa 2026

Tener tu propio servidor de Minecraft es el sueño de cualquier gamer. Jugar con amigos, mods, mundos persistentes — todo bajo tu control. Esta guía te lleva de cero a un server funcionando con amigos conectados.

TL;DR — Lo que vas a tener al final

  • Tiempo de setup: 30 minutos a 2 horas dependiendo de la complejidad del entorno.
  • Requisitos: Acceso root, Linux moderno, conexión a internet para descargar dependencias.
  • Resultado: Servicio funcional y estable, documentado paso a paso.
  • Troubleshooting: Logs estándar en /var/log/, comandos de verificación al final de cada sección.

¿Por qué tu propio servidor?

Opciones para jugar Minecraft:

Opción Pros Contras
Minecraft Realms (oficial) Fácil, oficial $8 USD/mes, sin mods
Aternos (gratis) Gratis, fácil Laggy, pocas opciones
Tu propio server Linux Control total, gratis, mods Setup inicial

Esta guía cubre la opción 3. Una vez que tienes tu server, puedes hacer lo que quieras.

Requisitos

Mínimos (3-5 jugadores):

  • CPU: 2 cores
  • RAM: 2 GB para vanilla, 4 GB con mods
  • Disco: 5 GB
  • Red: 5 Mbps upload
  • OS: Ubuntu 22.04+ o Debian 11+

Recomendados (10-20 jugadores):

  • CPU: 4 cores
  • RAM: 8 GB
  • Disco: 20 GB SSD
  • Red: 20 Mbps upload
  • OS: Ubuntu 24.04 LTS

El server va a correr mejor en Linux que en Windows. Menos overhead, menos problemas con Java.

Paso 1: Instalar Java

Minecraft 1.20+ requiere Java 17+. Recomiendo Java 21 (LTS, más rápido).

# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-21-jre-headless -y
# Verificar
java -version

Paso 2: Crear usuario para el server

NO correr Minecraft como root. Crea un usuario dedicado:

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

Paso 3: Crear el directorio del server

sudo mkdir -p /opt/minecraft
sudo chown minecraft:minecraft /opt/minecraft
sudo -u minecraft -i
cd /opt/minecraft

Paso 4: Descargar Minecraft server

Dos opciones:

Vanilla (oficial sin mods)

# Descargar server jar
wget https://piston-data.mojang.com/v1/objects/4706c63a8298d83b48db957b5b0d828b6f7b6871/server.jar

(La URL cambia con cada versión. verifica en minecraft.net/en-us/download/server.)

Paper (recomendado, mejor rendimiento)

Paper es un fork optimizado de vanilla. Más performante, con API para plugins.

# Bajar versión más reciente
PAPER_VERSION="1.21.1"
wget https://api.papermc.io/v2/projects/paper/versions/${PAPER_VERSION}/builds/1/downloads/paper-${PAPER_VERSION}-1.jar -O paper.jar

Paso 5: Aceptar EULA

echo "eula=true" > eula.txt

Sí, hay que aceptar el EULA de Mojang.

Paso 6: Probar el server

java -Xmx2G -jar paper.jar nogui

Te muestra logs en consola. Si ves [Server thread/INFO]: Done (X.XXXs)!, el server arrancó.

Problema común: “Could not reserve enough space for object heap”. Solución: bajá el -Xmx2G a -Xmx1G.

Para parar: Ctrl+C en consola.

Paso 7: Crear script de arranque

/opt/minecraft/start.sh:

#!/bin/bash
# Configuración
RAM_MIN="2G"
RAM_MAX="4G"
SERVER_JAR="paper.jar"
# Flags optimizadas (recomendadas por Paper docs)
JAVA_OPTS="-Xms${RAM_MIN} -Xmx${RAM_MAX} 
    -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 
    -Daikars.new.flags=true"
cd /opt/minecraft
exec java $JAVA_OPTS -jar $SERVER_JAR --nogui
chmod +x /opt/minecraft/start.sh

Probar:

./start.sh

Paso 8: Configurar server.properties

nano /opt/minecraft/server.properties

Settings importantes:

# Mundo
level-name=world
gamemode=survival
difficulty=normal
max-players=20
# Red
server-port=25565
server-ip=
online-mode=true        # solo jugadores con Minecraft original
                        # Poné false si quieres permitir cuentas crakeadas (NO recomendado)
white-list=false        # true si quieres whitelist
# Performance
view-distance=10        # chunks visibles (default 10)
simulation-distance=8   # chunks con redstone/mobs
# Gameplay
spawn-protection=16
pvp=true
allow-flight=false
hardcore=false
# Mensaje de bienvenida
motd=§bMi Servidor de Minecraft

Restart del server después de cambios de config:

# Si lo corres en foreground: Ctrl+C, después ./start.sh
# Si lo corres en systemd: sudo systemctl restart minecraft

Paso 9: Crear servicio systemd

/etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/opt/minecraft/start.sh
Restart=on-failure
RestartSec=20
StandardInput=null
StandardOutput=journal
StandardError=journal
# Hardening
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft

Verificar:

sudo systemctl status minecraft
sudo journalctl -u minecraft -f

Paso 10: Abrir el puerto en el firewall

sudo ufw allow 25565/tcp

Si tienes Cloudflare proxy en frente: NO para Minecraft. Cloudflare no soporta Minecraft protocol.

Paso 11: Port forwarding (si estás detrás de NAT)

Si tu server está en tu red hogareña, necesitas port forwarding en tu router:

1. Entrá a la config del router (ej: 192.168.1.1).

2. Buscá “Port Forwarding” / “Virtual Server”.

3. Agregá regla: external port 25565 → internal port 25565 → IP del server.

Alternativa: ZeroTier o Tailscale (no necesitas port forward):

# Instalar Tailscale en el server
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# En cada amigo
# Que instale Tailscale y se una a tu network
# Después conecta a la IP Tailscale del server

Ventaja de Tailscale/ZeroTier: no abres puertos, todo cifrado, no exponés el server a Internet.

Paso 12: Conectarse

Desde Minecraft Java Edition

1. Abrí Minecraft.

2. “Multiplayer” → “Add Server”.

3. Server Address: tu-ip-publica:25565 o tailscale-ip:25565.

4. Click “Join Server”.

Desde Bedrock (teléfonos, Xbox, Switch)

necesitas un plugin como Geyser + Floodgate que traduce Bedrock → Java.

Instalar Geyser:

cd /opt/minecraft/plugins
wget https://download.geysermc.org/master/Geyser-Spigot.jar
wget https://download.geysermc.org/master/Floodgate-Spigot.jar

Restart del server. Después conectás desde Bedrock al puerto 19132 (UDP).

Comandos de administración

Como operador del server, puedes:

# Darte op (la primera vez)
op tu-usuario-minecraft
# Comandos en consola o chat
/op usuario              # dar admin
/deop usuario            # quitar admin
/whitelist add usuario   # agregar a whitelist
/whitelist remove usuario
/whitelist on
/whitelist list
/kick usuario [razón]
/ban usuario [razón]
/pardon usuario
/gamemode creative usuario
/gamemode survival usuario
/tp usuario1 usuario2     # teleport
/give usuario diamond 64  # dar items
/save-all              # forzar guardado
/stop                  # parar el server
/time set day
/weather clear

Backups automáticos

El mundo es irremplazable. Backup diario.

# Backup script
mkdir -p /opt/minecraft/backups
cat > /opt/minecraft/backup.sh <<'EOF'
#!/bin/bash
WORLD=/opt/minecraft/world
BACKUP_DIR=/opt/minecraft/backups
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
# Pausar writes
screen -S minecraft -p 0 -X stuff "save-off$(printf 'r')"
sleep 2
# Comprimir
tar -czf $BACKUP_DIR/world-$TIMESTAMP.tar.gz -C /opt/minecraft world
# Reanudar
screen -S minecraft -p 0 -X stuff "save-on$(printf 'r')"
# Mantener últimos 7
ls -t $BACKUP_DIR/world-*.tar.gz | tail -n +8 | xargs -r rm
EOF
chmod +x /opt/minecraft/backup.sh

Timer:

# /etc/systemd/system/minecraft-backup.timer
[Unit]
Description=Backup diario de Minecraft
[Timer]
OnCalendar=*-*-* 04:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/minecraft-backup.service
[Unit]
Description=Backup Minecraft
[Service]
Type=oneshot
ExecStart=/opt/minecraft/backup.sh
User=minecraft
sudo systemctl enable --now minecraft-backup.timer

Plugins esenciales (Paper)

Paper soporta plugins Bukkit/Spigot. Recomendados para empezar:

Plugin Función
EssentialsX Comandos de admin (warp, home, kits)
WorldEdit Editar el mundo con comandos
LuckPerms Permisos
Vault API de economía
CoreProtect Log de acciones (anti-grief)
Dynmap Mapa web en tiempo real
ViaVersion Soporte para múltiples versiones

Instalar:

cd /opt/minecraft/plugins
wget https://github.com/EssentialsX/Essentials/releases/latest/download/EssentialsX-2.20.1.jar
wget https://github.com/lucko/LuckPerms/releases/latest/download/LuckPerms-Bukkit-5.4.137.jar
# ... etc

Restart server. Plugins se activan.

Performance tuning

Paper tiene optimizaciones built-in

/opt/minecraft/config/paper-global.yml:

chunk:
  enable-frustum-pick: true
  spawn:
    keep-spawn-loaded: false  # set true si quieres spawn cargado siempre
entity-per-chunk-save-limit:
  arrow: 16
  ender_pearl: 8
  experience_orb: 16
  fireball: 8
  small_fireball: 8
  snowball: 8
max-entity-collisions: 4

Pre-generar el mundo

Generar chunks de antemano es 10x más rápido que generarlos cuando alguien los visita:

# Con WorldBorder plugin o paper chunk generator
java -Xmx4G -jar paper.jar --world /opt/minecraft/world --paper-world-settings-settings=1000,1000

(O usa el comando worldborder fill con WorldBorder plugin.)

Monitorear

# TPS (Ticks Per Second)
# En consola:
/tps
# En juego con spark plugin:
/spark tps

TPS ideal: 20. Si baja de 18, tienes lag.

Troubleshooting

“Can’t connect to server”

1. verifica que el server está corriendo: systemctl status minecraft.

2. verifica firewall: sudo ufw status, asegurate 25565/tcp.

3. verifica port forwarding en router.

4. prueba conectarte localmente: localhost:25565 desde el server mismo.

5. ping tu-ip-publica desde otra máquina.

Lag / TPS bajo

1. /tps para confirmar.

2. top para ver CPU.

3. free -h para ver RAM.

4. Reducí view-distance y simulation-distance en server.properties.

5. Bajá plugins innecesarios.

6. Pre-generá el mundo.

Crash al iniciar

Logs: journalctl -u minecraft -n 50.

Causas comunes:

  • Java version incompatible (Paper 1.21+ requiere Java 21).
  • RAM insuficiente (bajá -Xmx).
  • World corrupto (restaurá de backup).

Disco lleno

du -sh /opt/minecraft/world

Si el mundo creció mucho, hay chunks duplicados o entidades bugueadas. Plugin Chunky puede regenerar áreas.

Preguntas frecuentes

¿Por qué Cómo crear un servidor de Minecraft en Linux: guía completa 2026 es relevante para sysadmins Linux?

Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.

¿Qué necesito para empezar con Cómo crear un servidor de?

Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.

¿Cuáles son los errores más comunes con Cómo crear un servidor de?

Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.

¿Cuándo usar Cómo crear un servidor de y cuándo una alternativa?

Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.

¿Cómo migro desde una configuración previa a Cómo crear un servidor de?

Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.

Lee también

Alfonso Moreno | Sysadmin Senior

Soy Alfonso, sysadmin senior con RHCE y más de 10 años administrando sistemas Linux para empresas y proyectos personales. Me especializo en infraestructura, redes, virtualización, monitoring, automation y self-hosting. Sobre SoyLinux.com SoyLinux.com es un blog técnico en español sobre Linux, software libre y self-hosting. Lo mantengo en mi tiempo libre. Áreas de expertise - Linux server administration: RHEL, CentOS, Rocky, Alma, Fedora, Debian, Ubuntu - Network services: Postfix, BIND, Samba, NFS, Squid - Virtualización y containers: KVM, Proxmox, Docker, Podman - Monitoring: Prometheus, Grafana, Zabbix - Automation: Ansible, Bash scripting - Self-hosting: Vaultwarden, Nextcloud, Jellyfin, Immich, Homelab Contacto - Email: [email protected]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *