Ngrok - Explore seu localhost

Quem trabalha com desenvolvimento web sabe que, durante o desenvolvimento, é comum usar um servidor HTTP local para poder testar os sites e/ou aplicações desenvolvidas. Sabe também que, por ser um servidor local, outras pessoas não tem acesso ao que você desenvolve localmente, e isso pode ser um problema caso você queira que outra pessoa teste rapidamente o que você desenvolveu ou queira apenas mostrar uma funcionalidade.

Claro, em um setup adequado, o ambiente de produção na verdade seria dividido em três ambientes:

DEVELOPER – Possuindo o código da branch mais recentemente atualizada;

QA – Possuindo o código da branch que já possui um certo nível de estabilidade e está quase pronto para ser lançado;

PRODUÇÃO – Possuindo o código mais estável e que está realmente em produção;

E, com um setup assim, bastaria fazer o deploy para o ambiente de dev. O problema é que mesmo um deploy as vezes pode ser lento demais, logo, a melhor opção seria mostrar o que está mesmo rodando em sua máquina. Mas, e se a pessoa estiver longe?

Muitos optam por vários sistemas de deploy, isso falarei em um outro post, explicarei como automatizo minhas aplicações usando GIT + JENKINS

É por isso que hoje vou falar sobre o Ngrok, um programa de fácil uso, que não exige cadastro, e que permite criar o que é conhecido por túneis, entre a internet e o seu computador.

alt

Mas, o que é um tunelamento?



Um túnel é um simples proxy, ou redirecionamento, de um outro computador para o seu. Vou te dar um exemplo: Imagine que você, na máquina A, tem um servidor escutando na porta 8080.

Se você criar um túnel reverso para a máquina B na porta 9090, será possível que alguém, na máquina B, ao acessar http://127.0.0.1:9090 no navegador, veja o que na verdade está na sua máquina, e não na máquina B, pois todos os dados que foram para tal porta na verdade foram redirecionados para o seu computador e atendidos pelo seu servidor escutando na porta 8080.

E é isso que o ngrok faz?


O que o Ngrok faz, em termos exatos, é criar um túnel de algum servidor executando na sua máquina para os servidores do Ngrok.

Assim, se você tem algum serviço escutando na porta 8080, e executa o Ngrok para criar um túnel para a porta 8080 do seu computador, o Ngrok te fornecerá um endereço no estilo http://hash.ngrok.io que, ao ser acessado, implicará em acesso ao servidor rodando na sua máquina.

O detalhe que fez o Ngrok ser o assunto de hoje é que, mesmo sendo de uso simples, o Ngrok possui algumas características bem interessantes que chamam a atenção:

  • Inspetor de requisições: Você consegue literalmente ver o que o usuário do outro lado está acessando na sua máquina, incluindo cabeçalhos de requisição e resposta;

  • Replay de requisições: Se alguma requisição causou alguma exceção na sua aplicação, é possível dar replay nela, de forma que o mesmo conteúdo seja enviado novamente ao seu servidor para verificar se o problema foi corrigido; Proteção com usuário e senha: Por ser público, a URL do Ngrok pode ser acessada por qualquer um. Para maior proteção, é possível protegê-la definindo um usuário e senha para acesso à URL.

  • Suporte a websocket: Útil para aplicações em tempo real. Criação de túneis TCP: Em aplicações que não usam só HTTP, essa feature é útil para permitir o acesso de um servidor TCP qualquer na sua máquina por outras pessoas.
  • Código aberto: Você pode instalar o servidor do Ngrok em algum VPS que você possua e ter um servidor só seu para criação de túneis para a sua máquina. Multiplataforma: Pode ser usado em qualquer sistema operacional facilmente pois não possui dependências;
    Além disso, a simplicidade do software é absurda.
VAMOS INSTALAR!



Baixe ele pelo link:

Baixar NGROK

Após o download, entre na pasta Downloads e extraia o arquivo, executando:

$ unzip ngrok.zip

Caso não tenha o ZIP em sua maquina, instala executando:

$ sudo apt install unzip

Depois mova ele para pasta /BIN/ executando:

$ sudo mv /bin/ngrok/

Agora execute:

$ ngrok

Note que ele apresentará todas as funções da ferramentas, então vamos testar? Em meu teste vou rodar a porta 80!

$ ngrok http 80

alt

Obs:. É necessário ter o apache rodando em seu sistema operacional, reinicie ele caso de algum erro executando:

$ sudo /etc/init.d/apache2 restart

Agora só testar utilizando o link que o NGROK forneceu e voila!

Qualquer dúvida estou a inteira disposição! xD

Segue os links para o projeto:

Siga-nos no Facebook // Siga-nos no Whatsapp // Siga-nos no Telegram

Elton Pereira

Web Developer | Mobile | E-commerce | Pentester

Deseja se inscrever no sqlinjection | ' or 1=1 --?

Receba nossas últimas postagens diretamente em seu e-mail.

ou se inscreva via RSS com Feedly!