O Cloudflare Tunnel permite publicar um serviço que está rodando no seu computador ou servidor sem abrir uma porta no roteador. Você instala o conector cloudflared, cria um túnel, aponta um subdomínio para o serviço local e mantém a conexão saindo da sua rede para a Cloudflare.
Isso é útil para testar um site, mostrar um painel para alguém ou acessar uma aplicação de desenvolvimento. O caminho abaixo usa um túnel gerenciado localmente, com comandos do terminal. Para ambientes maiores, a própria Cloudflare recomenda os túneis gerenciados remotamente, configurados pelo painel, API ou Terraform.

O que é o Cloudflare Tunnel e por que ele evita abrir portas
Em uma configuração tradicional, você encaminharia uma porta do roteador para o computador que hospeda o serviço. Isso cria uma entrada direta na sua rede e exige cuidar de firewall, IP público, NAT e mudanças de endereço.
Com o Tunnel, o processo é invertido: o cloudflared roda dentro da sua rede e abre uma conexão de saída para a Cloudflare. Quando alguém acessa o seu domínio, a Cloudflare entrega a requisição pelo túnel até o serviço local. O servidor não precisa aceitar conexões de entrada vindas diretamente da internet.
Isso reduz a superfície de exposição, mas não transforma um painel administrativo em algo seguro por mágica. O aplicativo ainda precisa de senha forte, atualizações e, quando fizer sentido, uma camada de autenticação como Cloudflare Access com MFA.
Antes de começar
- Uma conta Cloudflare e um domínio adicionado a ela para usar um hostname próprio.
- Um serviço funcionando localmente, como
http://localhost:8000. Troque a porta pelo endereço real da sua aplicação. - Acesso ao terminal da máquina que executará o túnel.
- O
cloudflaredinstalado a partir da página oficial de downloads para Linux, Windows ou macOS.
Se você só quer demonstrar uma página por alguns minutos, pule para a seção de Quick Tunnel. Ele usa um endereço aleatório e não exige domínio, mas é indicado para teste e desenvolvimento, não para um serviço permanente.
Como configurar um Cloudflare Tunnel com domínio próprio
1. Instale o cloudflared
Baixe o pacote compatível com seu sistema na documentação de downloads do cloudflared. No Linux, a Cloudflare oferece binários e pacotes Debian e RPM; no macOS, há pacote Homebrew; no Windows, há instalador e binário.
Depois, confirme que o comando está disponível:
cloudflared --version
2. Faça a autenticação no navegador
No terminal, execute:
cloudflared tunnel login
O comando abre uma janela do navegador para você entrar na conta e escolher o hostname autorizado. Ao terminar, ele cria o certificado cert.pem no diretório padrão do Cloudflare Tunnel. Esse arquivo é sensível: não o publique no GitHub, não o coloque em uma imagem Docker pública e não o envie para outra pessoa.
3. Crie o túnel
Dê um nome fácil de reconhecer:
cloudflared tunnel create jsms-lab
Anote o UUID exibido no terminal e o caminho do arquivo de credenciais .json. O comando cria a relação persistente entre o nome e o túnel, mas ainda não inicia a conexão. Para conferir:
cloudflared tunnel list
4. Crie o arquivo de configuração
Dentro de ~/.cloudflared, crie um arquivo chamado config.yml. Para uma aplicação web única, use este modelo:
url: http://localhost:8000
tunnel: SEU-UUID
credentials-file: /home/SEU_USUARIO/.cloudflared/SEU-UUID.json
Substitua SEU-UUID pelo identificador real do túnel e ajuste o caminho do usuário. No Windows, use o caminho do diretório .cloudflared correspondente à sua conta.
O campo url é o endereço que o conector acessará dentro da máquina. Se o serviço estiver em outra porta, troque 8000. Se estiver em outro computador da rede, use o endereço privado dele, como http://192.168.1.50:8080, desde que a máquina do cloudflared consiga alcançá-lo.
5. Ligue um subdomínio ao túnel
Escolha um subdomínio que pertença ao domínio conectado à Cloudflare:
cloudflared tunnel route dns jsms-lab app.seudominio.com
A Cloudflare cria um registro CNAME apontando para o subdomínio do túnel. O registro DNS e o túnel são coisas diferentes: o DNS pode existir mesmo se o conector estiver desligado; nesse caso, o acesso falhará até que o túnel volte a funcionar.
6. Inicie e teste a conexão
Execute o túnel pelo nome ou pelo UUID:
cloudflared tunnel run jsms-lab
Agora abra https://app.seudominio.com no navegador. Se a página não carregar, verifique primeiro se o serviço responde localmente na porta configurada e depois observe o terminal do cloudflared.
Para consultar informações do túnel:
cloudflared tunnel info jsms-lab
Se o arquivo estiver fora de ~/.cloudflared ou tiver outro nome, indique o caminho explicitamente:
cloudflared tunnel --config /caminho/config.yml run jsms-lab
Como deixar o túnel rodando como serviço no Linux
Rodar o comando em um terminal aberto funciona para teste, mas o processo termina quando você encerra a sessão. No Linux, depois de criar o túnel e o config.yml, instale o serviço:
sudo cloudflared --config /home/SEU_USUARIO/.cloudflared/config.yml service install
sudo systemctl start cloudflared
sudo systemctl status cloudflared
Atenção ao uso de sudo: a variável $HOME pode apontar para /root, fazendo o serviço procurar o arquivo no lugar errado. Por isso, passar o caminho completo com --config evita uma das falhas mais comuns dessa etapa.
Depois de alterar o arquivo de configuração, reinicie o serviço:
sudo systemctl restart cloudflared
Como testar sem domínio com um Quick Tunnel
Para uma demonstração rápida, inicie um servidor local e execute:
cloudflared tunnel --url http://localhost:8080
O Cloudflare gera um subdomínio aleatório em trycloudflare.com e mostra o endereço no terminal. As requisições recebidas nesse endereço são encaminhadas ao serviço local.
O Quick Tunnel é conveniente, mas tem limites importantes: o endereço é temporário, não há garantia de disponibilidade e a própria documentação recomenda esse modo para testes e desenvolvimento. Se existir um config.yaml no diretório .cloudflared, pode ser necessário renomeá-lo temporariamente para usar o recurso.
Cloudflare Tunnel é uma VPN?
Não exatamente. Neste guia, ele publica uma aplicação HTTP ou HTTPS por um hostname. O Tunnel também pode ser usado em outros cenários, como SSH, RDP e redes privadas, mas cada caso envolve autenticação, políticas e configuração diferentes.
Ele também não substitui uma VPN tradicional em todos os cenários. Se a meta é acessar vários dispositivos e serviços privados como se você estivesse dentro da rede, avalie a modalidade de rede privada e as políticas de acesso da Cloudflare, em vez de simplesmente publicar cada porta na internet.
Erros comuns e como corrigir
| Problema | O que conferir |
|---|---|
| O domínio retorna erro 1016 | Veja se o CNAME aponta para o túnel correto e se o cloudflared está conectado. |
| O túnel inicia, mas a página dá erro 502 | Teste o serviço local na mesma URL e porta informadas em config.yml. |
| O serviço não inicia no Linux | Confirme o caminho do arquivo de credenciais e use --config com caminho absoluto. |
| O navegador abre uma tela de login do aplicativo | Isso pode ser normal: o Tunnel encaminha o tráfego, mas não corrige a autenticação do seu sistema. |
| O Quick Tunnel não funciona | Confira se o servidor local está ativo e se não há um config.yaml bloqueando o modo rápido. |
Vale a pena usar o Cloudflare Tunnel?
Para desenvolvimento, homelab e publicação pontual, ele é uma alternativa prática porque elimina o encaminhamento de portas e evita depender de IP público fixo. A instalação também é mais simples do que montar manualmente NAT, firewall e proxy reverso.
O cuidado é não confundir “não abrir portas” com “estar protegido”. Uma aplicação vulnerável continua vulnerável quando chega à internet por um túnel. Em serviços administrativos, coloque autenticação forte, limite os usuários autorizados, mantenha o software atualizado e monitore os logs.
Se o seu fluxo começa em um formulário ou webhook, o Tunnel pode servir para tornar um endpoint local acessível durante o desenvolvimento. Depois, vale combinar a exposição com uma automação bem protegida — veja também o guia do JSMS sobre como criar um webhook no n8n e conectar um formulário a uma automação.
Perguntas frequentes
Preciso abrir uma porta no roteador para usar o Cloudflare Tunnel?
Não. O conector inicia uma conexão de saída para a Cloudflare, então o fluxo não depende de encaminhar uma porta de entrada do roteador.
Posso usar o Cloudflare Tunnel sem ter um domínio?
Para um teste rápido, sim: o Quick Tunnel gera um endereço aleatório em trycloudflare.com. Para um hostname próprio e permanente, você precisa configurar um domínio na Cloudflare.
O Cloudflare Tunnel protege automaticamente o painel que publiquei?
Não. Ele transporta as requisições até o serviço. Você ainda precisa configurar autenticação, atualizações e, se necessário, uma política de acesso com MFA.
O Quick Tunnel serve para produção?
Não é a finalidade indicada pela Cloudflare. Use-o para testes e desenvolvimento; para produção, crie um túnel nomeado e configure monitoramento e controle de acesso.