DEV Community

Celso Nery
Celso Nery

Posted on

Servidor Minecraft - Parte 1: Instalação Bare Metal

🇺🇸 English version comming soon

Servidor Minecraft - Parte 1: Instalação Bare Metal

Introdução

Rodar seu próprio servidor de Minecraft dá controle total sobre o jogo, mods, regras, mundo persistente, e nenhuma dependência de servidores de terceiros. Esta é a primeira parte de uma série que dará 3 opções de instalação: começamos aqui com a instalação bare metal (direto no sistema operacional), depois avançamos para Docker e, por fim, para Kubernetes.

Existem duas versões principais do jogo, com servidores incompatíveis entre si:

  • Bedrock Edition: multiplataforma (Windows, consoles, celular), usa o protocolo UDP;
  • Java Edition: a versão "clássica" para PC, com o maior ecossistema de mods e plugins, usa o protocolo TCP.

Vou cobrir a instalação de ambas.

Requisitos do sistema

Os requisitos variam principalmente com o número de jogadores simultâneos e se o mundo usa mods/plugins pesados:

Jogadores RAM recomendada CPU
1-5 2GB 2 cores
5-10 4GB 2-4 cores
10-20+ 8GB+ 4+ cores

A versão Java tende a consumir mais recursos que a Bedrock para o mesmo número de jogadores, especialmente com plugins como Spigot/Paper.

Instalando o Minecraft Bedrock Server

Download

Baixe o pacote oficial do servidor Bedrock para Linux diretamente da página oficial:

minecraft.net/download/server/bedrock

Minecraft Bedrock Server download page

Após o download, extraia o arquivo .zip em um diretório dedicado:

mkdir -p ~/minecraft-bedrock
cd ~/minecraft-bedrock
unzip bedrock-server-*.zip
chmod +x bedrock_server
Enter fullscreen mode Exit fullscreen mode

Rodando o servidor

LD_LIBRARY_PATH=. ./bedrock_server
Enter fullscreen mode Exit fullscreen mode

O servidor Bedrock depende de bibliotecas compartilhadas no próprio diretório, por isso a variável LD_LIBRARY_PATH=. é necessária para ele encontrá-las corretamente.

Para manter o servidor rodando mesmo após fechar o terminal, use screen ou tmux:

screen -S minecraft-bedrock
LD_LIBRARY_PATH=. ./bedrock_server
# Ctrl+A, D para sair sem encerrar o processo
Enter fullscreen mode Exit fullscreen mode

Configurando o servidor

As opções do servidor Bedrock ficam no arquivo server.properties, gerado automaticamente na primeira execução. A documentação completa de todas as propriedades disponíveis está na wiki oficial:

minecraft.fandom.com/wiki/Server.properties

Algumas das mais usadas:

server-name=Meu Servidor Bedrock
gamemode=survival
difficulty=normal
max-players=10
online-mode=true
white-list=false
level-name=Bedrock level
Enter fullscreen mode Exit fullscreen mode

Após alterar o arquivo, reinicie o servidor para aplicar as mudanças.

Instalando o Minecraft Java Server

Pré-requisito: Java

O servidor Java precisa de uma JRE/JDK instalada, a versão exata depende da versão do Minecraft (versões mais recentes exigem Java 17 ou 21). Para instalar no Debian:

sudo apt install openjdk-21-jre-headless
java -version
Enter fullscreen mode Exit fullscreen mode

Download

Baixe o server.jar da versão desejada na página oficial de downloads do Minecraft Java Server.

www.minecraft.net/en-us/download/server

Minecraft Java Server download page

mkdir -p ~/minecraft-java
cd ~/minecraft-java
# Baixe o server.jar correspondente à versão desejada para este diretório
Enter fullscreen mode Exit fullscreen mode

Aceitando a EULA

Na primeira execução, o Minecraft cria um arquivo eula.txt e recusa iniciar até que você aceite os termos manualmente:

echo "eula=true" > eula.txt
Enter fullscreen mode Exit fullscreen mode

Rodando o servidor

java -Xmx2G -Xms1G -jar server.jar nogui
Enter fullscreen mode Exit fullscreen mode
  • -Xmx2G: memória máxima que a JVM pode usar;
  • -Xms1G: memória inicial alocada;
  • nogui: roda sem a interface gráfica, ideal para servidores.

Assim como no Bedrock, use screen ou tmux para manter o processo rodando em segundo plano.

Gerenciando o servidor

Lista de usuários (whitelist)

Restringir quem pode entrar no servidor é feito via whitelist.

No Bedrock, edite whitelist.json:

[
  { "name": "seu_username" }
]
Enter fullscreen mode Exit fullscreen mode

E habilite no server.properties: white-list=true.

No Java, use o console do servidor (o terminal onde ele está rodando):

whitelist add seu_username
whitelist on
Enter fullscreen mode Exit fullscreen mode

Permissões de usuários (ops)

Dar permissões de administrador (comandos de operador) também difere entre as versões.

No Bedrock, edite permissions.json:

[
  { "permission": "operator", "xuid": "seu_xuid" }
]
Enter fullscreen mode Exit fullscreen mode

No Bedrock, é necessário o XUID do jogador (identificador da conta Xbox Live), não apenas o nome de usuário.

No Java, pelo console:

op seu_username
Enter fullscreen mode Exit fullscreen mode

Expondo para a internet

Por padrão, o servidor só é acessível na rede local. Para permitir conexões externas:

  1. Libere a porta no firewall da própria máquina:

    • Bedrock: porta 19132/UDP
    • Java: porta 25565/TCP
  2. Configure o redirecionamento de porta (port forward) no seu roteador, apontando a porta externa para o IP interno da máquina que roda o servidor.

Criando um DNS dinâmico com No-IP

A maioria das conexões residenciais tem IP público dinâmico, ele muda periodicamente, quebrando o acesso de quem salvou o IP antigo. O No-IP resolve isso, associando um domínio fixo (por exemplo, meuservidor.ddns.net) ao seu IP atual, atualizado automaticamente.

  1. Crie uma conta gratuita em noip.com;
  2. Registre um hostname (por exemplo, meu-minecraft.ddns.net);
  3. Instale o cliente DUC (Dynamic Update Client) no seu servidor ou roteador (muitos roteadores já têm suporte nativo a No-IP nas configurações de DNS dinâmico);
  4. Compartilhe o hostname com seus amigos em vez do IP, ele continuará funcionando mesmo quando seu IP mudar.

Próximos passos

Com o servidor rodando bare metal, gerenciado manualmente com screen/tmux, já é possível jogar com amigos. Mas esse modelo tem limitações: sem isolamento, sem reinício automático em caso de falha, e configuração manual do zero se precisar migrar de máquina. Na Parte 2 desta série, vamos rodar o mesmo servidor em um container Docker, resolvendo esses problemas com uma configuração declarativa e reprodutível.

Continua na Parte 2.

Top comments (0)