En este curso aprenderás a exponer un servidor local a Internet de forma segura utilizando Cloudflare Tunnels, sin necesidad de abrir puertos en tu router o exponer tu IP pública.
Esto es especialmente útil para entornos de desarrollo, demostraciones o despliegues ligeros.
Partiremos de un servidor local con Nginx instalado y luego configuraremos Cloudflare Tunnels para que tu servicio sea accesible públicamente a través de un dominio o subdominio de Cloudflare.
- Introducción
- Requisitos previos
- Instalación de Nginx
- Instalación y configuración de Cloudflare Tunnels
- Crear un “Hello World” con Nginx
- Configurar el túnel
- Conclusión y siguientes pasos
Cloudflare Tunnels permite conectar un servicio que corre en tu máquina local con Internet de forma segura, utilizando un túnel cifrado entre tu equipo y la red de Cloudflare.
Esto evita configuraciones complicadas de NAT o firewalls, y no requiere abrir puertos.
- Acceso a un servidor Linux con privilegios
sudo. - Una cuenta en Cloudflare.
- Un dominio administrado en Cloudflare (o subdominio).
- Conexión a Internet.
- Conocimientos básicos de comandos en Linux.
Primero instalaremos Nginx con el siguiente comando:
curl -fsSL https://lemp.run/install/nginx.sh | shVerifica que Nginx esté corriendo:
sudo systemctl status nginx
# 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
Y verifica la instalación con:
cloudflared --version
Vamos a crear una pequeña página de prueba en /var/www/html:
echo "<h1>Hello World desde mi servidor local con Cloudflare Tunnels 🚀</h1>" | sudo tee /var/www/html/index.html
Asegúrate de que el archivo index.html existe:
cat /var/www/html/index.html
Reinicia Nginx por si hiciste cambios en el conf:
sudo systemctl restart nginx
Puedes ver la página local en: http://localhost
Una vez autenticado, puedes crear e instalar el túnel como un servicio con el token que te entrega Cloudflare en el dashboard (o usando “Zero Trust”):
sudo cloudflared service install <token>
Esto creará un túnel persistente que se inicia automáticamente cuando arranca tu máquina. Y terminamos configurando el tunnel en Cloudflare.
- Has creado un túnel seguro con Cloudflare Tunnels sin abrir puertos.
- Tu servidor local con Nginx ahora es accesible públicamente.
- Puedes extender esta configuración para:
- Aplicaciones PHP, Python o Node.js detrás de Nginx.
- Certificados SSL automáticos gestionados por Cloudflare.
- Exposición de múltiples servicios desde un mismo host.
- Configuraciones personalizadas en Zero Trust.
- Documentación oficial de Cloudflare Tunnels