📡 O que é o ngrok?
Página oficial https://dashboard.ngrok.com/get-started/
O ngrok é uma ferramenta multiplataforma que cria túneis seguros entre o seu computador local e a Internet pública. Permite expor servidores web, APIs, SSH ou qualquer serviço TCP/IP que esteja em execução na sua máquina (ex: localhost:3000, localhost:80, porta 22) através de um endereço público https://*.ngrok-free.app.
• Demonstrar projetos web a clientes sem precisar de servidor em produção.
• Testar webhooks (pagamentos, notificações) em ambiente de desenvolvimento.
• Partilhar um servidor local com colegas ou fazer testes remotos.
• Expor temporariamente uma API, base de dados ou ambiente de desenvolvimento.
• Trabalhar com bots de WhatsApp, Telegram ou plataformas que exigem HTTPS público.
O ngrok estabelece uma ligação segura entre o agente (no seu PC) e a cloud da ngrok. A cloud atribui um subdomínio aleatório (ex:
abc123.ngrok-free.app) ou um domínio personalizado (planos pagos) e encaminha todo o tráfego HTTPS/HTTP diretamente para o serviço local que definiu.
📋 Pré‑requisitos
- Windows 10/11 ou Ubuntu 20.04/22.04/24.04 (recomenda-se versão LTS).
- Acesso à Internet para descarregar o binário e autenticar.
- Um servidor/serviço local já em execução (ex: Apache, Nginx, Node.js, Flask, SSH).
- Conta gratuita em ngrok.com (recomendada para maior tempo de túnel e subdomínios fixos).
🪟 Instalação no Windows
⬇️ Descarregar o executável
📂 Adicionar ao PATH (opcional, mas recomendado)
✅ Verificar instalação
🐧 Instalação no Ubuntu (Linux)
⬇️ Método oficial (recomendado)
📦 Alternativa via Snap (Ubuntu)
✅ Verificar instalação
🔑 Autenticar o ngrok (necessário para túneis)
Para utilizar o ngrok, precisa de associar o agente à sua conta (gratuita ou paga).
📧 Obter o token de autenticação
⚙️ Configurar o token (Windows e Ubuntu)
ngrok config edit e adicione:
version: "2" authtoken: SEU_TOKEN_AQUI
🚀 Utilizar ngrok (exemplos práticos)
🌐 Expor um servidor web na porta 80
O ngrok irá gerar um URL do tipo https://xxxx.ngrok-free.app. Qualquer pessoa com esse link acede ao seu servidor local.
🧪 Expor um servidor Node.js/React (porta 3000)
🐍 Expor uma aplicação Flask/Django (porta 5000)
🔒 Expor SSH (porta 22) – útil para acesso remoto
Receberá um endereço como 0.tcp.ngrok.io:12345.
📌 Expor com subdomínio fixo (plano gratuito permite reservar domínios estáticos)
📄 Guardar pedidos HTTP para inspeção (web interface)
Acede à interface de inspeção em http://127.0.0.1:4040 para ver detalhes de cada requisição.
- URL público (Forwarding)
- Web Interface (localhost:4040)
- Estatísticas de tráfego
🛠️ Comandos avançados e resolução de erros
📋 Listar túneis ativos
🛑 Parar túneis e terminar o agente
🔁 Parar um túnel específico mantendo o agente
📁 Configuração persistente (ficheiro YAML)
🧪 Testar túnel com configuração guardada
⚠️ Erros comuns e soluções
| Erro | Causa | Solução |
|---|---|---|
ERR_NGROK_334endpoint already online | Um túnel com o mesmo subdomínio já está ativo noutra sessão | 1. Parar o túnel anterior (Ctrl+C no terminal onde corre)2. Usar taskkill /F /IM ngrok.exe (Windows)3. Usar --subdomain diferente |
Failed to start tunnelauthentication failed | Token ausente ou inválido | Executar ngrok config add-authtoken com o token correto |
address already in use | A porta local já está ocupada | Verifique se o serviço local está em execução e noutra porta |
session rate limit | Plano gratuito tem limites de conexões por minuto | Aguarde alguns segundos ou faça upgrade para plano pago |
ngrok service stop retornar Acesso negado, execute o PowerShell/CMD como administrador ou utilize taskkill /F /IM ngrok.exe.
Enquanto o túnel estiver ativo, aceda a
http://127.0.0.1:4040 para:• Ver todas as requisições feitas ao URL público (headers, corpo, método).
• Reenviar pedidos (Replay).
• Analisar erros e latência.
• Configurar túneis e autenticação básica.