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
- Guía Fedora 44: Novedades, Instalación y Upgrade para Sysadmins Linux
- Configura VLANs en Linux con nmcli: Guía paso a paso para sysadmins
- Protege tu SSH: Guía esencial para configurar Fail2ban en Linux
- Guía Definitiva: Configura Kubernetes con kubeadm en Ubuntu para Sysadmins Linux
- Configura Prometheus y Grafana: Guía DevOps para SysAdmins Linux
