Lädt...


🔧 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

Image description

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.

Image description

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 usamos tunelamento de rede para criar um servidor de minecraft.


📈 171.1 Punkte
🔧 Programmierung

🔧 Do clique à estratégia: como usamos o Snowplow Analytics para emitir e capturar eventos de clique


📈 59.16 Punkte
🔧 Programmierung

🔧 Como criar um Servidor Web Java Sem Framework


📈 58.62 Punkte
🔧 Programmierung

🔧 Como Utilizar IA Generativa do Google Cloud com Vertex AI para Criar um Projeto Simples


📈 48.55 Punkte
🔧 Programmierung

🔧 Go + Docker: Como criar as melhores imagens Docker para aplicações Golang


📈 48.55 Punkte
🔧 Programmierung

🔧 Go, Gemini e Alexa: Como criar automações para o seu dia a dia


📈 48.55 Punkte
🔧 Programmierung

🔧 Como criar e hospedar um site de documentação para o seu projeto usando Hugo e Netlify


📈 48.55 Punkte
🔧 Programmierung

🔧 3 dicas para criar uma estratégia moderna de Testes para Microsserviços Spring Boot


📈 48.1 Punkte
🔧 Programmierung

🔧 O que é JSON (Javasript Object Notation) e como usamos ?


📈 46.66 Punkte
🔧 Programmierung

📰 Rede von Angela Merkel im Livestream: So sehen Sie die Rede zur Corona-Lage online


📈 37.38 Punkte
📰 IT Nachrichten

🔧 Como criar um emulador de jogos


📈 36.05 Punkte
🔧 Programmierung

🔧 Como criar um bot do discord com javascript


📈 36.05 Punkte
🔧 Programmierung

🔧 Como criar requisição de Crud Básico em Javascript usando Fetch API


📈 36.05 Punkte
🔧 Programmierung

🍏 Como criar um GIF em qualquer Mac da maneira certa


📈 36.05 Punkte
🍏 iOS / Mac OS

🔧 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 e Publicar Pacotes TypeScript no NPM


📈 36.05 Punkte
🔧 Programmierung

🔧 Como criar um Load Balancer no Microsoft Azure


📈 36.05 Punkte
🔧 Programmierung

🔧 SQL Server + Docker Compose: como criar e popular bancos de dados ao inicializar os containers


📈 36.05 Punkte
🔧 Programmierung

🔧 Testando das trincheiras: Como criar mocks e stubs dinâmico com mockito em java


📈 36.05 Punkte
🔧 Programmierung

🔧 Como criar uma conta gratuita no Microsoft Azure


📈 36.05 Punkte
🔧 Programmierung

🔧 NestJS - criar um endpoint para upload de diversos arquivos


📈 35.6 Punkte
🔧 Programmierung

🔧 15 Livros para você Aprender a Criar Sua Própria Linguagem de Programação


📈 35.6 Punkte
🔧 Programmierung

🔧 Web ou App? Qual o melhor para criar em Flutter?


📈 35.6 Punkte
🔧 Programmierung

🔧 Ocultar Slides ou Criar Novas Derivações: Qual a Melhor Abordagem para Apresentações?


📈 35.6 Punkte
🔧 Programmierung

🔧 Criar massa de dados para teste


📈 35.6 Punkte
🔧 Programmierung

🔧 Utilizando o CustomPaint para criar assinatura.


📈 35.6 Punkte
🔧 Programmierung

🔧 Cómo desplegar un servidor PostgreSQL Flexible en Azure con Terraform y Azure Key Vault


📈 35.53 Punkte
🔧 Programmierung

🔧 Como rodar um servidor NodeJS em um smartphone Android


📈 35.53 Punkte
🔧 Programmierung

🔧 Como eu criei um servidor de PalWorld na AWS com start por bot no Discord — Parte 2


📈 35.53 Punkte
🔧 Programmierung

🔧 Como almacenar imágenes de docker en tu propio servidor (manualmente)


📈 35.53 Punkte
🔧 Programmierung

🔧 Dominando o Next.js: Dicas para Renderização do Lado do Servidor


📈 35.08 Punkte
🔧 Programmierung

🔧 Despliegue de aplicación de Django con Github Actions para un servidor propio


📈 35.08 Punkte
🔧 Programmierung

🔧 Servidor para Blog, com Autenticação JWT - Node.Js & Mysql


📈 35.08 Punkte
🔧 Programmierung

matomo