# Ngrok no Linux: Guia Completo de Instalação, Configuração e Uso

## O que é o ngrok?

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758770970192/0866b487-7367-4236-bff6-6fed57449224.png align="center")

[Ngrok](https://ngrok.com/docs/getting-started/) permite expor um serviço local (por exemplo, um servidor web rodando no seu PC) para a internet por meio de um túnel seguro, sem precisar configurar redirecionamento de portas no roteador ou DNS complicada.

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768396275185/2e30ed02-fe68-4927-9872-89d1705c2d61.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

## Requisitos prévios

Antes de começar, você precisa:

* Ter uma conta no ngrok (gratuita ou paga).
    
* Ter acesso ao terminal no Linux (shell).
    
* Saber qual serviço/porta local você quer expor (por exemplo, servidor web em [`localhost:3000`](http://localhost:3000)).
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758768707926/61bd398b-0277-4129-8c30-9fc042789577.png align="center")

Faça o login com uma conta do github ou google. Em seguida, siga esses passos!

Instale o ngrok via Apt com o seguinte comando:

```bash
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
  | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
  && echo "deb https://ngrok-agent.s3.amazonaws.com bookworm main" \
  | sudo tee /etc/apt/sources.list.d/ngrok.list \
  && sudo apt update \
  && sudo apt install ngrok
```

Execute o seguinte comando para adicionar seu authtoken ao arquivo de configuração padrão ngrok.yml.

```bash
ngrok config add-authtoken seu_token
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758768861480/03fe110e-623e-412c-8a28-dc8c5f08c749.png align="center")

No arquivo será adicionado o seu token.

Agora veja a aplicação rodando no localhost sem o protocolo de segurança, muita das vezes utilizamos alguns serviços que exigem https.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769059891/b9ab1ed7-f212-41ab-935e-8ac9a11264f6.png align="center")

Agora é que vem a mágica.

Faça o deploy do seu aplicativo, execute o seguinte na linha de comando:

```bash
ngrok http 8074
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769296234/f6776dfb-d9e2-49e5-9501-f64e9f589b8d.png align="center")

Acesse seu domínio de desenvolvimento para ver seu aplicativo!

[https://unforsaken-extrusile-ainsley.ngrok-free.dev](https://unforsaken-extrusile-ainsley.ngrok-free.dev/)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769469455/041d2dfd-1a52-4650-9cb2-330ed5bdaff6.png align="center")

Vai aparecer essa tela mas não se preocupe, clique no botão azul.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769516780/12fd2ae5-c807-4940-9202-46816acc8c3a.png align="center")

Nossa aplicação está carregando, porém precisamos corrigir as urls para que o css e o javascript carreguem. Como a aplicação é um site em wordpress, basta inserir essas linhas no arquivo wp-config.php

```php
define('WP_HOME','https://unforsaken-extrusile-ainsley.ngrok-free.dev');
define('WP_SITEURL','https://unforsaken-extrusile-ainsley.ngrok-free.dev');
```

Agora nossa aplicação carregou perfeitamente.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769740408/c30c49fe-087a-47c0-8e1d-0fd337abce15.png align="center")

Em nosso terminal, podemos visualizar o status de todas as requisições no HTTP Requests.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758769825321/889398e1-fb46-433f-b6b8-634073320748.png align="center")

O ngrok cria uma **interface de inspeção web** local, onde você consegue ver todas as requisições que passam pelo túnel.

🔗 A URL padrão é:

```plaintext
http://127.0.0.1:4040
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1758770038309/35ef7b59-0452-40f1-bb9c-56564562601b.png align="center")

### O que você encontra lá:

* Lista de todas as requisições que chegaram ao túnel.
    
* Método HTTP (GET, POST, PUT etc.).
    
* Status de resposta (200, 404, 500…).
    
* Corpo da requisição e da resposta.
    
* Possibilidade de **repetir requisições** para testar seu servidor local.
    

👉 Dica: se você precisar acessar essa interface de outro dispositivo ou servidor, dá para expor também o painel (`ngrok http 4040`), mas normalmente ele só fica disponível **localmente** por segurança.

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768396292014/8ca0c870-d274-4e64-8914-2751d29d424d.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

## 📌 Resumo

O **ngrok** é uma ferramenta poderosa para desenvolvedores que precisam expor serviços locais na internet de forma rápida e segura. Com ele, é possível compartilhar aplicações em desenvolvimento, realizar testes de integrações externas, validar webhooks e até mesmo acessar serviços internos sem configuração de rede complexa.

## 📚 Referências

* [Documentação oficial do ngrok — Setup Linux](https://dashboard.ngrok.com/get-started/setup/linux?utm_source=chatgpt.com)
    
* [ngrok Docs — Getting Started](https://ngrok.com/docs/getting-started/?utm_source=chatgpt.com)
    
* ngrok Docs — Tunnels Configuration
    
* ngrok Docs — API & Inspector
