Olá, Habr! Mais precisamente, os aventureiros que estão procurando como criar um servidor de Minecraft para jogar com amigos.
Este artigo é voltado para não programadores, não administradores de sistemas, em suma, não para o público principal do Habr. O artigo traz um guia passo a passo de como criar um servidor de Minecraft com IP dedicado, adaptado para pessoas que estão distantes da área de TI. Se você não se encaixa nisso, é melhor pular este artigo.
O que é um servidor?
Então, o que é um servidor? Se nos basearmos na definição de "servidor" como um componente de software, então o servidor é um programa que pode aceitar, processar e enviar dados recebidos de usuários (clientes) que estão conectados a esse servidor. Por exemplo, um site está hospedado em um certo servidor web, ao qual você acessa através do navegador. No nosso caso, o servidor de Minecraft gera o mundo ao qual os jogadores (clientes) se conectam, que podem andar, quebrar blocos, etc. O servidor de Minecraft é responsável pela conexão dos jogadores e por todas as suas ações.
É evidente que o servidor deve ser executado em um computador (máquina). Você pode criar um servidor no seu computador pessoal, mas, nesse caso:
- Você coloca a segurança do seu próprio computador em risco, abrindo portas nele.
- O servidor irá sobrecarregar seu computador, o que pode interferir no seu trabalho com ele.
- Você não pode manter o computador da sua casa em funcionamento 24/7: às vezes você o desliga, às vezes seu computador perde a conexão com a internet, etc.
- Para acessar seu servidor do mundo exterior, você terá que se conectar ao computador por endereço IP, que, para provedores de internet "domésticos", é dinâmico, ou seja, pode mudar a cada 2-3 dias por motivos que não dependem de você.
E como resolveremos esses problemas?
A solução para todos esses problemas é usar uma máquina virtual com um IP estático, ou seja, um endereço IP imutável.
Terminologia complicada? Vamos entender.
Vamos consultar a Wikipédia.
Máquina virtual (VM, do inglês virtual machine) — um sistema de software e/ou hardware que emula o hardware de uma determinada plataforma...Explicando de forma bem simples — é um computador dentro de um computador. Você também pode instalar um sistema operacional nele e trabalhar com ele como um computador comum.
Onde vamos obtê-la?
A resposta é simples — . Esta é uma plataforma que oferece uma variedade de serviços em nuvem, úteis para todos que trabalham com a web e não só. Para criar um servidor Minecraft, um dos produtos da AWS é perfeito — Amazon EC2 — uma máquina virtual em nuvem, disponível 24/7. A AWS oferece uma máquina virtual mínima (10GB SSD, 1GB RAM) gratuitamente por um ano, além de permitir a vinculação de um IP dedicado (estático) gratuito para acesso constante à sua VM (máquina virtual) pelo mesmo endereço.
Criamos e configuramos a VM
Acesse o site e registre-se. Em seguida, vá para o console de gerenciamento.

No console, entre os serviços, encontre EC2 e acesse.
É importante escolher um data center, ou seja, o local onde os servidores da Amazon estão. A escolha deve ser feita com base na sua localização, uma vez que a velocidade da conexão à internet varia, e você deve optar por um data center com o qual a comunicação a partir da sua cidade seja a mais rápida possível.

Para escolher o data center, recomendo usar o serviço , que mede a velocidade de transferência de pacotes com outras cidades.
No meu caso (cidade de Moscovo), o data center irlandês foi o mais adequado.
Agora é hora de criar a máquina virtual. Para isso, vá para a aba Launch instance

Vamos começar a configuração da VM.
1) Vamos escolher a imagem do sistema operacional. Para levantar servidores, o linux é muito conveniente, vamos usar a distribuição CentOS7
É importante notar que não haverá ambiente gráfico na sua máquina virtual, o acesso à máquina será feito através do console. Isso implica gerenciar a VM utilizando comandos, e não um mouse. Não se preocupe: isso não deve impedi-lo já agora ou fazer com que desista da ideia de levantar seu servidor Minecraft, achando que é "muito complicado". Trabalhar na máquina através do console não é difícil - em breve você verá isso por si mesmo.

2) Agora vamos definir a configuração técnica da VM. Para uso gratuito, a Amazon oferece a configuração t2.micro, um pouco insuficiente para um grande servidor Minecraft, mas é suficiente para jogar com amigos.

3) Os outros itens de configuração deixamos como padrão, mas vamos nos concentrar na aba Configure Security groups.

Aqui precisamos configurar o acesso às portas do servidor Minecraft.
Explicando de forma simples, a porta é um número não negativo que indica para quem estão destinados os dados de entrada do mundo externo. Em uma VM, pode haver vários serviços e servidores diferentes, portanto, todos os pacotes de dados de entrada contêm em seu cabeçalho a porta (número) do destinatário (serviço, servidor) dentro da VM.
Para servidores de Minecraft, o padrão de fato é o uso da porta 25565. Vamos adicionar uma regra que indique que o acesso à sua VM através desta porta é permitido.


Vamos para a janela de conclusão da criação da VM, clicando no botão Revisar e Iniciar
Configuração do par de chaves SSH para a VM
Assim, a conexão com a máquina será feita através do protocolo SSH.
O protocolo SSH funciona da seguinte maneira: um par de chaves é gerado (pública e privada), a chave pública é armazenada na VM, enquanto a chave privada fica no computador da pessoa que se conecta à VM (cliente). Ao se conectar, a VM verifica se a chave privada correspondente está disponível no cliente.
Clique no botão Iniciar. Você verá a seguinte janela:

Digite o nome do par de chaves (para sua conveniência) e clique em Download key pair. Você deve baixar o .pem arquivo que contém sua chave privada. Clique no botão Launch instances. Você acabou de criar uma máquina virtual, na qual será configurado o servidor.
Obtendo IP estático
Agora precisamos obter e associar um IP estático à nossa VM. Para isso, no menu, encontramos a aba IPs Elásticos e a acessamos. Na aba, clicamos no botão Allocate Elastic IP address e obtemos o IP estático.

Agora, o IP obtido deve ser associado à nossa VM. Para isso, escolhemos ela na lista e, no menu, Ações escolhemos Associate IP address

Em seguida, vamos associar a VM ao nosso endereço de IP.

Pronto!
Acessamos a VM
Agora que a VM está configurada e o endereço IP está associado, vamos nos conectar a ela e instalar nosso servidor de Minecraft.
Para conectar-se à VM via SSH, utilizaremos o programa . Instale o PuTTYgen imediatamente a partir desta mesma página.
Após a instalação do PuTTY, abra-o. Agora, precisamos configurar a conexão.

- Na aba Sessão selecione o tipo de conexão SSH, porta 22. Indique um nome para a conexão. O nome do host para conexão SSH é uma string do tipo:
nome_usuario@dns_publico.
O nome de usuário no AWS para CentOS por padrão é centos. Você pode visualizar seu DNS público aqui:

Eu obtive a seguinte string centos@ec2-54-246-186-12.eu-west-1.compute.amazonaws.com
- Na aba SSH -> Auth indique sua chave SSH privada. Ela está armazenada em um arquivo.
.pem, que baixamos anteriormente. Mas o PuTTY não consegue trabalhar com arquivos.pem, ele precisa de um formato.ppk. Para a conversão, utilizaremos o PuTTYgen. . O arquivo obtido.ppkVamos salvar e indicar aqui:

- Estamos nos conectando à VM, abrindo a conexão com o botão Abrir.
Parabéns! Acabamos de conectar à console da sua VM. Agora precisamos iniciar nosso servidor nela.
Instalação e configuração do servidor Minecraft
Vamos começar a configuração do nosso servidor. Primeiro, precisamos instalar alguns pacotes na nossa VM.
sudo yum install -y wget mc iptables iptables-services java screenVamos entender para que serve cada um dos pacotes.
- wget — utilitário para baixar arquivos no Linux. Com ele, iremos baixar os arquivos do servidor.
- mc — editor de texto em modo console. Destaca-se pela simplicidade e facilidade de uso para um usuário não preparado.
- iptables — utilitário para gerenciar e configurar o firewall, com ele nós abriremos a porta para o servidor na nossa VM.
- java — Minecraft funciona em Java, por isso é necessário para o funcionamento do servidor
- screen — gerenciador de janelas para Linux. Ele permitirá duplicar nossa console para iniciar o servidor. O fato é que o servidor deve ser iniciado através da console, se você se desconectar da sua VM, o processo do servidor será parado. Portanto, vamos executá-lo em uma janela de console separada.
Agora vamos configurar o firewall.
Um firewall é um elemento de rede de computador, seja de software ou de hardware, que controla e filtra o tráfego de rede que passa por ele de acordo com regras definidas. (Wikipedia)
Explicando de forma simples: imagine uma cidade-fortaleza. Ela está sendo atacada o tempo todo, enquanto na cidade a vida flui normalmente. Para acessar a cidade, há portões nas muralhas da fortaleza, onde guardas verificam as listas e decidem se podem deixar aquela pessoa entrar. O papel das muralhas e portões em redes de computadores é desempenhado pelo firewall.
sudo mcedit /etc/sysconfig/iptablesAcabamos de criar o arquivo de configuração do firewall. Vamos preenchê-lo com os dados padrão de configuração, incluindo uma regra para a porta 25565, que é a porta padrão para o servidor Minecraft.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMITFecharemos o arquivo com um clique F10, salvando as alterações.

Agora, vamos iniciar o firewall e ativá-lo para inicialização automática:
sudo systemctl enable iptables
sudo systemctl restart iptablesArmazenaremos os arquivos do servidor em uma pasta separada, criaremos essa pasta, entraremos nela e baixaremos os arquivos do servidor. Para isso, devemos usar wget
mkdir minecraft
cd minecraft
wgetPrecisamos encontrar o link direto para download .jar do arquivo do servidor. Por exemplo, o link do arquivo do servidor versão 1.15.2:
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jarVerifique o conteúdo da pasta usando o comando ls, certifique-se de que os arquivos foram baixados.

Vamos iniciar o arquivo do servidor. Agora, o servidor não funcionará: ele criará todos os arquivos necessários para seu funcionamento e reclamará que você não concordou com os termos da licença EULA. Aceitaremos os termos, abrindo o arquivo eula.txt
sudo mcedit eula.txtConfirme sua aceitação, alterando a entrada para:
eula=trueAbra o arquivo server.properties: este é o arquivo de configuração do seu servidor.
É necessário fazer a seguinte alteração:
online-mode=falseAs outras configurações ficam a seu critério.
Iniciar o servidor
Chegou a hora de iniciar o servidor. Como eu já disse, o servidor é iniciado diretamente do console, mas se fecharmos o console principal — o processo do servidor será interrompido. Portanto, vamos criar mais um console:
screenNeste console, executaremos o servidor:
sudo java -Xms512M -Xmx1024M -jar .jar --noguiO servidor leva cerca de 45 segundos para iniciar, não interrompa o processo. Quando o servidor estiver inicializado e em funcionamento, você verá algo como:

Parabéns! Você acabou de levantar e iniciar seu servidor de Minecraft. Agora é importante sair corretamente do segundo console para que ele continue funcionando com o servidor em execução. Para isso, pressione Ctrl+A, então D. Você deve voltar ao console principal e ver uma mensagem como [desanexado de 1551.pts-0.ip-172-31-37-146]. Se precisar voltar ao console em que o servidor está rodando, use screen -r
Agora você pode se desconectar da sua VM. Seu servidor estará disponível no endereço IP estático que obtivemos anteriormente, na porta 25565.

Assim, o endereço para acessar o servidor será :25565.
Conclusão
Com este guia, você poderá configurar facilmente um servidor Minecraft gratuito com IP dedicado. O artigo foi escrito em uma linguagem simples e é voltado para não especialistas. Por isso, é interessante ouvir os comentários de especialistas, já que ao simplificar o material, podem ocorrer erros factuais na terminologia.
Fonte: habr.com
