Saltar a contenido

Homelab - Alternativa gratuita para la travesía de red local: Cloudflared

Cloudflared es una solución gratuita para la travesía de red local que permite acceder a máquinas sin una dirección IP pública desde la red externa.

Requisitos:

  • Aunque Cloudflared es gratuito, requiere la vinculación de una tarjeta VISA/PayPal.
  • El servidor de nombres de dominio (NameServer) debe apuntar a Cloudflare.
  • Es necesario habilitar la CDN de Cloudflare (la velocidad de acceso desde China puede ser lenta).

Ventajas:

  • No se necesita una dirección IP pública para el servidor.
  • No se requieren cortafuegos ni servidores proxy inversos.
  • No es necesario registrar el servidor para usar los puertos 80 y 443.
  • No se necesita solicitar un certificado SSL por cuenta propia.
  • Es gratuito.

Desventajas:

  • Velocidad de acceso lenta desde China.
  • Dependencia relativa de la plataforma de Cloudflare.

Implementación (Docker Compose)

En primer lugar, crea un archivo compose.yaml y pega el siguiente contenido:

compose.yaml
version: "3"
services:
  cloudflared:
    container_name: ${STACK_NAME}_app
    image: cloudflare/cloudflared:${APP_VERSION}
    network_mode: host
    restart: unless-stopped
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=${APP_TUNNEL_TOKEN}

(Opcional) Se recomienda crear un archivo .env en el mismo directorio que compose.yaml y personalizar tus variables de entorno. Si no deseas utilizar variables de entorno, también puedes personalizar tus parámetros directamente en compose.yaml (por ejemplo, reemplazar ${STACK_NAME} por cloudflared).

.env
STACK_NAME=cloudflared

# cloudflared
APP_VERSION=latest
APP_TUNNEL_TOKEN=xxx # Reemplaza por tu token

Finalmente, ejecuta el comando docker compose up -d en el mismo directorio que compose.yaml para iniciar los contenedores que has definido.

Instrucciones de Configuración

Accede al panel de Cloudflare Zero Trust, selecciona Access en la barra lateral izquierda y luego Tunnels. Haz clic en "Create a tunnel" para crear un túnel. Ingresa un nombre para el túnel (para distinguir entre distintas máquinas físicas) y guárdalo. Toma nota del token y agrégalo en compose.yaml.

Luego, ve al túnel que has creado y en la pestaña "Public Hostname Page," agrega los puertos de los servicios que deseas que se actúen como proxies. Por ejemplo, si tu dominio en Cloudflare es wiki-power.com y deseas que el servicio local en el puerto 80 se exponga a través del protocolo HTTP, simplemente configúralo de esta manera:

De esta manera, podrás acceder al puerto local a través de https://dashboard.wiki-power.com y Cloudflared se encargará automáticamente de solicitar un certificado SSL, permitiendo el acceso a través de https.

Referencias y Agradecimientos

Dirección original del artículo: https://wiki-power.com/
Este artículo está protegido por la licencia CC BY-NC-SA 4.0. Si desea reproducirlo, por favor indique la fuente.

Este post está traducido usando ChatGPT, por favor feedback si hay alguna omisión.