DEV Community

Stefhany Santos
Stefhany Santos

Posted on

Como rodar seu Front-end no PC pessoal e o Backend (.NET) na máquina da empresa usando Ngrok

Se você trabalha com desenvolvimento, talvez já tenha passado por esta situação:

Você tem um PC pessoal super rápido, mas precisa usar a máquina corporativa (normalmente mais lenta) por causa da VPN para acessar o banco de dados da empresa.

Trabalhar no Front-end com a máquina travando acaba com qualquer produtividade.

A solução?

Rodar o Backend na máquina da empresa e o Front-end no seu PC pessoal, usando o Ngrok para criar um túnel seguro entre os dois.

Mas, se o seu Backend for em .NET, você vai perceber que rodar um simples comando do Ngrok não funciona de primeira.

Neste artigo, vou te mostrar o pulo do gato para resolver isso.


1️⃣ Autenticando o Ngrok

Antes de tudo, baixe o Ngrok e adicione seu Authtoken.

Você encontra esse comando no painel do Ngrok, logo na tela inicial.

Depois, basta rodar o comando no terminal:

ngrok config add-authtoken SEU_TOKEN_AQUI
Enter fullscreen mode Exit fullscreen mode

Isso vincula sua máquina à sua conta.


2️⃣ O Problema com .NET e Ngrok

Por padrão, aplicações .NET:

  • Rodam em https://localhost:5001
  • Usam HTTPS com certificado de desenvolvimento
  • Fazem validação rigorosa do Host Header
  • Podem bloquear requisições externas por política de CORS

Se você simplesmente rodar:

ngrok http 5001
Enter fullscreen mode Exit fullscreen mode

O Ngrok vai tentar criar um túnel HTTP simples.

Resultado? ❌

Você pode receber:

  • Erro de CORS
  • 400 Bad Request
  • Erro de Host inválido
  • Falha de redirecionamento HTTPS

Isso acontece porque:

  • O .NET espera HTTPS
  • O Host recebido não será localhost
  • A requisição chega com domínio externo (.ngrok-free.dev)

3️⃣ A Solução (O Comando Mágico)

O segredo é dizer ao Ngrok duas coisas:

  • Que o destino já é HTTPS
  • Que ele deve reescrever o Host Header

Execute:

ngrok http https://localhost:5001 --host-header="localhost:5001"
Enter fullscreen mode Exit fullscreen mode

🔎 O que esse comando faz?

https://localhost:5001

Informa ao Ngrok que o backend já está rodando em HTTPS.

--host-header="localhost:5001"

Reescreve o cabeçalho da requisição.

Quando a requisição chega na sua API:

  • O .NET lê o Host como localhost:5001
  • A validação passa
  • O roteamento funciona corretamente

💡 Isso evita erros de Host inválido e problemas comuns de CORS relacionados ao domínio inesperado.


4️⃣ Configurando no Front-end

Após rodar o comando, o Ngrok gera uma URL pública:

https://seu-link.ngrok-free.dev
Enter fullscreen mode Exit fullscreen mode

Agora, no seu projeto Front-end, atualize a variável de ambiente:

API_URL=https://seu-link.ngrok-free.dev
Enter fullscreen mode Exit fullscreen mode

Reinicie o projeto e pronto 🚀

Agora você pode:

  • Desenvolver a interface no seu PC rápido
  • Consumir a API na máquina corporativa
  • Acessar o banco via VPN
  • Trabalhar com performance real

🎁 Bônus: O Ngrok é muito mais que um túnel

Além de resolver o problema de conectividade, o Ngrok oferece recursos poderosos.

🔐 Segurança de Endpoints

Você pode proteger seu túnel com:

  • OAuth
  • Restrição de IP
  • Validação JWT
  • Basic Authentication

Tudo configurado direto no painel.

📊 Monitoramento de Tráfego

O Ngrok possui um inspetor de tráfego em tempo real.

Você pode visualizar:

  • Headers
  • Payload
  • Status code
  • Tempo de resposta

Ideal para debugar integrações.


📚 Conclusão

Com o comando correto, é possível expor uma API .NET rodando em HTTPS sem erros de Host ou CORS, mantendo segurança e produtividade.

Essa abordagem permite trabalhar com performance real no Front-end sem abrir mão do acesso ao banco via VPN.


✍️ Stefhany Santos

Software Engineer

Top comments (0)