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

Descubra as principais diferenças entre Ngrok e Expose para criar túneis de localhost. Enquanto o Ngrok oferece um DNS fixo e sessões sem limite de tempo na versão gratuita, o Expose tem DNS dinâmico e sessões limitadas a 30 minutos. Saiba por que o Ngrok se destaca como minha escolha preferida!

Publicado em: 10, março 2025

Logo do NGROK

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:

Exemplo:

./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):

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

brew install ngrok

  • Linux (via Snap ou manual):

Configure o Authtoken depois. - Snap: sudo snap install ngrok - Manual: Mova o arquivo ngrok para /usr/local/bin/ com:

sudo mv ngrok /usr/local/bin/

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:

(Substitua 8000 pela porta do seu servidor.)

ngrok http 8000

  1. O Ngrok exibirá uma interface com URLs públicas, como:
  2. Forwarding <https://seu-nome.ngrok-free.app> -> localhost:8000
  3. 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.

/ Autor

Foto do autor do post Lucas Souza (Virgu)

Lucas Souza (Virgu)

{Full-Stack Specialist Engineer}

Mais de 10 anos de experiência com Laravel e sólidos conhecimentos em frameworks front-end, como ReactJS, React Native e Vue JS.
Experiência em Design de Serviço.
No primeiro projeto profissional como júnior, desenvolveu em e-commerce para a maior indústria de equipamentos odontológicos da América Latina. Atualmente, atua como Full Stack Engineer Specialist em uma grande multinacional.
Lidera decisões técnicas e é um suporte fundamental para a equipe de desenvolvimento.