Cómo instalar un servidor Minecraft en un VPS Linux: Vanilla, Paper y NeoForge

Cómo instalar un servidor Minecraft en un VPS Linux: Vanilla, Paper y NeoForge

Instalar un servidor Minecraft en un VPS te da control total sobre los archivos, Java, los puertos, los plugins, los mods, las copias de seguridad y los reinicios automáticos. La desventaja es que hay que ser preciso: una versión de Java incorrecta, un puerto ocupado o un servicio systemd mal escrito puede impedir el arranque.

Esta guía parte de un VPS Ubuntu o Debian con acceso SSH y permisos sudo. Muestra tres instalaciones prácticas: un servidor Minecraft vanilla, un servidor Paper con un plugin y un servidor NeoForge con un mod. Los ejemplos usan directorios y puertos separados para que puedas probar sin mezclar archivos:

  • Vanilla: /opt/minecraft/vanilla, servicio minecraft, puerto 25565
  • Paper: /opt/minecraft/paper, servicio minecraft-paper, puerto 25566
  • NeoForge: /opt/minecraft/neoforge, servicio minecraft-neoforge, puerto 25567

En producción, normalmente eliges un solo tipo de servidor y mantienes el puerto 25565. No ejecutes los tres al mismo tiempo en un VPS pequeño: con -Xmx8G por servidor, tres servicios pueden consumir mucha memoria.

El 28 de junio de 2026, el manifest oficial de Mojang devuelve Minecraft 26.2 como última versión estable, y esa versión necesita Java 25. Para mantener los bloques copiables simples, los ejemplos siguientes usan 26.2 y versiones explícitas para LuckPerms, NeoForge y spark. Sustituye esos valores si apuntas a otra versión.

1. Instalar Java y las herramientas comunes

Conéctate a tu VPS por SSH e instala Java, curl y jq. curl descarga archivos, y jq lee las respuestas JSON de las APIs de Mojang y Paper.

sudo apt update
sudo apt install -y openjdk-25-jre-headless curl jq ca-certificates
java -version

Si tu distribución todavía no ofrece OpenJDK 25, actualízala o instala una distribución Java mantenida para tu sistema. Una versión Java demasiado antigua suele fallar antes de que el servidor pueda crear todos sus archivos.

Crea un usuario de sistema dedicado y los tres directorios de ejemplo.

id minecraft >/dev/null 2>&1 || sudo useradd --system --home-dir /opt/minecraft --create-home --shell /usr/sbin/nologin minecraft
sudo install -d -o minecraft -g minecraft /opt/minecraft/vanilla /opt/minecraft/paper /opt/minecraft/neoforge

Así evitas ejecutar Minecraft como root y reduces el impacto de un plugin, mod o script problemático.

2. Instalar un servidor Minecraft vanilla

Vanilla es el servidor oficial de Mojang. Es el mejor punto de partida para comprobar Java, los puertos y el servicio Linux antes de añadir plugins o mods.

cd /opt/minecraft/vanilla

MC_VERSION="26.2"
MANIFEST="https://piston-meta.mojang.com/mc/game/version_manifest_v2.json"
VERSION_URL=$(curl -fsSL "$MANIFEST" | jq -r --arg version "$MC_VERSION" '.versions[] | select(.id == $version) | .url')
sudo curl -fLo server.jar "$(curl -fsSL "$VERSION_URL" | jq -r '.downloads.server.url')"
sudo chown minecraft:minecraft server.jar

Acepta el EULA y crea un server.properties mínimo. Vanilla conserva el puerto estándar 25565.

cd /opt/minecraft/vanilla

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25565
motd=Servidor Minecraft Vanilla en VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Haz un primer arranque manual. Espera la línea Done ( en la consola y detén con Ctrl+C.

cd /opt/minecraft/vanilla
sudo -u minecraft java -Xms2G -Xmx8G -jar server.jar nogui

Ahora crea el servicio systemd.

sudo tee /etc/systemd/system/minecraft.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft Vanilla server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/vanilla
ExecStart=/usr/bin/java -Xms2G -Xmx8G -jar server.jar nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
sudo systemctl status minecraft --no-pager

Sigue los logs vanilla con:

sudo journalctl -u minecraft -f

3. Instalar Paper y añadir un plugin

Paper es una base habitual para servidores con plugins. En este ejemplo descargamos el último build Paper disponible para MC_VERSION y luego instalamos el plugin LuckPerms en el directorio plugins.

Paper exige un User-Agent explícito en su API. Puedes reemplazar [email protected] por tu email de administración.

cd /opt/minecraft/paper

MC_VERSION="26.2"
USER_AGENT="MinecraftVpsTutorial/1.0 (contact: [email protected])"
PAPER_BUILDS="https://fill.papermc.io/v3/projects/paper/versions/$MC_VERSION/builds"
PAPER_URL=$(curl -fsSL -H "User-Agent: $USER_AGENT" "$PAPER_BUILDS" | jq -r '.[0].downloads["server:default"].url')
sudo curl -fL -H "User-Agent: $USER_AGENT" -o server.jar "$PAPER_URL"
sudo chown minecraft:minecraft server.jar

Crea el EULA y la configuración. Este ejemplo usa 25566 para evitar conflictos con vanilla. Si solo usas Paper, puedes volver a server-port=25565.

cd /opt/minecraft/paper

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25566
motd=Servidor Paper en VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Instala ahora un plugin Paper. Para mantener el comando legible, este ejemplo usa una URL directa de LuckPerms alojada por Modrinth.

cd /opt/minecraft/paper

sudo install -d -o minecraft -g minecraft plugins
LUCKPERMS_URL="https://cdn.modrinth.com/data/Vebnzrzj/versions/MBSY8toc/LuckPerms-Bukkit-5.5.53.jar"
sudo curl -fL -o plugins/LuckPerms.jar "$LUCKPERMS_URL"
sudo chown -R minecraft:minecraft plugins

Inicia Paper una primera vez. En los logs deberías ver Paper arrancar y LuckPerms cargarse.

cd /opt/minecraft/paper
sudo -u minecraft java -Xms2G -Xmx8G -jar server.jar nogui

Después de Ctrl+C, crea el servicio minecraft-paper.

sudo tee /etc/systemd/system/minecraft-paper.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft Paper server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/paper
ExecStart=/usr/bin/java -Xms2G -Xmx8G -jar server.jar nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft-paper
sudo systemctl start minecraft-paper
sudo systemctl status minecraft-paper --no-pager

Sigue Paper en directo con:

sudo journalctl -u minecraft-paper -f

4. Instalar NeoForge y añadir un mod

NeoForge sirve para ejecutar servidores moddeados. Su instalación es distinta a vanilla y Paper: descargas un installer, genera run.sh, y luego el servidor arranca mediante ese script. El ejemplo usa NeoForge 26.2.0.7-beta, que puedes sustituir si un build más reciente corresponde a tu servidor.

cd /opt/minecraft/neoforge

NEOFORGE_VERSION="26.2.0.7-beta"
sudo curl -fLo neoforge-installer.jar "https://maven.neoforged.net/releases/net/neoforged/neoforge/$NEOFORGE_VERSION/neoforge-$NEOFORGE_VERSION-installer.jar"
sudo chown minecraft:minecraft neoforge-installer.jar
sudo -u minecraft java -jar neoforge-installer.jar --installServer
sudo chmod +x run.sh

NeoForge lee las opciones Java desde user_jvm_args.txt. Pon la memoria ahí, no directamente en el servicio systemd.

cd /opt/minecraft/neoforge

sudo tee user_jvm_args.txt >/dev/null <<'EOF'
-Xms2G
-Xmx8G
EOF
sudo chown minecraft:minecraft user_jvm_args.txt

Crea el EULA y server.properties. El ejemplo usa 25567 para evitar conflictos con vanilla o Paper.

cd /opt/minecraft/neoforge

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25567
motd=Servidor NeoForge en VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Instala ahora un mod. El ejemplo descarga spark, un mod de profiling útil para entender el rendimiento del servidor, con una URL de versión explícita para evitar un bloque API demasiado largo. En un servidor moddeado real, los jugadores suelen necesitar el mismo loader y los mods necesarios en el cliente.

cd /opt/minecraft/neoforge

sudo install -d -o minecraft -g minecraft mods
SPARK_URL="https://cdn.modrinth.com/data/l6YH9Als/versions/DdMsOH3O/spark-1.10.173-neoforge.jar"
sudo curl -fL -o mods/spark.jar "$SPARK_URL"
sudo chown -R minecraft:minecraft mods

Arranca NeoForge una primera vez con run.sh. Espera el final del arranque y detén con Ctrl+C.

cd /opt/minecraft/neoforge
sudo -u minecraft bash run.sh nogui

Por último, crea el servicio minecraft-neoforge.

sudo tee /etc/systemd/system/minecraft-neoforge.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft NeoForge server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/neoforge
ExecStart=/usr/bin/bash /opt/minecraft/neoforge/run.sh nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft-neoforge
sudo systemctl start minecraft-neoforge
sudo systemctl status minecraft-neoforge --no-pager

Lee los logs de NeoForge con:

sudo journalctl -u minecraft-neoforge -f

5. Crear un comando all-in-one para start, stop, restart, logs, save y restore

systemctl funciona bien, pero un solo comando es más práctico en el día a día. El script siguiente crea mcserver, capaz de controlar los tres servicios de ejemplo, crear copias de seguridad y restaurar archivos.

sudo tee /usr/local/bin/mcserver >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

SERVER="${1:-}"
ACTION="${2:-}"

usage() {
  echo "Usage: mcserver {vanilla|paper|neoforge} {start|stop|restart|status|logs|save|restore}"
  echo "Restore: mcserver {vanilla|paper|neoforge} restore /path/to/backup.tar.gz"
}

case "$SERVER" in
  vanilla) SERVICE="minecraft"; SERVER_DIR="vanilla" ;;
  paper) SERVICE="minecraft-paper"; SERVER_DIR="paper" ;;
  neoforge) SERVICE="minecraft-neoforge"; SERVER_DIR="neoforge" ;;
  *)
    usage
    exit 1
    ;;
esac

case "$ACTION" in
  start|stop|restart|status)
    sudo systemctl "$ACTION" "$SERVICE"
    ;;
  logs)
    sudo journalctl -u "$SERVICE" -f
    ;;
  save)
    BACKUP_FILE="$HOME/minecraft-$SERVER-backup-$(date +%F-%H%M%S).tar.gz"
    sudo systemctl stop "$SERVICE"
    sudo tar -czf "$BACKUP_FILE" -C /opt/minecraft "$SERVER_DIR"
    sudo systemctl start "$SERVICE"
    echo "Backup created: $BACKUP_FILE"
    ;;
  restore)
    BACKUP_FILE="${3:-}"
    if [ -z "$BACKUP_FILE" ] || [ ! -f "$BACKUP_FILE" ]; then
      usage
      exit 1
    fi
    ROLLBACK_DIR="/opt/minecraft/${SERVER_DIR}.before-restore-$(date +%F-%H%M%S)"
    sudo systemctl stop "$SERVICE"
    if [ -d "/opt/minecraft/$SERVER_DIR" ]; then
      sudo mv "/opt/minecraft/$SERVER_DIR" "$ROLLBACK_DIR"
    fi
    sudo tar -xzf "$BACKUP_FILE" -C /opt/minecraft
    sudo chown -R minecraft:minecraft "/opt/minecraft/$SERVER_DIR"
    sudo systemctl start "$SERVICE"
    echo "Restored $SERVER from $BACKUP_FILE"
    echo "Previous folder kept at: $ROLLBACK_DIR"
    ;;
  *)
    usage
    exit 1
    ;;
esac
EOF

sudo chmod +x /usr/local/bin/mcserver

Ahora puedes gestionar los servidores con comandos cortos.

mcserver vanilla start
mcserver vanilla stop
mcserver vanilla restart
mcserver vanilla status
mcserver vanilla logs
mcserver vanilla save
mcserver vanilla restore "$HOME/minecraft-vanilla-backup-2026-07-01-142600.tar.gz"

mcserver paper restart
mcserver paper save
mcserver neoforge logs
mcserver neoforge restore "$HOME/minecraft-neoforge-backup-2026-07-01-142600.tar.gz"

Si solo usas un servidor en producción, conserva únicamente su línea en el script, o sigue usando directamente un comando como mcserver vanilla restart. Para restaurar, sustituye la ruta del archivo por la que muestra el comando save.

6. Abrir los puertos en el firewall

Si pruebas los tres ejemplos, abre los tres puertos. Si solo conservas un servidor, abre únicamente el puerto de ese servidor. Empieza añadiendo las reglas y después comprueba el estado de UFW.

sudo ufw status
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp comment "Minecraft Vanilla"
sudo ufw allow 25566/tcp comment "Minecraft Paper"
sudo ufw allow 25567/tcp comment "Minecraft NeoForge"
sudo ufw status

Si UFW está inactivo y quieres usarlo como firewall local, actívalo solo después de autorizar el acceso SSH de administración.

sudo ufw enable

Con iptables, una regla mínima equivalente se parece a esta:

sudo iptables -A INPUT -p tcp -m multiport --dports 25565,25566,25567 -j ACCEPT

Comprueba también el firewall externo de tu proveedor VPS si hay un firewall de red en su panel.

7. Hacer una copia de seguridad limpia

El script mcserver también gestiona las copias de seguridad. La acción save detiene el servicio, archiva el directorio correspondiente y vuelve a iniciar el servidor.

mcserver paper save
mcserver neoforge save

El comando muestra la ruta del archivo creado, por ejemplo $HOME/minecraft-paper-backup-2026-07-01-142600.tar.gz. Para restaurar, pasa ese archivo a la acción restore.

mcserver paper restore "$HOME/minecraft-paper-backup-2026-07-01-142600.tar.gz"
mcserver neoforge restore "$HOME/minecraft-neoforge-backup-2026-07-01-142600.tar.gz"

Durante una restauración, el directorio actual se conserva en /opt/minecraft/<servidor>.before-restore-... antes de extraer el archivo. Conserva varias copias y prueba al menos una restauración. Una copia nunca restaurada es solo una hipótesis.

8. ¿Qué tipo de servidor elegir?

Vanilla es la opción más simple si quieres el comportamiento oficial de Minecraft sin plugins ni mods. Paper es mejor si quieres plugins como permisos, protección de terrenos, economía o comandos de administración. NeoForge es la opción adecuada para un servidor moddeado, con mods instalados en el servidor y a menudo también en el cliente.

Si quieres conservar el control total de Linux y aplicar este tutorial en tu propia máquina, puedes empezar con un plan VPS de BoxToPlay, y luego instalar el tipo de servidor Minecraft que prefieras. Si prefieres evitar la administración Linux, los servicios systemd, los puertos y las copias manuales, también puedes lanzar un servidor Minecraft automáticamente con BoxToPlay. El panel gestiona la instalación y las acciones comunes, mientras tú conservas el control del gameplay, los plugins y la configuración.