Paso a paso: configurar un servidor de Minecraft desde cero

Servidores de jogos · Por · Publicado el · Actualizado el · 11 min de lectura

Teclado retroiluminado de portátil con pantalla oscura y elementos digitales desenfocados
Imagen tecnológica y neutra, adecuada para guías de configuración de servidores Foto: Rafael Minguet Delgado / Pexels

Esta guía explica cómo montar un servidor de Minecraft desde cero en Linux: instalación de Java, configuración del firewall, servicio con systemd, ajustes de world, gestión de puertos y copias de seguridad. Incluye los comandos clave, recomendaciones de hosting y cómo verificar que todo esté en línea para que tus amigos puedan conectarse con seguridad.

1) Requisitos previos y planificación del servidor

Antes de ejecutar comandos, define el objetivo: cuántos jugadores, si usarás mods/plugins y dónde lo vas a hospedar. Eso orienta la elección de CPU, RAM, disco y red. Para la mayoría, un Linux 64-bit actualizado (p. ej., Ubuntu Server LTS) con acceso sudo es suficiente.

La estimación de recursos por número de jugadores es aproximada; depende del mapa, redstone, entidades y plugins. Empieza con una configuración básica, monitoriza y ajusta.

Hosting: puede ser un equipo doméstico, un VPS o nube. VPS/nube facilitan IP pública y disponibilidad. Las máquinas virtuales son comunes; un contenedor puede funcionar, pero implica cuidado con E/S y persistencia de datos.

Si usas cloud, valora el coste por vCPU/RAM/tráfico y la región. Comprueba también cómo abrir puertos en el firewall de la plataforma.

Si tienes dudas entre VM y contenedor, busca un comparativo práctico sobre opciones de infraestructura.

  • Acceso: usuario con sudo y SSH habilitado.
  • Sistema: Linux 64-bit actualizado.
  • Java: OpenJDK 17 (servidores modernos usan esta versión).
  • Red: puerto TCP 25565 abierto entrante.
  • Dominio opcional: facilita un nombre de acceso para el servidor.

2) Preparar Linux e instalar Java (OpenJDK 17)

Crea un usuario dedicado, instala Java y configura un firewall básico. Necesitas acceso sudo. Usa UFW para limitar las puertas abiertas.

El puerto SSH (22) debe mantenerse abierto para no perder el acceso remoto. El 25565 es el puerto por defecto de Minecraft (Java Edition).

# Atualize pacotes e instale Java 17 e UFW
sudo apt update && sudo apt -y upgrade
sudo apt -y install openjdk-17-jre-headless ufw

# Crie usuário e diretório do servidor
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
sudo mkdir -p /opt/minecraft/server
sudo chown -R minecraft:minecraft /opt/minecraft

# Firewall básico: mantém SSH e abre porta do Minecraft
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status numbered

# Verifique a versão do Java
java -version

3) Descargar el servidor, primera ejecución y EULA

Necesitas el archivo del servidor (server.jar). Descárgalo desde la web oficial o transfiérelo desde tu equipo. Lee la EULA y acéptala conscientemente. La primera ejecución genera archivos como eula.txt y server.properties.

Después de crear los archivos, acepta la EULA y ejecuta de nuevo para validar. Ajusta la asignación de memoria según tu hardware y número de jugadores.

  • Si vas a transferir desde tu PC: usa scp o SFTP hacia /opt/minecraft/server.
  • La primera ejecución puede fallar indicando que debes aceptar la EULA: es normal.
  • Ajusta -Xms y -Xmx según la RAM disponible (p. ej., 2G, 4G).
# Entre na pasta do servidor
sudo -u minecraft bash -lc 'cd /opt/minecraft/server && pwd'

# Exemplo: transfira o server.jar do seu computador para o servidor (rode no seu computador)
# scp server.jar usuario@SEU_SERVIDOR:/opt/minecraft/server/server.jar

# Primeira execução para gerar arquivos (pode encerrar com erro pedindo EULA)
sudo -u minecraft bash -lc 'cd /opt/minecraft/server && java -Xms2G -Xmx2G -jar server.jar nogui || true'

# Aceite a EULA após ler (edite manualmente ou use sed)
sudo -u minecraft bash -lc 'cd /opt/minecraft/server && sed -i "s/eula=false/eula=true/" eula.txt'

# Segunda execução de teste
sudo -u minecraft bash -lc 'cd /opt/minecraft/server && java -Xms2G -Xmx2G -jar server.jar nogui'

4) Ejecutar el servidor como servicio (systemd)

Para ejecutar en segundo plano y reiniciar automáticamente, crea un servicio systemd. Esto facilita start/stop, gestión de logs y arranque automático.

Define la memoria (-Xms/-Xmx) en ExecStart. Ajústala a tu hardware. Evita asignar el 100% de la RAM para dejar memoria para el sistema.

# Crie o unit file do systemd
sudo tee /etc/systemd/system/minecraft.service > /dev/null <<'EOF'
[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/server
User=minecraft
Group=minecraft
Restart=on-failure
RestartSec=10
# Ajuste memória aqui (ex.: 2G, 4G, 6G)
ExecStart=/usr/bin/java -Xms2G -Xmx2G -jar server.jar nogui
SuccessExitStatus=143
TimeoutStopSec=20
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

# Recarregue, habilite e inicie
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft

# Acompanhe os logs
tail -n +1 /opt/minecraft/server/logs/latest.log || true
journalctl -u minecraft -f -n 50

5) Ajustes útiles en server.properties

El archivo server.properties define online-mode, view-distance, MOTD y más. Edítalo según tus necesidades. Distancias menores reducen consumo de CPU y RAM.

Si usas plugins y optimizaciones, considera distribuciones como Paper o Purpur. Mantienen compatibilidad con plugins y mejoran el rendimiento.

  • online-mode=true mantiene la verificación de cuentas oficiales.
  • view-distance y simulation-distance afectan el rendimiento.
  • motd muestra el mensaje en la lista de servidores.
  • white-list=true restringe el acceso a jugadores aprobados.
# /opt/minecraft/server/server.properties (exemplo)
server-port=25565
online-mode=true
motd=Servidor Survival BR \u2013 boas vindas!
view-distance=8
simulation-distance=8
difficulty=normal
gamemode=survival
max-players=20
white-list=false
enable-command-block=false
spawn-protection=16
allow-nether=true
hardcore=false
max-world-size=29999984

6) Abrir puertos, DNS y pruebas de conexión

Asegura que el puerto 25565 esté abierto en todos los niveles: UFW, firewall de la nube y router/NAT si aplica. En cloud, añade una regla entrante TCP 25565 al Security Group (AWS) o Firewall VPC (GCP).

Crea un registro DNS A para apuntar un dominio o subdominio al IP público. Esto facilita que los jugadores encuentren el servidor.

Prueba la escucha local y la conectividad. Si el puerto no aparece en LISTEN, revisa los logs del servicio y la ruta del server.jar.

  • En un router doméstico, configura port forwarding de 25565/TCP hacia la IP interna del servidor.
  • En la nube, revisa las reglas por origen (0.0.0.0/0) y restrínge si quieres listas blancas de IP.
  • El DNS puede tardar minutos en propagarse.
# UFW (se ainda não tiver liberado)
sudo ufw allow 25565/tcp
sudo ufw status

# Verifique se está escutando localmente na 25565
sudo ss -tulpn | grep 25565 || true

# Teste DNS (substitua pelo seu domínio)
nslookup mc.seudominio.com || dig +short mc.seudominio.com

7) Backups, actualización segura y automatización

Mantén copias de seguridad regulares del directorio del mundo. No copies mundos con el servidor escribiendo: detén el servicio para evitar corrupción. Para actualizar, reemplaza el server.jar y reinicia el servicio.

Puedes programar backups diarios con cron y conservar varias versiones. Copia a otra máquina o almacenamiento externo para mayor seguridad.

Si hospedas en la nube, monitoriza costes y ajusta recursos según necesidad.

  • Detén el servicio antes de backups y actualizaciones.
  • Comprime con tar.gz para reducir espacio.
  • Prueba la restauración periódicamente.
  • Considera snapshots de disco si el proveedor los ofrece.
# Pare, compacte e reinicie (backup manual)
sudo systemctl stop minecraft
sudo mkdir -p /opt/minecraft/backups
sudo tar -czf /opt/minecraft/backups/mc-$(date +%F-%H%M).tar.gz -C /opt/minecraft server
sudo systemctl start minecraft

# Script simples de backup rotativo (mantém 7 arquivos)
sudo tee /usr/local/bin/backup-minecraft.sh > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
BKPDIR=/opt/minecraft/backups
SRCDIR=/opt/minecraft/server
mkdir -p "$BKPDIR"
systemctl stop minecraft
ARCHIVE="$BKPDIR/mc-$(date +%F-%H%M).tar.gz"
tar -czf "$ARCHIVE" -C /opt/minecraft server
systemctl start minecraft
# remove backups antigos, mantém 7
ls -1t "$BKPDIR"/mc-*.tar.gz | tail -n +8 | xargs -r rm -f
EOF
sudo chmod +x /usr/local/bin/backup-minecraft.sh

# Cron diário às 3h (executa como root)
( crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/backup-minecraft.sh" ) | sudo crontab -

8) Cómo confirmar que funcionó y resolver problemas comunes

Valida los logs, la escucha de puertos y la conexión externa. Pide a un amigo que pruebe con tu IP o dominio. Más abajo tienes síntomas habituales y cómo abordarlos.

Para monitorizar disponibilidad y alertas, integra comprobaciones y una solución de monitorización en Linux. Esto ayuda a detectar caídas y bloqueos rápidamente.

  • journalctl muestra errores de Java, falta de memoria o jar inválido.
  • Si no aparece LISTEN en 25565, revisa el unit de systemd y la ruta del jar.
  • Si la conexión externa falla, comprueba el firewall de la nube y el NAT del router.
Síntoma Causa probable Cómo resolver
Jugadores no pueden conectar desde fuera Puerto 25565 bloqueado en cloud/NAT Abre 25565/TCP en el proveedor y configura port forwarding en el router
Servidor cae al cargar Poca RAM o plugins pesados Reduce view-distance, aumenta RAM, usa una distribución optimizada como Paper
Mensaje sobre EULA eula.txt todavía en false Define eula=true tras leer los términos y reinicia el servicio
Latencia alta Red/ruta, región lejana Elige una región cercana a los jugadores; evita Wi‑Fi en el host
# Logs recentes do serviço
journalctl -u minecraft --since "15 minutes ago" -n 200 --no-pager

# Verifique escuta da porta
sudo ss -ltnp | grep 25565 || true

# Teste resolução DNS
nslookup mc.seudominio.com || dig +short mc.seudominio.com

Preguntas frecuentes

¿Qué versión de Java usar en el servidor de Minecraft?

OpenJDK 17 es la elección recomendada para servidores modernos de Minecraft Java Edition, tal como indica la guía. Instala y actualiza Java desde el gestor de paquetes de tu distribución y, tras cualquier actualización, prueba el server.jar y los plugins en un entorno de pruebas o en el servidor antes de abrirlo a los jugadores para confirmar compatibilidad.

¿Cuánta RAM necesito para el servidor?

La memoria necesaria depende del número de jugadores, del tamaño del mundo, las entidades y los plugins. Para servidores pequeños la guía sugiere empezar con 2–4 GB; si hay muchos jugadores, redstone o granjas automáticas, incrementa la RAM y reduce view-distance. Monitoriza el consumo en ejecución y ajusta los parámetros -Xms y -Xmx del servicio según los datos reales.

¿Cómo cambiar el puerto por defecto 25565?

Edita server.properties y cambia server-port=NUMERO al nuevo puerto, luego reinicia el servidor. Actualiza las reglas del firewall (UFW), el port forwarding en el router y las reglas de seguridad en la nube (Security Group/Firewall VPC) para permitir el nuevo puerto TCP entrante. Informa a tus jugadores del nuevo puerto o usa registros SRV en DNS si prefieres ocultarlo en la conexión.

¿Puedo usar dominios como play.mi-dominio.com?

Sí. Crea un registro DNS A que apunte al IP público del servidor para que los jugadores usen un nombre fácil en lugar de la IP. Ten en cuenta la propagación DNS, que puede tardar minutos, y que si usas un puerto distinto al 25565 los jugadores deberán conectarse con host:puerto, salvo que configures registros SRV avanzados en tu DNS.

¿Cómo actualizar el server.jar de forma segura?

Detén el servicio systemd antes de actualizar y haz un backup completo del directorio del servidor para evitar pérdida de datos. Sustituye el server.jar por la nueva versión, arranca el servicio y revisa los logs con journalctl y los archivos del servidor. Si usas plugins, prueba la actualización en un entorno de pruebas para comprobar compatibilidad antes de aplicarla en producción.

¿Cómo automatizar reinicios periódicos?

Programa reinicios con cron o un timer de systemd en horarios de baja actividad y avisa previamente a los jugadores. Los reinicios moderados ayudan a liberar memoria y prevenir bloqueos temporales, pero no sustituyen correcciones de configuración; combínalos con monitorización y revisión de logs para identificar y solucionar la causa real de inestabilidad.

¿Necesitas ayuda con Linux, automatización o monitorización?

Si quieres apoyo para hardening, backups, migración a la nube o monitorización de tu servidor, contacta con un especialista para acelerar la configuración con seguridad.

Hablar sobre mi servidor

Ver también