🔧 Como usamos tunelamento de rede para criar um servidor de minecraft.
Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to
Anualmente todos nós sentimos a necessidade de jogar Minecraft, seja quando há alguma grande atualização ou queremos relembrar os velhos tempos, e com a atualização da 1.21 não foi diferente, porém, como fugir de serviços grátis e de baixa qualidade como Aternos ou não depender do Hamachi/Radmin para criar um servidor de Minecraft privado?
Isso que nós nos perguntamos quando iniciamos nossa jogatina anual, o mais fácil seria abrir uma porta usando o redirecionamento de porta no roteador e “hostear” o servidor na própria máquina enquanto jogavamos, mas enfretamos um problema: o provedor de internet. Atualmente existem mais computadores domésticos do que IPv4 no mundo, isso faz com que os provedores não forneçam um IPv4 único para cada rede contratada e dificulte o redirecionamento de porta/aplicações self-hosted na própria casa.
Foi ai que usamos o serviço de EC2 da AWS e um proxy reverso (FRP) para criar um tunelamento entre a rede pública e o servidor que estava rodando localmente na máquina, vamos recapitular tudo:
Configurar uma instância da EC2
Essa parte do trabalho foi realizada pelo @lucas_barros_1e6eb9a9ce38 onde ele me providenciou a chave privada para acessar via SSH a máquina virtual.
É importante liberar as portas 7000 (para conexão com o FRP) e a 25565 (porta padrão do servidor de minecraft).
Configurar o FRP na máquina virtual
O FRP (Fast Reverse Proxy) é uma solução que facilita a criação de túnel de redes para acessar serviços internos de redes privadas através da internet.
Para isso você precisará baixar a versão mais atualizada do FRP compatível com o sistema operacional que você está rodando, no caso da máquina virtual será o linux_amd64.
No momento você pode baixar a versão mais atual através desse link
Então você precisará acessar via SSH a máquina virtual da AWS com o comando
ssh -i “chave_privada.pem” dns-publico-da-sua-maquina
E para fazer o download do FRP via terminal você pode usar o comando
wget
Após descompactar e acessar o conteúdo da pasta, editaremos o arquivo frps.toml para termos certeza que o conteúdo dele é:
bindPort = 7000
Estamos especificando que a porta 7000 é a que será usada para a conexão entre o FRP do servidor com o FRP da máquina local.
Após isso rodaremos o comando abaixo para iniciar o serviço do FRP no servidor.
./frps -c ./frps.toml &
O “&” é usado para rodar o serviço sem anexar a saída no terminal e assim podemos fechar a conexão com a máquina virtual da AWS sem parar o serviço do FRP.
Com isso podemos começar a configurar o serviço FRP localmente e também o servidor minecraft.
Configurar o ambiente localmente
O primeiro passo é configurar o FRP na sua máquina local e para isso também iremos baixar através do mesmo link, porém no meu caso será a versão windows_amd64.
Após descompactar editaremos o arquivo frpc.toml que deve estar mais ou menos assim
serverAddr = "dns-publico-da-sua-maquina"
serverPort = 7000
[[proxies]]
name = "identificador"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565
Salvando o arquivo e rodando o comando
frpc.exe -c frpc.toml
É esperado que a conexão com o FRP que está rodando na máquina virtual da AWS seja estabelecida e portanto uma saída parecida com essa será exibida no terminal.
Como configuramos que a porta usada para o servidor minecraft é a padrão (25565) então idealmente todo o tráfego feito para a porta 25565 da rede da máquina virtual está sendo redirecionado para a porta 25565 da minha rede local, então basta apenas rodar o servidor do minecraft na porta 25565 da minha rede local que os jogadores terão acesso ao servidor de minecraft.
O IP público para o servidor será :25565.
Boa jogatina!
...
🔧 Como criar um Servidor Web Java Sem Framework
📈 58.62 Punkte
🔧 Programmierung
🔧 Como criar um emulador de jogos
📈 36.05 Punkte
🔧 Programmierung
🔧 Como criar um bot do discord com javascript
📈 36.05 Punkte
🔧 Programmierung
🔧 Como Criar sua Primeira Aplicação com Lithe
📈 36.05 Punkte
🔧 Programmierung
🔧 Como criar um Repository Genérico em Golang?
📈 36.05 Punkte
🔧 Programmierung
🔧 Como criar um Load Balancer no Microsoft Azure
📈 36.05 Punkte
🔧 Programmierung
🔧 Criar massa de dados para teste
📈 35.6 Punkte
🔧 Programmierung