Passo a passo: configurar servidor de Minecraft do zero

Servidores de jogos · Por · Publicado em · Atualizado em · 10 min de leitura

Teclado retroiluminado de laptop com tela escura e elementos digitais desfocados
Imagem tecnológica e neutra, adequada para guias de configuração de servidores Foto: Rafael Minguet Delgado / Pexels

Quer saber como configurar um servidor de Minecraft do zero em Linux? Este passo a passo cobre instalação do Java, firewall, serviço com systemd, propriedades do mundo, DNS, otimizações (Paper + Aikar flags) e backups. No fim, você valida portas e conexão externa para jogar com segurança.

1) Pré‑requisitos e planejamento do servidor

Antes de digitar comandos, defina objetivo: quantos jogadores, mods/plugins e hospedagem. Isso orienta CPU, RAM, disco e rede.

Estimativas variam com mapa, redstone, entidades e plugins. Comece simples, monitore e ajuste ao uso real.

Hospedagem pode ser computador doméstico, VPS ou nuvem. VPS facilita IP público e uptime. Em contêiner, garanta volumes persistentes.

Em casa, considere NAT/port forwarding e qualidade do link. Em nuvem, revise regras de firewall e IPv4/IPv6.

Se for preparar o SO do zero, siga o guia de instalação do Ubuntu Server e, para dimensionar recursos, veja como escolher o tamanho da VPS.

  • Acesso: usuário com sudo e SSH habilitado.
  • Sistema: Linux 64‑bit atualizado (ex.: Ubuntu Server LTS).
  • Java: OpenJDK 17 para versões modernas.
  • Rede: porta TCP 25565 liberada de fora para dentro.
  • Domínio opcional: cria um endereço fácil para o servidor.
  • Segurança: hardening básico e atualizações regulares.

2) Preparar o Linux e instalar o Java (OpenJDK 17)

Crie um usuário dedicado, instale o Java e configure o firewall. Você precisa de acesso sudo. Use UFW para limitar portas abertas.

A porta SSH (22) deve permanecer liberada para não perder acesso remoto. A 25565 é a porta padrão do Minecraft (Java Edition). Para detalhes do firewall, siga o guia de UFW no Ubuntu.

Se usar IPv6 público, libere também o tráfego TCP na 25565 para v6.

# 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) Baixar o servidor, primeira execução e EULA

Você precisa do arquivo do servidor (server.jar). Pode ser Vanilla ou uma distribuição otimizada como Paper/Purpur para melhor desempenho com plugins.

A primeira execução cria eula.txt e server.properties. Leia a EULA e aceite conscientemente. Depois, defina a memória (-Xms/-Xmx) de acordo com seu hardware.

Dica: renomeie o arquivo baixado para server.jar e mantenha tudo em /opt/minecraft/server para simplificar updates.

  • Se transferir do seu PC: use scp ou SFTP para /opt/minecraft/server.
  • A primeira execução pode falhar pedindo EULA: é esperado.
  • Ajuste -Xms e -Xmx conforme a RAM disponível (ex.: 2G, 4G).
  • Paper/Purpur costuma reduzir uso de CPU e melhorar TPS sob carga.
# Entre na pasta do servidor
sudo -u minecraft bash -lc 'cd /opt/minecraft/server && pwd'

# Exemplo: transfira o jar do seu computador (rode no seu computador)
# scp SEU_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) Executar o servidor como serviço (systemd)

Para rodar em background e reiniciar automaticamente, crie um serviço systemd. Isso facilita start/stop, logs e boot automático.

Você pode usar flags de otimização de GC (Aikar flags) em servidores Paper/Purpur. Evite alocar 100% da RAM para sobrar memória ao sistema.

Use journalctl para inspecionar logs e ver TPS, erros de plugins e aviso de memória.

  • Início automático no boot com systemctl enable.
  • Reinício on-failure cobre travamentos ocasionais.
  • LimitNOFILE evita gargalo em descritores de arquivo.
# Crie o unit file do systemd com Aikar flags (ajuste memória)
sudo tee /etc/systemd/system/minecraft.service > /dev/null <<'EOF'
[Unit]
Description=Minecraft Server (Paper/Purpur/Vanilla)
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/server
User=minecraft
Group=minecraft
Restart=on-failure
RestartSec=10
# Ajuste -Xms/-Xmx (ex.: 2G, 4G, 6G)
ExecStart=/usr/bin/java -Xms2G -Xmx2G \
  -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:InitiatingHeapOccupancyPercent=15 \
  -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \
  -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
journalctl -u minecraft -f -n 50

5) Ajustes úteis no server.properties

O arquivo server.properties define modo online, distância de visão, MOTD e mais. Distâncias menores reduzem consumo de CPU e RAM.

Se usar plugins e otimizações, considere Paper ou Purpur. Mantêm compatibilidade com plugins comuns e melhoram desempenho.

RCON permite administrar o servidor remotamente. Se habilitar, proteja com senha forte e restrinja a porta no firewall (não exponha para a internet aberta).

  • online-mode=true mantém verificação de contas oficiais.
  • view-distance e simulation-distance afetam desempenho.
  • motd exibe a mensagem na lista de servidores.
  • white-list=true restringe a jogadores aprovados.
  • Defina level-seed para um mundo com semente específica.
# /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
# RCON (opcional; proteja no firewall!)
rcon.port=25575
rcon.password=TroqueEstaSenhaForte
enable-rcon=false

6) Abrir portas, DNS e testes de conexão

Garanta a porta 25565 aberta em todos os níveis: UFW, firewall da nuvem e roteador/NAT. Em cloud, adicione regra de entrada TCP 25565.

Crie um registro DNS A apontando domínio ou subdomínio para o IP público. Isso facilita que os jogadores encontrem o servidor.

Teste a escuta local e conectividade. Se a porta não aparecer como LISTEN, verifique os logs do serviço e o caminho do server.jar. Para reforçar segurança do host, aplique o checklist de segurança para VPS.

  • No roteador residencial, faça port forwarding 25565/TCP para o IP interno do servidor.
  • Em nuvem, revise regras por origem (0.0.0.0/0) e restrinja se quiser whitelists de IP.
  • DNS pode levar minutos para propagar; teste com dig/nslookup.
  • Se habilitar RCON, não exponha a porta; limite a IPs de administração.
# Libere a 25565/TCP e confira o estado do UFW
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, atualização segura e automação

Mantenha backups regulares do diretório do mundo. Não copie mundos com o servidor escrevendo: pare o serviço para evitar corrupção.

Para atualizar, troque o server.jar e reinicie o serviço. Faça backup antes. Em plugins, teste compatibilidade com a nova versão.

Agende backups diários com cron e mantenha versões. Para estratégia avançada (snapshots + S3), veja nosso tutorial de LVM snapshots com Restic.

  • Pare o serviço antes de backups e atualizações.
  • Compacte com tar.gz para reduzir espaço.
  • Teste a restauração periodicamente, não só a criação.
  • Considere cópia offsite em outro servidor ou storage.
# 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) Como confirmar que funcionou e resolver problemas comuns

Valide logs, escuta de porta e conexão externa. Peça a um amigo para testar com seu IP ou domínio.

Para alertas e bloqueio de tentativas de invasão (ex.: SSH), configure o fail2ban com alertas, seguindo este tutorial de fail2ban + Telegram.

  • journalctl mostra erros de Java, memória ou jar inválido.
  • Se LISTEN não aparecer na 25565, revise o systemd e o caminho do jar.
  • Se conexão externa falhar, verifique firewall da nuvem e NAT no roteador.
  • TPS baixo com muitos chunks? Reduza view/simulation-distance e use Paper/Purpur.
Sintoma Causa provável Como resolver
Jogadores não conectam de fora Porta 25565 bloqueada em cloud/NAT Abra 25565/TCP no provedor e faça port forwarding no roteador
Servidor cai ao carregar Pouca RAM ou plugins pesados Reduza view-distance, aumente RAM, use distribuição otimizada como Paper
Mensagem de EULA eula.txt ainda false Defina eula=true após ler os termos e reinicie o serviço
Latência alta Rede/rota, região distante Escolha região próxima dos jogadores; evite Wi‑Fi no host
Address already in use Outra app usando 25565 Altere server-port ou pare o processo conflitante e reinicie o serviço
Sem logs no journalctl Unit com erro de caminho Cheque WorkingDirectory/ExecStart e permissões do usuário minecraft
# 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

# Descubra quem usa a porta (se houver conflito)
sudo lsof -iTCP:25565 -sTCP:LISTEN -P -n || true

Perguntas frequentes

Qual versão do Java usar no servidor de Minecraft?

OpenJDK 17 é a escolha comum para versões modernas do Minecraft Java Edition. Mantenha-o atualizado via apt e teste após cada update para garantir compatibilidade com o server.jar e plugins usados.

Quanta RAM preciso para o servidor?

Depende do número de jogadores, do mundo e de plugins. Para servidores pequenos, 2 a 4 GB costumam funcionar. Com mais jogadores, farms e redstone, aumente a memória e reduza view‑distance. Monitore uso e ajuste -Xms/-Xmx no systemd.

Como mudar a porta padrão 25565?

Edite server.properties (server-port=NUMERO) e ajuste o firewall para a nova porta TCP. Atualize o port forwarding no roteador ou regras de segurança no provedor de nuvem. Avise os jogadores para conectar usando host:porta.

Posso usar domínios tipo play.seudominio.com?

Sim. Crie um registro DNS A apontando para o IP público do servidor. A propagação pode levar alguns minutos. Se mudar a porta padrão, os jogadores devem informar host:porta na conexão, a menos que você use um registro SRV configurado.

Como atualizar o server.jar com segurança?

Pare o serviço, faça backup do diretório do servidor, substitua o server.jar pela nova versão e inicie novamente. Verifique os logs. Com plugins, valide compatibilidade da nova versão em ambiente de teste quando possível.

Vale habilitar Paper/Purpur e Aikar flags?

Para servidores com mais jogadores e plugins, sim. Paper/Purpur trazem otimizações e controles extras. As Aikar flags ajustam o garbage collector, reduzindo pausas. Teste em seu ambiente, pois o ganho real depende da carga e dos plugins.

Precisa de uma mão com Linux, automação ou monitoramento?

Quer acelerar a configuração, hardening, backups ou migração para nuvem do seu servidor de Minecraft? Fale com um especialista e caminhe com segurança.

Falar sobre meu servidor

Veja também