Se você estiver executando um servidor local em sua casa em um laptop ou PC antigo, como um servidor Plex Media, um servidor de arquivos, um servidor da Web ou qualquer outro servidor - você pode expô-lo à Internet usando a opção de encaminhamento de porta em seu roteador. No entanto, não é seguro nem recomendado acessar um servidor dessa forma em um ambiente de produção.
Mostraremos como expor seus servidores locais com segurança com uma conexão HTTPS com a Internet usando o serviço Cloudflare Tunnel gratuito, sem divulgar seu IP público.
O que é o túnel Cloudflare?
Cloudflare Tunnel, anteriormente conhecido como Argo Tunnel, ajuda os usuários a expor com segurança seus recursos, como servidores locais, para a internet sem um endereço IP público ou ter que habilitar o encaminhamento de porta no roteador. Quando você configura um Cloudlfare Tunnel em seu sistema Windows, macOS ou Linux, um túnel leve daemon (cloudflared) está instalado e fica entre seu recurso (servidor local) e o Cloudflare rede. Com o Cloudflare Tunnel, você pode expor e conectar com segurança quaisquer servidores da Web HTTP locais, áreas de trabalho remotas, servidores SSH ou vários outros protocolos à Internet.
Abaixo, nossas instruções passo a passo mostram como configurar o daemon de tunelamento cloudflared no Windows, macOS, Linux e Raspberry Pi para expor servidores locais à Internet.
Antes de você começar
Para instalar e configurar o daemon de tunelamento cloudflared em seu sistema, você precisa atender a estes pré-requisitos:
- Registre um nome de domínio. Você pode comprar um dos provedores de serviços, como GoDaddy, ou pode obter um domínio gratuito de freenom.com.
- Depois de registrar o nome de domínio, crie uma conta Cloudflare e adicione seu domínio—consulte Configuração do Cloudflare.
- Em seguida, altere ou atualize os servidores de nomes de domínio para os servidores de nomes Cloudflare - consulte o Documentação Cloudflare. Esta configuração está disponível no portal onde você registrou ou comprou o domínio.
Depois que esses requisitos forem atendidos, você poderá seguir as etapas abaixo para configurar o Cloudflare Tunnel em seu computador Windows, macOS, Linux ou Raspberry Pi.
Instale o Cloudflare Tunnel no Windows
A configuração do Cloudflare Tunnel em um sistema Windows requer a instalação de um daemon leve do lado do servidor. Vá o lançamentos cloudflared página e baixe a versão correta para sua versão do Windows:
- Windows de 32 bits: cloudflared-windows-386.exe
- Windows de 64 bits: cloudflared-windows-amd64.exe
Depois de baixar a configuração do daemon cloudflared, vá para a pasta onde a configuração está localizada e renomeie o arquivo para cloudflared.exe. Em seguida, abra o prompt de comando e navegue até o local onde o daemon cloudflared está localizado usando o cd comando. Por exemplo:
cd C:\Users\Ravi Singh\Downloads\Programas
Em seguida, execute os seguintes comandos para verificar a versão e instalar a atualização mais recente.
cloudflared.exe--versão
cloudflared.exeatualizar
Se você vir uma saída como mostrado na captura de tela abaixo, você está pronto para ir.
Você deve verificar as atualizações cloudflared de vez em quando, para manter a configuração atualizada e evitar problemas de conectividade.
Instale o Cloudflare Tunnel no macOS
No macOS, você pode usar o aplicativo Terminal para baixar e instalar o daemon cloudflared e, em seguida, usar comandos para criar um túnel seguro e expor os servidores locais à Internet.
Para baixar o cloudflared, execute o seguinte comando no Terminal:
fermentar instalar cloudflare/cloudflare/cloudflare
Como alternativa, você pode executar este comando para baixar o cloudflared:
fermentar instalar cloudflared
Instale o Cloudflare Tunnel no Linux
Com base no sistema operacional Linux que você está usando, baixe o pacote cloudflared. Em seguida, abra o aplicativo Terminal, navegue até o local onde o pacote foi baixado e instale-o. Como alternativa, dependendo da sua distribuição Linux, você pode usar um dos seguintes comandos para baixar e instalar o cloudflared.
Instalação DEB
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb
Instalação do RPM
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
Arch Linux
No Arch Linux, use a ferramenta pacman para instalar o cloudflared.
pacman -Syu cloudflared
Instale o Cloudflared Tunnel no Raspberry Pi
Não há build ou repositório cloudflared oficial para Raspberry Pi Zero, 2, 3 ou 4. No entanto, você pode instalar e usar as compilações não oficiais ARMv6 para Raspberry Pi para configurar o túnel cloudlfared no Raspberry Pi OS. Já cobrimos alguns tutoriais, como o gerenciador de senhas BitWarden auto-hospedado no Raspberry Pi Zero, onde usamos as compilações não oficiais para expor nossos servidores locais à Internet com uma conexão HTTPS por meio de um Cloudflare Tunnel.
Para instalar o cloudflared no Raspberry Pi OS Bullseye (ou outra versão), execute o seguinte comando no Terminal.
sudo wget https://hobin.ca/cloudflared/releases/2022.8.2/cloudflared_2022.8.2_arm.tar.gz
sudoalcatrão-xvzfcloudflared_2022.8.2_arm.alcatrão.gz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v
Para verificar as versões não oficiais mais recentes do Raspberry Pi, confira o Página de builds ARMv6.
Crie e configure um túnel Cloudflare
Depois que o daemon cloudflared for baixado e instalado em seu Windows, macOS, Linux ou Raspberry Pi, você pode criar um Cloudflare Tunnel usando o seguinte comando no aplicativo Terminal ou Prompt de Comando:
login cloudflared
No Windows, macOS ou Linux, isso abrirá a página de login da Cloudflare em seu navegador padrão. Se a janela do navegador não abrir automaticamente, copie o URL exibido na saída do comando e cole-o no navegador da Web e faça login na sua conta Cloudflare.
Uma vez logado, selecione o domínio que você adicionou à conta Cloudlfare e clique em Autorizar.
Uma vez autorizado, você verá a mensagem "Você se conectou com sucesso...". Também irá gerar um cert.pem arquivo e armazene-o no local padrão do diretório cloudflared:
- Janelas: %USERPROFILE%\.cloudflared
- Mac OS: ~/.cloudflared
- Linux: /etc/cloudflared,
- Raspberry Pi: /usr/local/etc/cloudflared
Em seguida, precisamos criar um túnel usando o seguinte comando:
criação de túnel cloudflared <YourTunnelName>
Você pode nomear seu túnel como quiser. Por exemplo, nós hospedou um site WordPress em um laptop antigo e usou o nome do site como o nome do túnel; isso torna mais fácil de lembrar.
O comando criará um túnel e também um arquivo JSON com um UUID de túnel alfanumérico exclusivo. Copie o caminho do arquivo JSON e o UUID do túnel, cole-o em um bloco de notas ou lista de notas e mantenha-o seguro, pois precisaremos deles para criar um arquivo de configuração.
Para criar o arquivo de configuração no macOS, Linux ou Raspberry Pi OS, execute o seguinte comando,
sudo nano ~/.cloudflared/config.yml
No editor, cole o seguinte código.
túnel: <TunnelUUID>
arquivo de credenciais: /root/.cloudflared/<TuinnelUUID>.json
entrada:
-nome de anfitrião: minha casa.smartghar.org
serviço: http://192.168.0.1
-serviço: http_status:404
Certifique-se de substituir o TunnelUUID e o caminho do arquivo JSON no arquivo de credenciais linha de código. Imprensa CTRL + X ou Comando + X (macOS) e, em seguida, o Y tecla seguida por Digitar para salvar as alterações no config.yml arquivo.
No Windows, você pode usar o File Explorer e navegar até o seguinte local:
C:\Usuários\Seu nome no perfil\.cloudflared
Em seguida, clique com o botão direito, selecione Novo > Documento de texto, e cole o bloco de código acima mencionado.
Clique Visualizar no Explorador de Arquivos e habilite o Extensões de nome de arquivo opção.
Em seguida, edite o documento de texto chamado config.yml.
Você pode adicionar vários nomes de host e serviços no arquivo de configuração para acessá-los pela Internet por meio de um Cloudlfare Tunnel. Simplesmente, copie as duas primeiras linhas abaixo do entrada: linha de código e cole-os antes do -serviço: http_status: 404. Substitua o nome do host e os IPs do servidor local para encaminhar o tráfego da Internet para o servidor local específico. Veja um exemplo abaixo.
Um exemplo para vários nomes de host e serviços:
túnel: <TunnelUUID>
arquivo de credenciais: /root/.cloudflared/<TuinnelUUID>.json
entrada:
-nome de anfitrião: minha casa.smartghar.org
serviço: http://192.168.0.1
-nome de anfitrião: complexo.smartghar.org
serviço: http://192.168.0.136
-serviço: http_status:404
Salve as alterações e crie os registros CNAME no Cloudflare DNS usando o seguinte comando.
dns de rota de túnel cloudflared <TunnelName><nome de anfitrião>
Por exemplo:
cloudflaredtúnelrotaDNSsmartgharminha casa.smartghar.org
Depois que o CNAME for adicionado, você poderá iniciar o túnel para acessar seu servidor local pela Internet usando o nome de host que você atribuiu.
corrida de túnel cloudflared <TunnelName>
Se você vir uma saída semelhante à da captura de tela acima, o túnel foi iniciado com sucesso. Agora você pode abrir o navegador da Web em qualquer dispositivo conectado à Internet e visitar o nome do host. Para este caso é myhome.smartghar.org.
Como queremos que o nome do host carregue nossa página de configuração do roteador, adicionamos o IP 192.168.0.1, que de outra forma só era acessível através da rede local.
Você deve habilitar a opção SSL/TLS para Flexível ou Completo (o que for melhor para você) para habilitar uma conexão HTTPS segura com sua instância local.
Infinitas possibilidades
Com Cloudlfare Tunnel, você pode acessar qualquer configuração de servidor em sua casa via internet gratuitamente. Você pode usar este serviço para hospedar um site em um sistema local e testá-lo antes de implantá-lo em um servidor web ou permitir o acesso ao público. Você também pode usá-lo para acessar com segurança sua casa inteligente local em execução no Home Assistant ou em qualquer outro servidor pela Internet.
Configuramos o serviço Cloudflare Tunnel em um Raspberry Pi Zero W, que tem um tamanho menor pegada, consome menos energia e funciona perfeitamente bem, permitindo-nos acessar todos os nossos servidores locais remotamente.