<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pedro Cunha</title>
    <description>The latest articles on DEV Community by Pedro Cunha (@nevidomyyb).</description>
    <link>https://dev.to/nevidomyyb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1257299%2F412cef9e-4b9e-4c0e-91d2-1c6c3d7a0f7d.jpeg</url>
      <title>DEV Community: Pedro Cunha</title>
      <link>https://dev.to/nevidomyyb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nevidomyyb"/>
    <language>en</language>
    <item>
      <title>Como usamos tunelamento de rede para criar um servidor de minecraft.</title>
      <dc:creator>Pedro Cunha</dc:creator>
      <pubDate>Mon, 01 Jul 2024 08:00:44 +0000</pubDate>
      <link>https://dev.to/nevidomyyb/como-usamos-tunelamento-de-rede-para-criar-um-servidor-de-minecraft-3ih7</link>
      <guid>https://dev.to/nevidomyyb/como-usamos-tunelamento-de-rede-para-criar-um-servidor-de-minecraft-3ih7</guid>
      <description>&lt;p&gt;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?&lt;/p&gt;

&lt;p&gt;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 enfrentamos 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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;




&lt;h2&gt;
  
  
  Configurar uma instância da EC2
&lt;/h2&gt;

&lt;p&gt;Essa parte do trabalho foi realizada pelo &lt;a class="mentioned-user" href="https://dev.to/lucas_barros_1e6eb9a9ce38"&gt;@lucas_barros_1e6eb9a9ce38&lt;/a&gt; onde ele me providenciou a chave privada para acessar via SSH a máquina virtual.&lt;br&gt;
É importante liberar as portas 7000 (para conexão com o FRP) e a 25565 (porta padrão do servidor de minecraft).&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurar o FRP na máquina virtual
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;No momento você pode baixar a versão mais atual através desse &lt;a href="https://github.com/fatedier/frp/releases/tag/v0.58.1" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkqopsz6rpt1sitqbuvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkqopsz6rpt1sitqbuvp.png" alt="Image description" width="720" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Então você precisará acessar via SSH a máquina virtual da AWS com o comando&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ssh -i “chave_privada.pem” dns-publico-da-sua-maquina&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E para fazer o download do FRP via terminal você pode usar o comando&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;wget &lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Após descompactar e acessar o conteúdo da pasta, editaremos o arquivo &lt;strong&gt;frps.toml&lt;/strong&gt; para termos certeza que o conteúdo dele é:&lt;br&gt;
&lt;code&gt;bindPort = 7000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;br&gt;
Após isso rodaremos o comando abaixo para iniciar o serviço do FRP no servidor.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;./frps -c ./frps.toml &amp;amp;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O “&amp;amp;” é 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.&lt;br&gt;
Com isso podemos começar a configurar o serviço FRP localmente e também o servidor minecraft.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurar o ambiente localmente
&lt;/h2&gt;

&lt;p&gt;O primeiro passo é configurar o FRP na sua máquina local e para isso também iremos baixar através do mesmo &lt;a href="https://github.com/fatedier/frp/releases/tag/v0.58.1" rel="noopener noreferrer"&gt;link&lt;/a&gt;, porém no meu caso será a versão windows_amd64.&lt;br&gt;
Após descompactar editaremos o arquivo frpc.toml que deve estar mais ou menos assim&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;serverAddr = "dns-publico-da-sua-maquina"
serverPort = 7000

[[proxies]]
name = "identificador"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Salvando o arquivo e rodando o comando&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;frpc.exe -c frpc.toml&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;É 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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfs2auk9zb2hoeajg2h0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfs2auk9zb2hoeajg2h0.png" alt="Image description" width="720" height="107"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;O IP público para o servidor será "dns-publico-da-sua-maquina":25565.&lt;/p&gt;

&lt;p&gt;Boa jogatina!&lt;/p&gt;

</description>
      <category>tunelamento</category>
      <category>aws</category>
      <category>minecraft</category>
      <category>servidor</category>
    </item>
  </channel>
</rss>
