Manual: Como Expor o Seu Servidor Plex à Internet Usando Cloudflare Tunnel

Este manual explica como configurar o Cloudflare Tunnel para expor o seu servidor Plex (ou qualquer outro serviço) à internet, mesmo sem um domínio próprio. Usaremos um script automático para configurar o túnel no seu servidor Debian e torná-lo acessível à Internet através de um subdomínio Cloudflare gratuito.

1. Requisitos

Antes de começar, certifique-se de que tem os seguintes requisitos:

2. Passos para Configurar o Cloudflare Tunnel

2.1. Criar uma Conta na Cloudflare (sem domínio)

Para usar o Cloudflare Tunnel sem um domínio próprio, precisa primeiro de criar uma conta no Cloudflare e aceder ao serviço de túnel. Aqui estão os passos:

  1. Acesse https://www.cloudflare.com e crie uma conta gratuita.
  2. Após criar a conta, faça login e aceda ao painel de controlo.
  3. No painel da Cloudflare, clique em "Zero Trust" no menu superior.
  4. No submenu, escolha "Access" e depois "Tunnels".
  5. Clique em "Create a Tunnel" e siga as instruções.
  6. Quando solicitado a adicionar um domínio, ignore esta opção, pois iremos usar o subdomínio gratuito do Cloudflare.
  7. Clique em "Create Tunnel" para gerar o seu túnel sem a necessidade de um domínio próprio.

2.2. Criar o Script Automático

Para simplificar o processo de configuração, criamos um script automático que fará todo o trabalho para si. Crie um novo arquivo chamado cloudflared_tunnel_setup.sh e cole o seguinte conteúdo nele:

#!/bin/bash

# Verificar se o script está a ser executado com permissões de root
if [ "$(id -u)" -ne 0 ]; then
  echo "Este script deve ser executado como root. Use sudo."
  exit 1
fi

# Instalar o cloudflared (se não estiver instalado)
if ! command -v cloudflared &> /dev/null
then
  echo "cloudflared não encontrado. Instalando..."
  curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
  dpkg -i cloudflared.deb
  rm cloudflared.deb
else
  echo "cloudflared já está instalado."
fi

# Autenticar no Cloudflare
echo "Autenticando no Cloudflare..."
cloudflared login

# Criar o tunnel
TUNNEL_NAME="meu_tunnel"
echo "Criando o túnel com o nome $TUNNEL_NAME..."
cloudflared tunnel create $TUNNEL_NAME

# Obter as credenciais e configurar o túnel
echo "Configuração do túnel..."
TUNNEL_JSON_FILE="/etc/cloudflared/${TUNNEL_NAME}.json"
echo "credentials-file: $TUNNEL_JSON_FILE" > /etc/cloudflared/config.yml

# Configurar o serviço local para o túnel
echo "Configurando o serviço local (localhost:32400 para Plex)..."
cat <<EOF >> /etc/cloudflared/config.yml
tunnel: $TUNNEL_NAME
credentials-file: $TUNNEL_JSON_FILE

ingress:
  - service: http://localhost:32400
  - service: http_status:404
EOF

# Iniciar o túnel
echo "Iniciando o túnel..."
cloudflared tunnel run $TUNNEL_NAME

echo "O túnel foi iniciado com sucesso! Acesse o Plex em: https://$TUNNEL_NAME.trycloudflare.com"
            

2.3. Tornar o Script Executável

Após criar o arquivo, torne-o executável com o seguinte comando no terminal:

chmod +x cloudflared_tunnel_setup.sh

2.4. Executar o Script

Agora, execute o script com permissões de root para configurar automaticamente o túnel:

sudo ./cloudflared_tunnel_setup.sh

2.5. Testar o Acesso ao Plex

Após a execução do script, o Cloudflare fornecerá um link no formato:

https://meu_tunnel.trycloudflare.com

Acesse esse link no navegador para ver se o seu servidor Plex está acessível. A partir deste ponto, o Plex estará exposto à internet via Cloudflare Tunnel, e você poderá usá-lo remotamente.

3. Manutenção e Alterações

Se precisar de alterar a configuração do túnel (ex.: alterar a porta do Plex ou apontar para outro serviço), basta editar o arquivo de configuração localizado em /etc/cloudflared/config.yml e reiniciar o túnel com o comando:

sudo systemctl restart cloudflared

4. Acesso Continuado

Certifique-se de que o serviço cloudflared está configurado para iniciar automaticamente com o sistema para garantir que o túnel permanece ativo após reinicializações:

sudo systemctl enable cloudflared