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:
Feito!
Nenhum comentário:
Postar um comentário