Guia de Configuração do Serviço de Proxy Reverso Ngrok no ServBay
O Ngrok é uma poderosa ferramenta de túnel seguro baseada em proxy reverso, que consegue atravessar firewalls e NATs, mapeando serviços locais para domínios públicos. Este guia detalha como integrar e configurar o Ngrok em seu ambiente de desenvolvimento local ServBay, permitindo o acesso a serviços web locais, APIs ou outros serviços via internet — facilitando demonstrações remotas, colaboração em equipe ou testes de callback de serviços de terceiros.
Princípios Técnicos
O princípio fundamental do Ngrok é estabelecer um túnel criptografado entre sua máquina local e os servidores do Ngrok. Quando usuários externos acessam o domínio público fornecido pelo Ngrok, as solicitações são roteadas primeiro para os servidores do Ngrok e, depois, encaminhadas com segurança para o serviço correspondente rodando localmente no seu ambiente ServBay. Isso permite que você ofereça serviços ao exterior mesmo que seu computador não possua IP público ou esteja protegido por firewalls. No contexto do ServBay, significa que você pode compartilhar em tempo real seu site local, APIs backend ou qualquer serviço baseado em HTTP/HTTPS para testes e apresentações externos.
Preparação do Ambiente
Antes de configurar o Ngrok, certifique-se de que os seguintes requisitos foram atendidos:
- ServBay instalado e em execução: Garanta que o aplicativo ServBay está devidamente instalado e que o serviço web que você deseja expor com o Ngrok (por exemplo, um site) esteja configurado e funcionando corretamente. Você pode gerenciar seus sites locais no painel “Sites” do ServBay.
- Instalação do cliente Ngrok: Siga os passos abaixo para instalar a CLI do Ngrok:
- Acesse a página oficial de download do Ngrok e baixe o instalador correspondente ao seu sistema operacional.
- Após baixar, extraia o arquivo. Mova ou copie o executável
ngrok
para um diretório presente na variável PATH do sistema (como/usr/local/bin
no macOS) para executar o comandongrok
em qualquer terminal.bash# Exemplo para arquitetura ARM64 no macOS sudo unzip ~/Downloads/ngrok-v3-stable-darwin-arm64.zip -d /usr/local/bin
1
2 - Verifique se a instalação foi bem-sucedida rodando
ngrok version
e conferindo se o número da versão é exibido:bashngrok version # Exemplo de saída: ngrok version 3.5.0
1
2
- Conta Ngrok (opcional, mas recomendada): Ter uma conta Ngrok (gratuita ou paga) facilita o gerenciamento dos túneis e permite usar domínios fixos e funções avançadas. Cadastre-se no site do Ngrok e obtenha seu Token de autenticação (
ngrok config add-authtoken <SEU_AUTH_TOKEN>
), removendo limites de tempo e desbloqueando mais recursos. - Site local configurado: No ServBay, tenha pelo menos um site configurado que você queira expor, usando domínios como
servbay.local
ouseuprojeto.servbay.demo
.
Configuração de Túneis na Prática
Explicação dos Parâmetros Principais
A estrutura padrão do comando para mapear serviços é:
ngrok http --domain=<NGROK_DOMAIN> <LOCAL_ENDPOINT> \
--request-header-add='host: <VIRTUAL_HOST>'
2
Parâmetro | Descrição |
---|---|
http | Estabelece um túnel baseado no protocolo HTTP. O Ngrok cuidará das solicitações HTTP/HTTPS recebidas. |
--domain <NGROK_DOMAIN> | Define o domínio fixo atribuído pelo Ngrok (substitua pelo domínio configurado ou atribuído no Dashboard do Ngrok). No plano gratuito, normalmente não é necessário; o Ngrok gera um subdomínio aleatório automaticamente. |
<LOCAL_ENDPOINT> | Endereço do seu serviço local no ServBay. Para hosts virtuais, normalmente o domínio local (ex: https://servbay.local ) ou http://localhost:porta . |
--request-header-add='host: <VIRTUAL_HOST>' | IMPORTANTE: Substitui o header Host da requisição. O ServBay diferencia os sites locais usando o cabeçalho HTTP Host; com esse parâmetro, as solicitações externas têm o Host alterado para o domínio local configurado (ex: servbay.local ), garantindo o roteamento correto para o site desejado. |
Exemplos de Configuração
Suponha que você tenha um site local configurado no ServBay chamado servbay.local
e deseja expô-lo via Ngrok. Se você utiliza o plano gratuito do Ngrok, é possível mapear diretamente o endereço local:
# Mapeia o site servbay.local do ServBay para um domínio aleatório atribuído pelo Ngrok
ngrok http https://servbay.local --request-header-add='host: servbay.local'
2
Se você configurou um domínio fixo no Dashboard do Ngrok, como your-servbay-demo.ngrok-free.app
ou um domínio customizado em plano pago, use o parâmetro --domain
:
# Mapeia o site servbay.local do ServBay para o domínio especificado do Ngrok
ngrok http --domain=your-servbay-demo.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local'
2
Após executar os comandos acima, o cliente Ngrok informará o estado do túnel no terminal, incluindo o endereço público gerado (por exemplo, https://xxxx.ngrok-free.app
ou o domínio personalizado) e o endereço local do painel de monitoramento de tráfego em tempo real (normalmente, http://127.0.0.1:4040
).
Validação do Serviço
Depois de configurar e iniciar o túnel Ngrok, siga estes passos para validar se o serviço está acessível publicamente:
- Obtenha o endereço público: No terminal do Ngrok, observe a linha
Forwarding
e copie o URL iniciado comhttps://
. - Acesse pelo navegador: De qualquer equipamento conectado à internet, acesse o URL do Ngrok copiado (exemplo:
https://cunning-lacewing-fresh.ngrok-free.app
ou seu domínio fixo). - Verifique o resultado:
- Confirme que o navegador carregou corretamente o conteúdo do site hospedado no seu ServBay local.
- Verifique se o seguro (HTTPS) aparece no navegador. O Ngrok fornece certificados SSL válidos por padrão para os túneis.
- Você pode verificar os logs de requisição e estatísticas de tráfego no terminal do Ngrok ou acessando o painel web local (
http://127.0.0.1:4040
), garantindo que as solicitações estão chegando e sendo processadas pelo ServBay.
Ilustração: Acesso bem-sucedido ao túnel Ngrok via navegador web
Dicas Avançadas e Pontos de Atenção
- Gestão de domínios:
- No plano gratuito do Ngrok, normalmente é gerado um subdomínio aleatório
.ngrok-free.app
, e o túnel possui limitações de tempo de conexão. - Com uma conta Ngrok e acessando o Dashboard do Ngrok, é possível configurar domínios fixos, evitando trocas de endereço público a cada inicialização de túnel.
- Nos planos pagos, você pode usar domínios próprios, além de conseguir mais largura de banda, conexões simultâneas e funções extras.
- No plano gratuito do Ngrok, normalmente é gerado um subdomínio aleatório
- Mapeamento de vários serviços: Para expor múltiplos serviços ou portas locais do ServBay ao público, basta iniciar vários processos do Ngrok conforme necessário, ou configurar múltiplos túneis no arquivo de configuração do Ngrok (normalmente,
~/.config/ngrok/ngrok.yml
). Por exemplo, mapeando um site local e outro serviço rodando em 3000:bashObservação: Para hosts virtuais do ServBay, recomenda-se usar# Mapeia o servbay.local do ServBay (acessível via HTTPS 443 e roteamento por Host header) ngrok http --domain=servbay-website.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local' # Em outro terminal ou via configuração, exponha um app Node.js na porta 3000 ngrok http --domain=nodejs-api.ngrok-free.app http://localhost:3000
1
2
3
4
5https://[domínio local]
mais o parâmetro--request-header-add
, em vez de mapear diretamente as portas 80/443 do ServBay, pois nestas portas o ServBay atende a todos os hosts virtuais. - Comandos de diagnóstico:
ngrok config check
: Verifica se há erros de sintaxe no arquivo de configuração do Ngrok (normalmente~/.config/ngrok/ngrok.yml
).ngrok logs
: Mostra logs detalhados no terminal em tempo real, úteis para diagnosticar problemas de conexão ou de roteamento de requisições.
- Segurança: Expor serviços locais à internet apresenta riscos. Certifique-se de que os serviços expostos sejam seguros e só mantenha túneis Ngrok ativos quando necessário. A assinatura paga do Ngrok oferece recursos adicionais de segurança, incluindo listas de IP permitidas e restrições de acesso.
Solução de Problemas
Sintoma | Solução |
---|---|
Timeout ou página não carrega | Verifique se o site alvo no ServBay está rodando e acessível pelo domínio local (ex: navegador acessando https://servbay.local ). Confirme que o servidor web do ServBay (Caddy/Nginx) está funcionando. Cheque também as regras do firewall permitindo conexões de rede do cliente Ngrok. |
Erro de certificado HTTPS (aviso no navegador) | O Ngrok fornece certificados HTTPS válidos para os domínios públicos. Caso ao acessar o URL do Ngrok haja erro de certificado, normalmente é problema da configuração do próprio túnel ou da rede, não do ServBay. Certifique-se de acessar o endereço gerado pelo Ngrok iniciado com https:// . Se o erro aparece ao acessar o domínio local do ServBay, revise a configuração SSL do ServBay. |
Quedas frequentes ou lentidão | Verifique a estabilidade da conexão de internet local. Instabilidades podem causar quedas do túnel. Prefira conexões cabeadas para maior confiabilidade. Para demandas de alta estabilidade, avalie planos pagos do Ngrok que oferecem melhor infraestrutura e maior banda. |
Página padrão do ServBay em vez do site desejado | Verifique se o <LOCAL_ENDPOINT> no comando ngrok http está correto e se o parâmetro --request-header-add='host: <VIRTUAL_HOST>' está exatamente com o domínio local configurado no ServBay. Isso garante o roteamento correto das requisições para o site alvo. |
Perguntas Frequentes (FAQ)
Q: Posso expor um serviço de banco de dados do ServBay?
A: O Ngrok é focado principalmente em túneis HTTP/HTTPS. Embora ofereça suporte a túneis TCP para bancos de dados e outros serviços, isso está além do escopo deste guia sobre HTTP, e normalmente não se recomenda expor bancos de dados locais publicamente devido a graves riscos de segurança. Para acesso remoto ao banco de dados, prefira túnel SSH ou alternativas mais seguras.
Q: O domínio público muda sempre que inicio o Ngrok?
A: No plano gratuito do Ngrok, o subdomínio
.ngrok-free.app
é geralmente gerado aleatoriamente. Para obter um domínio fixo, cadastre-se e configure no Dashboard do Ngrok ou faça upgrade para planos pagos.Q: O Ngrok afeta a performance do meu ServBay local?
A: O uso do Ngrok pode adicionar leve latência de rede, pois solicitações passam por servidores intermediários. Porém, para desenvolvimento, testes e demonstrações, o impacto é geralmente aceitável. O desempenho do site ou app no ServBay depende também do poder de processamento do seu computador e da eficiência da aplicação.
Conclusão
Ao integrar o Ngrok, usuários do ServBay podem compartilhar resultados de desenvolvimento web locais na internet de forma segura e eficiente, sem complexidade de configuração de rede. Esta solução é ideal para colaboração remota, demonstração para clientes, testes em dispositivos móveis ou integrações com serviços externos. O Ngrok fornece monitoramento em tempo real de tráfego e opções avançadas de segurança (algumas mediante assinatura). Para aplicações críticas ou cenário de domínio fixo, recomenda-se planos pagos do Ngrok para maior robustez e recursos avançados.