anúncios

segunda-feira, 1 de março de 2021

Expondo seu ambiente local com Ngrok

O que é Ngrok?

Ngrok é uma ferramenta de linha de comando que te permite criar um túnel seguro, por meio de NAT e Firewall, que expõem serviços locais para a Internet, tudo isso de forma fácil e segura.

Ao criar uma conexão com tunelamento pode ser útil quando você precisa:

  • Mostrar uma prévia remota da aplicação que está localhost para algum cliente;
  • Desenvolver integrações de Webhook;
  • Testar aplicativos móveis conectado no Backend em execução local;

Instalando o Ngrok

O Ngrok é multiplataforma, assim pode ser instalado nos SOs Windows, Linux, macOS.

O primeiro passo é fazer o download Ngrok conforme o seu SO.

Considerando que salvou o arquivo .zip no diretório Downloads

$ cd $HOME/Downloads
$ sudo unzip ngrok-stable-linux-amd64.zip -d /opt

Agora só digitar no terminal, conforme segue:

$ /opt/ngrok

Para poder executar o ngrok em qualquer diretório, adicione no PATH do SO.

Tendo uma aplicação web no seu localhost na porta 80, execute

$ /opt/ngrok http 80

Irá exibir o log, com um link de domínio randômico para compartilhar para qualquer pessoa acessar, a aplicação está em execução na sua máquina com tunelamento no cloud da Ngrok.

É possível usar o ngrok sem nenhum tipo de conta, mas tem algumas limitações, por exemplo, o tempo máximo que irá limitar as seções após criar o túnel. Recomendo que crie a conta e assine o plano gratuito , com isso ao executar o ngrok na conta vinculada, elimina essa limitação de tempo por seção.

Para vincular o Ngrok na sua conta, precisa do Authtoken que é disponibilizado na configuração de conta, obtendo esse token, execute o comando:

$ /opt/ngrok authtoken [seu-authtoken-aqui]

Coloque sua aplicação localhost exposta na Internet

$ /opt/ngrok http 80

O Ngrok disponibiliza uma interface web para poder analisar em tempo real todos os detalhes das requições e respostas que estão trafegando no seu túnel.

Acesse no browser http://127.0.0.1:4000

Terá acesso todos os detalhes da requisição e da resposta, incluindo:

  • Tempo duração;
  • Headers;
  • Payload;
  • Parâmetros de consulta;
  • Bytes brutos

Outros recursos e configurações

É possível criar um túnel via TCP e expor qualquer serviço que esteja executndo localmente, por exemplo: SSH, SGBDs: MySQL (3306), PostgreSQL (5432).

Liberar acesso externo ao SSH
$ /opt/ngrok tcp 22

Liberar acesso externo ao SGBD MySQL
$ /opt/ngrok tcp 3306

Liberar acesso externo ao SGBD PostgreSQL
$ /opt/ngrok tcp 5432

O Ngrok vem com um file server embutido, assim pode criar um túnel HTTP direcionando para o diretório do seu sistema de arquivo local.

Exemplo para o diretório /srv/share

$ /opt/ngrok tcp --auth="user:password" file:///srv/share

Referências:

https://ngrok.com/docs

Feito!

Nenhum comentário:

Postar um comentário