05 · CLOUDFLARE
Cloudflare Tunnel
Publicamos temporalmente nuestro servidor local mediante Cloudflare Tunnel sin abrir puertos del router y revisamos las medidas de seguridad antes de exponer Apache.
> CLOUDFLARE TUNNEL
> Apache
> trycloudflare.com
> Networking → Tunnels
> tutoxampp :8085
> web publicada_
1. Antes de instalar Cloudflare: revisar Apache
El túnel no "elige" qué archivos son seguros. Publica lo que responda el origen que le indiquemos. Antes de exponer mediante Cloudflare http://localhost:8085:
- desactiva listados de directorios innecesarios;
- revisa Alias antiguos;
- no expongas Webmin;
- no expongas MariaDB;
- no dejes phpMyAdmin abierto hacia Internet;
- no guardes secretos dentro de la web pública.
2. Instalar cloudflared desde el repositorio oficial
En Debian/Crostini:
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
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
sudo apt-get update
sudo apt-get install cloudflared -y
Comprobamos:
cloudflared --version3. Quick Tunnel sobre 8080: qué comprobamos
Con XAMPP arrancado y Apache escuchando en 8080:
cloudflared tunnel --url http://localhost:8080
La Terminal mostrará una dirección aleatoria parecida a:
https://palabras-aleatorias.trycloudflare.com
En nuestra prueba, esa URL abrió la raíz general de XAMPP. Para llegar a nuestros proyectos desde ese origen hay que añadir /xnenex/ a la URL pública.
cloudflared tunnel --url http://localhost:8080/xnenex/ no convierte esa ruta en una nueva raíz: Cloudflare publica el servicio HTTP, no cambia el DocumentRoot de Apache.4. Detener el Quick Tunnel
En la Terminal donde está ejecutándose:
Ctrl + C
Con eso se termina el proceso y deja de funcionar la URL temporal.
5. Origen para Cloudflare: puerto 8085
En nuestra configuración Apache utiliza tres accesos distintos:
8080 → XAMPP general + Alias /xnenex
8081 → @public_html como distribuidor de todas las webs
8085 → tutoxampp como web directa para Cloudflare
El puerto que utilizamos como origen del túnel es 8085, porque apunta directamente a la carpeta:
/mnt/shared/GoogleDrive/MyDrive/---@web/www/@public_html/tutoxampp
Prueba local:
curl -I http://localhost:8085/
8081 se mantiene como distribuidor local de @public_html. Cloudflare no utiliza ese puerto en este tutorial: publica directamente la web tutoxampp desde localhost:8085.6. Quick Tunnel sobre 8085
Con XAMPP arrancado y el puerto 8085 funcionando:
cloudflared tunnel --url http://localhost:8085
Cloudflare generará una URL temporal trycloudflare.com que abrirá directamente la web tutoxampp.
localhost:8085 → @public_html/tutoxampp.8085 en el router. cloudflared establece una conexión saliente desde el Chromebook/Linux hacia Cloudflare.7. Túnel permanente: método recomendado
Para la mayoría de usos permanentes, Cloudflare recomienda actualmente crear un túnel administrado remotamente desde el Dashboard. En el panel principal puede gestionarse en Networking → Tunnels. El método local con cert.pem, archivo JSON y config.yml sigue siendo útil para aprendizaje, desarrollo y configuraciones concretas.
8. Túnel con cuenta: autenticación
Para un túnel administrado localmente:
cloudflared tunnel login
Se abre el navegador para iniciar sesión y seleccionar la zona/dominio. El proceso crea un certificado de cuenta, normalmente:
~/.cloudflared/cert.pem
cert.pem. Permite administrar túneles de la cuenta y debe tratarse como una credencial sensible.9. Crear un túnel con nombre
cloudflared tunnel create tutoxampp
El comando crea un UUID y un archivo de credenciales del túnel:
~/.cloudflared/<TUNNEL-UUID>.json
Comprueba los túneles:
cloudflared tunnel list
cert.pem administra túneles de la cuenta. El archivo JSON permite ejecutar ese túnel concreto. Son cosas distintas.10. Configuración local del túnel
Crea:
nano ~/.cloudflared/config.yml
Plantilla:
tunnel: <TUNNEL-UUID>
credentials-file: /home/nenebuda_linux/.cloudflared/<TUNNEL-UUID>.json
url: http://localhost:8085
En este tutorial utilizamos 8085 porque ese puerto apunta directamente a @public_html/tutoxampp. El puerto 8081 queda reservado como distribuidor local de @public_html y el 8080 para XAMPP general.
Después puedes ejecutar:
cloudflared tunnel run tutoxampp11. Túnel administrado desde el panel y token
Además del túnel configurado localmente, Cloudflare permite crear y administrar un túnel directamente desde su panel. En este método, Cloudflare genera un token que identifica y autoriza ese túnel.
- Entramos en el panel de Cloudflare.
- Abrimos Networking → Tunnels.
- Creamos un nuevo túnel.
- Cloudflare nos proporciona un token y el comando necesario para instalarlo en Linux.
Instalamos el túnel como servicio con el comando proporcionado por Cloudflare:
sudo cloudflared service install <TUNNEL_TOKEN>
Comprobamos el servicio:
sudo systemctl status cloudflared --no-pager
Si necesitamos arrancarlo o reiniciarlo:
sudo systemctl start cloudflared
sudo systemctl restart cloudflared
cloudflared se conecte al túnel
configurado en nuestra cuenta de Cloudflare.
12. Ejecutar como servicio de Linux
Para un túnel local con config.yml:
sudo cloudflared --config /home/nenebuda_linux/.cloudflared/config.yml service install
sudo systemctl start cloudflared
sudo systemctl status cloudflared --no-pager
Tras cambiar la configuración:
sudo systemctl restart cloudflared13. Actualizar cloudflared
Si lo instalaste mediante APT:
sudo apt-get update
sudo apt-get install --only-upgrade cloudflared
sudo systemctl restart cloudflared.service14. Diagnóstico
cloudflared --version
cloudflared tunnel list
sudo systemctl status cloudflared --no-pager
curl -I http://localhost:8080/xnenex/
curl -I http://localhost:8081/
curl -I http://localhost:8085/
Si el túnel no conecta, primero comprueba que Apache responda localmente. Si el origen local falla, Cloudflare tampoco podrá servirlo.