Executando verificação de segurança...
2

ngrok funcionando no termux

Ngrok: do Localhost para o Mundo

Esse artigo foi criado a partir desse, mas também no caso eu irei usar o termux-ngrok, pois esse artigo é voltado para os mobiles, sinto muito se eu disser algo errado, pois esse eo primeiro artigo que eu criei em minha vida.

O Ngrok expõe serviços que estão sendo executados localmente (do seu dispositivo) para a Internet, de forma rápida e segura.

imagem_capa

O que é Ngrok? O Ngrok é uma ferramenta CLI (Comand Line Interface) que te permite criar um túnel seguro, atrás de NATs e Firewalls, que expõem serviços locais para a Internet, tudo isso de forma fácil e segura.

Criar uma conexão via túnel pode ser bastante útil quando você precisa:

  • Mostrar um preview remotamente da sua aplicação para alguém;
  • Desenvolver integrações de Webhook;
  • Testar aplicativos móveis conectados ao seu backend em execução local;
  • Acessar seu Raspberry PI/Computador remotamente via SSH;
  • Testar um chatbot durante o desenvolvimento;

Acho que você já entendeu… né? hehe

Como instalar o Ngrok?

Nesse artigo eu irei usar o termux-ngrok, para maior compatibilidade com o seu dispositivo, vamos começar fazendo o download e a execução dele:

apt update && apt upgrade
apt install git
git clone https://github.com/tchelospy/termux-ngrok.git
cd termux-ngrok
chmod +x termux-ngrok.sh
./termux-ngrok.sh

Depois da execução do último comando, irá aparecer uma tela perguntando se você deseja instalar o Ngrok, basta digitar y, e apertar enter, e o download sera iniciado.

Depois de o download ser concluído, o Ngrok já estará disponível para uso, basta digitar ngrok no terminal para ver as opções que ele oferecer:

tela_help

Você pode usa-lo sem criar nenhum tipo de conta, porém você terá algumas limitações, como por exemplo, um tempo máximo que irá limitar suas seções após criar um túnel. Eu recomendo que você crie uma conta e assine o plano gratuito, pois ao executar o ngrok com uma conta vinculada, você elimina essa restrição de tempo limite por seção.

Para vincular o ngrok a sua conta, você precisa do Authtoken que é disponibilizado nas configurações de conta, com o token em mãos, basta executar o seguinte comando:

ngrok authtoken SEU_TOKEN

Expondo um web server local para a internet

Para fazer essa demonstração, vamos executar um simples servidor web em Node.js rodando em localhost na porta 3000. Para isso, eu criei um arquivo com o nome server.js, com o seguinte código:

// Arquivo server.js
const { createServer } = require("http");

const server = createServer((req, res) => {
  console.log("Requisição recebida");
  res.setHeader("Content-Type", "text/html");
  res.writeHead(200);
  res.end("<h1>Hello World</h1>");
});

server.listen(3000, "localhost", () => {
  console.log(`Servidor rodando na porta 3000!`);
});

No terminal, execute o código do arquivo:

node server.js

log

Agora, o próximo passo é criar um túnel na porta 3000 expondo esse servidor web via ngrok, pra isso abra outra janela de terminal e execute o seguinte comando:

ngrok http 3000

Você irá visualizar algo semelhante a isso:
ngrok_running

Na imagem acima, perceba as URLs de forwarding, são através desses links que seus serviços ficarão disponíveis para o mundo via internet (como bônus você ganha até um https). Compartilhe os links com quem você quiser ou integre-os com aplicações de terceiros conforme sua necessidade. Nesse exemplo, quando alguém acessar o endereço http://3c76-167-250-139-40.ngrok.io o tráfego será retransmitido para http://localhost:3000 por meio do processo ngrok que está em execução na máquina.


Por padrão, no plano free, as URLs de Forwarding do Ngrok são randômicas, ou seja, elas sempre mudam quando você cria um novo túnel.

Protegendo seu túnel com senha

Com o Ngrok você pode proteger a aplicação exposta via autenticação HTTP Basic, para isso utilize o comando:

ngrok http -auth="username:password" 3000

Agora todas as solicitações para a URL de forwarding do Ngrok, irão exigir o usuário e senha que você especificou como argumento.

Bem era só isso que eu queria mostra para vocês, apenas o basico.

0
1