Substituí o Cloudflare Tunnel pelo Pangolin e finalmente possuo todo o meu caminho de entrada

Quer você seja um novo entusiasta de laboratório doméstico ou um profissional experiente de laboratório doméstico, a Cloudflare costuma ser a primeira escolha para construir sua infraestrutura. Não porque o Cloudflare seja gratuito, mas porque resolve problemas reais sem complicações. Há alguns dias, escrevi sobre como o Cloudflare se tornou silenciosamente a infraestrutura de backbone da minha configuração e mencionei que estava experimentando o Pangolin para substituir o túnel Cloudflare.

Experimentar o Pangolin não significou que o Cloudflare repentinamente se tornou um mal em minha configuração, mas eu estava tentando reduzir a dependência do meu laboratório doméstico de uma empresa. Usei um serviço real de uso diário, meu Vaultwarden auto-hospedado, e indiquei-o ao Pangolin. Demorei mais do que eu esperava para chegar lá por motivos que foram inteiramente minha culpa.

Qual a diferença entre os túneis Cloudflare e as VPNs?

Ambos permitem que você acesse seus serviços remotamente, mas o fazem de maneiras muito diferentes.

Pangolin é a resposta auto-hospedada ao Cloudflare Tunnel

Mesmo modelo sem portas, propriedade diferente

Eu já tinha decidido seguir em frente com o Pangolin, mas antes de realmente seguir em frente, queria saber o que me esperava. E à primeira vista fiquei surpreso ao ver conceitos familiares com nomes diferentes. O Pangolin cria um túnel semelhante apenas de saída do meu servidor doméstico, como o Cloudflare, mas por meio de um VPS no meio. Sem encaminhamento de porta. Meu IP residencial não foi revelado. Não foi possível abrir regras de firewall de entrada.

Essa configuração tinha quatro camadas principais: Pangolin cuidava do painel do plano de controle, Gerbil cuidava do servidor WireGuard, Traefik cuidava do proxy reverso e Newt atuava como cliente do túnel. Então era a mesma arquitetura do Cloudflare Tunnel, mas tudo estava hospedado em meus servidores. As solicitações foram para o VPS e encaminhadas através de um túnel seguro para os serviços executados em minha casa. A principal diferença entre Cloudflare e Pangolin era que o ponto de entrada público era um VPS que eu controlava, e não uma rede de borda sobre a qual eu não tinha controle.

Com o Cloudflare o tráfego veio para o lado deles, eles quebraram o TLS e depois rotearam, já com o Pangolin aconteceu a mesma coisa, mas dentro de um VPS que eu controlei. A propriedade era o que importava aqui, não a velocidade, os recursos ou o desempenho. Havia muitos fatores dos quais o Cloudflare Tunnel dependia, mas com o Pangolin era diferente. Problema de roteamento Cloudflare? Pangolim não se importou. Cloudflare alterando os preços dos túneis? Pangolim não se importou. Quer saber exatamente para onde as solicitações estão sendo enviadas? Eu poderia rastrear cada salto.

Não mudei porque o Cloudflare Tunnel me decepcionou. Mudei porque minhas prioridades mudaram. O Cloudflare Tunnel era de fato uma solução padrão melhor para quem ainda não usava um VPS. Essa era toda a teoria até agora. Instalá-lo na minha pilha real tornou-o interessante.

Configurando o Pangolin e redirecionando-o para meu Vaultwarden

Um projeto de fim de semana com duas complicações que vale a pena mencionar

Por que desejo substituir a solução funcional gratuita por uma solução paga? Não, eu não queria, mas eu já tinha um VPS que estava pagando por outro motivo e consegui emprestar espaço lá para hospedar eu mesmo a configuração do Pangolin. Então por que não? Já alugo um Hetzner VPS (CPX32 – 4x Core, 4GB de RAM e 160GB SSD) para hospedar alguns de meus aplicativos web, ferramentas e projetos de código aberto. Adicionar o pangolim não me custou nada a mais.

Meu DNS ainda estava hospedado na Cloudflare, mas configurei o subdomínio Pangolin como DNS apenas porque a nuvem laranja teria redirecionado a Cloudflare de volta ao caminho de tráfego; isso era uma coisa que eu não queria. A instalação inicial foi mais suave do que o esperado. Dois comandos e após dois minutos de prompts interativos para escolher entre edições, domínio base, opções de e-mail Let’s Encrypt, Gerbil e SMTP, ele estava instalado e funcionando. Honestamente, este foi um dos instaladores mais fáceis que usei para um proxy reverso auto-hospedado. Menos intimidante do que as configurações tradicionais de proxy reverso e mais próximo de um gerenciador de instalação do que um projeto de rede DIY.

curl -fsSL https://static.pangolin.net/get-installer.sh | bash
./installer

Feito isso, abri o painel do Pangolin usando o domínio de configuração inicial e criei um site que representava meu servidor Debian doméstico. Para conectar o Pangolin ao meu servidor doméstico, implantei o cliente de túnel Newt como uma pilha Portainer, um pequeno arquivo de construção com três variáveis ​​de ambiente. O site mudou para Online no painel em segundos. Não abri nenhuma porta na minha rede doméstica (embora fosse difícil devido ao problema do CGNAT) e tudo parecia uma configuração do Tailscale: fácil e simples.

Agora eu só tive que adicionar o Vaultwarden como um novo recurso no site, visando o IP local do servidor doméstico com a porta do Vaultwarden, e o Pangolin lida com HTTPS externamente, e eu pude testá-lo. Este foi o passo certo na substituição do túnel da Cloudflare; até agora era um cenário único. Em segundos, o novo domínio Vaultwarden estava instalado, funcionando e resolvido.

Assim que cheguei ao novo domínio do Vaultwarden, fui redirecionado para a página de autenticação do Pangolin que foi definida por padrão quando adicionei um novo recurso. Eu não queria isso. Então voltei ao painel para desligá-lo. Desativei a autenticação e alterei algumas configurações de TLS. E quando revisitei o domínio recebi um 404 porque as alterações deixaram a configuração do Traefik fora de sincronia. Ativei tudo novamente, mas não ajudou. Em seguida, excluí e recriei o recurso sem usar nenhuma opção pós-construção e funcionou.

Mas agora o domínio estava mostrando um erro 502 Bad Gateway atrasado, possivelmente devido a uma falha de conexão upstream causada por uma porta errada. Eu não tinha ideia de qual era o problema. Tentei reiniciar o Traefik, verifiquei várias vezes o acesso à rede de Newt e tentei curling VPS expandido; nada ajudou. Por fim, ao configurar os recursos, percebi que havia colocado a porta errada para o Vaultwarden. Depois que isso foi consertado, tudo correu bem.

O novo Vaultwarden foi carregado instantaneamente com um certificado Let’s Encrypt válido. Nenhum túnel Cloudflare e nenhuma porta inicial exposta. A maior realização veio depois que tudo estava funcionando. Eu poderia rastrear cada salto entre a Internet e meu gerenciador de senhas.

Cada salto entre visitantes e meu gerenciador de senhas agora é meu

Esse é o ponto principal, e vale a pena fazer concessões

Então, o que mudou depois de todo esse trabalho? Agora eu finalmente era dono da estrada. Hoje o caminho é Visitante -> Hetzner VPS -> Pangolin / Traefik -> Túnel WireGuard -> Newt -> Vaultwarden. E o bom desse percurso é que tudo é meu, seja alugado ou próprio, sem nenhuma empresa terceirizada no meio. Cada configuração é minha e cada decisão de roteamento é tomada dentro da infraestrutura que eu controlo.

Assim que a Cloudflare resolve o DNS (estado sem proxy) para o IP do meu servidor alugado, o TLS termina aí, o que significa que as solicitações param na infraestrutura que eu alugo. Nenhum terceiro pode vê-los em texto simples. O Pangolin é gratuito, o que significa que não há risco de plataforma – Hetzner é o vendedor; Posso alterá-lo quando quiser, enquanto o nível gratuito do Cloudflare é uma estratégia de negócios sem garantia.

Como mencionei muitas vezes em meus artigos anteriores, a auto-hospedagem tem tudo a ver com independência e propriedade, mas as compensações também são complementares. Um dos principais comprometimentos foi o desempenho da rede da Cloudflare. Meu Hetzner VPS possui um único servidor hospedado na Alemanha, enquanto Cloudflare possui centenas de POPs. Embora Hetzner tenha proteção básica contra DDoS e WAF, ele fica aquém do Cloudflare. Crowdsec existe no ecossistema Pangolin, mas ainda não o implementei; está na minha lista para continuar. E, finalmente, mais infraestrutura para manter. Eu já estava mantendo meu servidor Debian doméstico, e o próprio Pangolin se tornou outro serviço para monitorar e manter acima de todo o resto.

Pangolin é gratuito, mas não é de código aberto. Requer um servidor com IP público, enquanto o Cloudflare tem um nível gratuito generoso e geralmente é mais que suficiente para a maioria dos laboratórios domésticos. Se ainda não utiliza um VPS, não faz sentido pagar pelo menos 5 euros por mês para evitar o nível da Cloudflare. Pangolin não eliminou Cloudflare da minha vida por minha causa. Ainda uso o Cloudflare para DNS, domínios, trabalhadores e tudo mais, mas ele não está mais na frente desse serviço específico.

O objetivo nunca foi deixar totalmente a Cloudflare; era para reduzir uma dependência.

Cloudflare ainda está aqui, apenas fora do caminho

No meu artigo anterior, argumentei que a Cloudflare se tornou mais do que apenas um provedor de DNS na minha configuração. Eu disse que tentaria o Pangolin como alternativa ao túnel da Cloudflare, e tentei. Agora que o implantei, o experimento funcionou. Funcionou, não porque o Pangolin seja melhor que o Cloudflare Tunnel, mas porque resolveu um problema diferente. Para mim, o Cloudflare removeu a complexidade quando mais precisei, enquanto o Pangolin removeu a dependência. Ainda uso o Cloudflare para todo o resto da minha configuração, mas este serviço agora está em execução na minha infraestrutura. Honestamente, essa configuração só faz sentido se você já estiver executando um VPS e não quiser ter todos os ovos na mesma cesta. O Cloudflare Tunnel ainda é a escolha certa para a maioria das pessoas.

Link da fonte