~ / tutoriais /ngrok-vs-expose-qual-a-melhor-ferramenta-para-tunelar-seu-localhost $ _

Ngrok vs Expose: Qual a Melhor Ferramenta para Tunelar seu Localhost?

Lucas Souza Lucas Souza 5 min de leitura Tutoriais
Ngrok vs Expose: Qual a Melhor Ferramenta para Tunelar seu Localhost?

Tunelar um servidor local (localhost) para a internet é essencial para desenvolvedores que precisam compartilhar projetos, testar APIs ou integrar webhooks. Duas ferramentas populares para isso são o Ngrok e o Expose, mas, na minha opinião, o Ngrok se destaca, especialmente na versão gratuita. Vamos comparar os dois e entender por que ele é minha escolha.

O que é Ngrok?

O Ngrok é uma ferramenta que cria túneis seguros do seu localhost para a internet, fornecendo uma URL pública (como seu-nome.ngrok-free.app) para acessar seu serviço local. Na versão gratuita, ao registrar uma conta, você ganha acesso a recursos que tornam o uso prático e estável.

O que é Expose?

O Expose, frequentemente usado no ecossistema Laravel, também permite expor seu localhost com uma URL pública. Porém, sua versão gratuita é mais limitada, o que pode dificultar o uso em cenários prolongados ou dinâmicos.

Comparação: Ngrok vs Expose

  1. DNS Fixo vs DNS Dinâmico

    • Ngrok: Na versão gratuita, ao vincular uma conta, você pode usar um DNS fixo (como um subdomínio estático sob ngrok-free.app). Isso elimina a dor de cabeça de URLs que mudam constantemente, oferecendo consistência para testes ou compartilhamentos.
    • Expose: O Expose gera um DNS dinâmico que muda a cada nova sessão. Isso significa que, ao reiniciar o túnel, a URL é alterada, exigindo que você atualize manualmente links compartilhados — algo inconveniente para demonstrações ou integrações.
  2. Tempo de Sessão

    • Ngrok: Com uma conta gratuita, as sessões não têm limite de tempo. Você pode manter o túnel ativo pelo tempo que precisar, desde que o processo esteja rodando, o que é perfeito para projetos contínuos.
    • Expose: Na versão gratuita, as sessões são limitadas a 30 minutos. Após esse período, o túnel expira, e você precisa reiniciá-lo, gerando uma nova URL. Esse limite é um obstáculo para quem precisa de acesso prolongado.
  3. Praticidade

    • O Ngrok é fácil de configurar em qualquer sistema operacional e tem uma comunidade ampla, com boa documentação. O Expose, embora simples, é mais voltado para usuários do Laravel, o que pode complicar seu uso em outros contextos.

Por que eu prefiro o Ngrok?

Minha preferência pelo Ngrok se baseia em dois pontos principais: DNS fixo e sessões sem limite de tempo. O DNS fixo na versão gratuita (disponível ao criar uma conta) garante que eu não precise atualizar URLs constantemente, enquanto a ausência de limite de tempo me dá flexibilidade para trabalhar sem interrupções. Para demonstrações, testes de APIs ou qualquer situação que exija estabilidade, o Ngrok é muito mais conveniente que o Expose.

Como Instalar e Configurar o Ngrok: Tutorial Passo a Passo

O Ngrok é uma ferramenta poderosa para criar túneis seguros entre seu localhost e a internet. Com ele, você pode compartilhar seu servidor local com uma URL pública fixa (na versão gratuita, ao vincular uma conta). Este tutorial vai te guiar pela instalação e configuração básica em diferentes sistemas operacionais, além de mostrar como usá-lo na prática.

Pré-requisitos

  • Um computador com Windows, macOS ou Linux.
  • Acesso à internet.
  • (Opcional) Um servidor local rodando (ex.: um site em localhost:3000 ou localhost:8000).

Passo 1: Criar uma Conta no Ngrok

  1. Acesse o site oficial do Ngrok: ngrok.com.
  2. Clique em Sign Up e crie uma conta gratuita com seu e-mail ou usando GitHub/Google.
  3. Após o cadastro, faça login e vá até o Dashboard. Você verá seu Authtoken (um código como 2aBcdEfGhiJkLmNopQrStUvWxYz_1234567890abcdefg), que será usado mais tarde.

Passo 2: Baixar o Ngrok

  1. No Dashboard, clique em Getting Started > Download.
  2. Escolha a versão compatível com seu sistema operacional:
    • Windows: Baixe o arquivo .zip.
    • macOS: Baixe o arquivo .zip ou use o Homebrew (mais abaixo).
    • Linux: Baixe o arquivo .zip ou use o comando para sua distribuição.
  3. Após o download, extraia o arquivo ngrok para uma pasta de sua escolha (ex.: C:\ngrok no Windows ou ~/ngrok no macOS/Linux).

Passo 3: Configurar o Authtoken

  1. Abra o terminal (Prompt de Comando no Windows, Terminal no macOS/Linux).
  2. Navegue até a pasta onde o Ngrok está (ex.: cd C:\ngrok ou cd ~/ngrok).
  3. Execute o comando abaixo, substituindo SEU_AUTHTOKEN pelo código do Dashboard:
./ngrok authtoken SEU_AUTHTOKEN
./ngrok authtoken 2aBcdEfGhiJkLmNopQrStUvWxYz_1234567890abcdefg //lembre de trocar o token
  1. Você verá uma mensagem de confirmação. O Authtoken agora está salvo, e você terá acesso aos recursos da conta gratuita, como DNS fixo.

Passo 4: Instalar (Opcional para macOS/Linux)

  • Windows: Não precisa de instalação extra. Basta usar o executável ngrok.exe na pasta.
  • macOS (via Homebrew):
brew install ngrok

Após instalar, configure o Authtoken como no Passo 3.

  • Linux (via Snap ou manual):
    • Snap: sudo snap install ngrok
    • Manual: Mova o arquivo ngrok para /usr/local/bin/ com:
sudo mv ngrok /usr/local/bin/

Configure o Authtoken depois.

Passo 5: Testar o Ngrok

  1. Inicie um servidor local (exemplo: um site em Python com python -m http.server 8000 ou um app Node.js em localhost:3000).
  2. No terminal, execute:
ngrok http 8000

(Substitua 8000 pela porta do seu servidor.)

  1. O Ngrok exibirá uma interface com URLs públicas, como:
Forwarding https://seu-nome.ngrok-free.app -> localhost:8000
  1. Abra a URL (https://seu-nome.ngrok-free.app) no navegador. Você verá seu servidor local funcionando na internet!

Dicas Extras

  • DNS Fixo: Com a conta gratuita, a URL será fixa enquanto o túnel estiver ativo (ex.: https://seu-nome.ngrok-free.app).
  • Manter Ativo: Deixe o terminal aberto para o túnel continuar funcionando.
  • Inspeção: Acesse http://localhost:4040 no seu computador para ver logs e requisições ao túnel.

Resolução de Problemas

  • Erro de Authtoken: Verifique se copiou o código corretamente e se há espaços extras.
  • Porta em Uso: Certifique-se de que a porta escolhida (ex.: 8000) está sendo usada por seu servidor local.
  • Firewall: No Windows, permita o Ngrok nas configurações de firewall, se necessário.
Lucas Souza
Lucas Souza

{AI Engineer} — apaixonado por Laravel, arquitetura de software e construir produtos com impacto. Compartilho aqui tutoriais, descobertas e reflexões sobre o dia a dia de engenharia.

Você também pode gostar

Tutorial: Como Integrar o Laravel com Twilio para Enviar e Receber Mensagens no WhatsApp
Tutoriais

Tutorial: Como Integrar o Laravel com Twilio para Enviar e Receber Mensagens no WhatsApp

Neste post, eu te ensino a integrar o Laravel com o Twilio pra enviar e receber mensagens no WhatsApp. Configuro o ambiente (usei Docker com Sail, mas você escolhe o seu), crio uma conta no Twilio, pego as credenciais e organizo tudo no .env e no config/twilio.php. Defino rotas pra mensagens e status, exponho a app com o Expose e conecto o WhatsApp no Twilio Sandbox. No MessageController, recebo as mensagens e respondo automaticamente com o SDK do Twilio, tudo testado com logs. Simples, prático e direto ao ponto!

· 1 min
Observabilidade em Sistemas Modernos
Tutoriais

Observabilidade em Sistemas Modernos

Explore ferramentas de observabilidade como LogRocket, Bugsnag, Rollbar e outras para monitoramento, análise de logs e gestão de erros em sistemas modernos. Compare planos gratuitos, destaques e integrações para encontrar a melhor solução para sua equipe.

· 5 min
Como alcancei pontuações quase perfeitas no Google Lighthouse em um blog feito com Laravel / Filament
Tutoriais

Como alcancei pontuações quase perfeitas no Google Lighthouse em um blog feito com Laravel / Filament

Veja como consegui atingir pontuações acima de 90 no Google Lighthouse, melhorando drasticamente o desempenho dos meus sites e proporcionando uma experiência excepcional para os usuários.

· 7 min
Tracking 24/7: do agente que responde "quanto custa?" ao agente que avisa "baixou agora"
Tutoriais

Tracking 24/7: do agente que responde "quanto custa?" ao agente que avisa "baixou agora"

Como evoluir do agente que responde "quanto custa?" para o agente que avisa "baixou agora": cron, webhook, idempotência, deduplicação de alerta e janelas de monitoramento sem estourar custo. Com snippets em Laravel e o que muda no harness quando o agente passa a viver sozinho.

· 5 min

VirguIA

beer & code assistant

conectando…

Não foi possível iniciar o chat agora.

tocando