Você já conhece o Cloudflare Tunnel? Ele é uma excelente alternativa para quem deseja publicar sites ou serviços na internet sem precisar abrir portas no firewall ou contar com IP fixo — algo especialmente útil em homelabs.
Antes de explicarmos como usá-lo, vamos entender o problema que ele resolve.
Normalmente, quando você publica um site, ele é acessado por meio de um domínio que aponta para um endereço IP. Esse IP responde por um servidor web, que precisa ter as portas 80 (HTTP) e 443 (HTTPS) abertas para aceitar conexões externas. Se o servidor for remoto, talvez você também precise abrir a porta 22 (SSH) para gerenciar o sistema.
O problema é que, ao abrir essas portas, qualquer pessoa na internet pode tentar acessá-las, o que representa um risco de segurança.
É aí que o Cloudflare Tunnel entra em cena: ele cria uma conexão segura entre sua máquina e a rede da Cloudflare, permitindo que seus serviços sejam acessados pela internet sem expor diretamente nenhuma porta do seu servidor.
Além disso, ele permite restrições de acesso baseadas em identidade (e-mail, grupo, etc.), garantindo que apenas usuários autorizados consigam acessar seus serviços, como um terminal SSH ou painel de administração.
Cloudflare Tunnel ou WARP Connector

Quando falamos do ZTNA da cloudflare, veja nesse artigo para entender o que é ZTNA, especificamente sobre tuneis, precisamos entender que temos dois tipos e motivo de escolhermos o primeiro, enquanto escrevemos esse artigo a Clouflare suporta os tuneis Cloudflared e WARP Connector e a principal diferente é que enquanto o Cloudflared suporta apenas trafego unidirecional ou seja você acessando serviços o Cloudflared e WARP é bidirecional ou seja todos os usuarios conseguem acessar os serviços um do outro. como queremos apenas acessar os serviços em um servidor e não o servidor acessar nada em minha maquina vamos seguir com Cloudflare Tunnel.
Como funciona o Cloudflare Tunnel (explicado com diagrama)
Se você ainda tem dúvidas sobre como o Cloudflare Tunnel funciona, este diagrama — baseado na documentação oficial da Cloudflare — ajuda a visualizar o fluxo completo.
Toda requisição feita pelo usuário (seja por navegador, terminal ou ferramentas como SSH) não vai diretamente ao seu servidor, mas sim para a rede da Cloudflare, que passa a ser sua porta de entrada.
A Cloudflare então:
- Verifica a configuração do seu túnel,
- Aplica regras de acesso (se houver autenticação),
- E finalmente, encaminha a requisição de forma segura para o processo
cloudflared
rodando no seu servidor.
Esse processo recebe a requisição e redireciona para o serviço local configurado — como seu site WordPress, painel de monitoramento, API, etc. Tudo isso sem abrir portas no firewall.
Pré-requisitos para usar o Cloudflare Tunnel
Antes de fazer a instalação você precisa ter uma conta gratuita no cloudflare, e ter um domínio valido, no nosso caso já temos nossa conta e vamos usar o domínio codeinloop.com.br que já está publicado no cloudflare e vamos usar o ZTNA da cloudflare.
Criando e autenticando seu Tunnel
Após fazer login, o próximo passo é acessar o portal Cloudflare Zero Trust, que pode ser encontrado no menu lateral do painel da Cloudflare.
Em seguida, vá até Redes > Túneis e clique em Criar um túnel. Selecione a opção Cloudflared, conforme explicamos anteriormente.
Agora você definirá um nome para o túnel — pode ser o nome do servidor ou algo que facilite identificar futuramente onde e quais serviços ele atende.
Na sequência, será exibida a instrução de instalação do cloudflared
conforme seu sistema operacional. Escolha a opção correspondente (neste caso, Ubuntu) e siga os passos abaixo:
Instalação do cloudflared
no Ubuntu
# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
# install cloudflared
sudo apt-get update && sudo apt-get install cloudflared
BashApós a instalação, é hora de autenticar o serviço, copiando o token que o painel da Cloudflare gerou para o seu túnel. Execute:
sudo cloudflared service install token_aqui
BashPronto! Seu túnel está instalado e funcional. A página da Cloudflare deve agora mostrar o status como conectado.
Publicando serviços publicos via Tunnel
Após criar seu túnel, você terá duas opções principais:
- Rede privada (acesso interno via Zero Trust)
- Serviço público, que é o que vamos configurar aqui.
Para isso, vá em Rede > Túneis, selecione o túnel desejado e clique nos três pontos à direita. Em seguida, escolha a opção “Configurar”.
Na tela de configuração, vá até “Nomes de host públicos” e clique para adicionar um novo.
Etapas para configurar o nome de host público:
- Escolha o subdomínio que deseja usar, como
www
ou deixe em branco para usar o domínio raiz. - Selecione o domínio que já está registrado e configurado na sua conta Cloudflare.
- (Opcional) Se o serviço estiver em uma subpasta (ex:
/admin
), você pode especificar isso também. - Selecione o protocolo do seu serviço:
- HTTP ou HTTPS (ex: WordPress, dashboards, APIs)
- SSH, RDP, Unix socket (casos avançados)
No nosso exemplo, estamos expondo um site WordPress rodando localmente, então usamos localhost:
como destino, com protocolo HTTP (ou HTTPS, se houver certificado SSL).
💡 Dica: Se o serviço estiver em outra máquina da rede, basta apontar para o IP interno (ex:
192.168.1.10:3000
).
A partir desse momento, seu serviço já estará público e acessível pela internet, tanto por você quanto por qualquer pessoa com o link.
Se você quiser restringir o acesso, vamos fazer isso na próxima etapa, usando o Cloudflare Access.
(Opcional) Protegendo com autenticação via Cloudflare Access
Agora que o seu serviço está público, talvez você queira restringir o acesso apenas para pessoas autorizadas — por exemplo, apenas usuários com e-mails @codeinloop.com.br
.
Criando uma política de acesso
- Acesse o painel da Cloudflare e vá em Access > Policies.
- Clique em “Adicionar política”.
- Dê um nome para a política (ex:
Acesso CodeInLoop
) e selecione a ação desejada (permitir ou negar). - Na seção de regras, escolha o seletor “Emails terminando em” e insira
@codeinloop.com.br
.
Você agora terá uma política que permite acesso apenas para usuários com e-mails da sua organização.
Registrando o aplicativo protegido
Vá em Access > Aplicativos e clique em “Adicionar aplicativo”.
Escolha a opção “Auto-hospedado”.
Preencha os campos:
- Nome do aplicativo (ex:
Painel do Lab
) - Hostname público (ex:
lab.codeinloop.com.br
) - Política de acesso: selecione a que você criou anteriormente
A partir de agora, ao acessar a URL do seu serviço, os visitantes verão uma tela de autenticação da Cloudflare antes de conseguir entrar — semelhante a esta:
Conclusão
Chegamos ao nosso objetivo: expor um aplicativo — público ou privado — sem precisar abrir portas no firewall/roteador e sem depender de IP fixo, o que é perfeito para quem usa homelabs ou ambientes de teste.
O Cloudflare Zero Trust é uma ferramenta poderosa, com muito mais recursos do que abordamos aqui. Mas a ideia deste artigo foi justamente mostrar um cenário prático onde você já pode tirar vantagem imediata dessa solução.
Se você gostou do conteúdo e quer ver mais tutoriais como esse, deixe um comentário aqui embaixo!