Xetux Docs
Cloudflare

Despliegue en redes Restrictivas

Procedimiento Operativo Estándar para conectar cloudflared en redes restrictivas utilizando WinSW.

Objetivo: Garantizar la conexión de cloudflared en servidores Windows cuando el ISP (ej. Telcel) bloquea el tráfico UDP nativo o el Administrador de Servicios (SCM) rechaza parámetros personalizados.


Fase 1: Diagnóstico ¿Cuándo usar este método?

No todos los servidores requieren utilizar WinSW. Debes utilizar este método exclusivamente si se cumple alguna de estas condiciones:
  1. El ISP es Telcel: O cualquier red celular / satelital que cuente con un CGNAT estricto.
  2. Fallo en instalación estándar: El técnico instaló el servicio nativo (cloudflared service install [TOKEN]) y Windows arroja un error indicando que el servicio se inició y se detuvo inesperadamente.
  3. La Prueba de Fuego (Detección Definitiva): Abre PowerShell e intenta correr el túnel manualmente forzando la conexión TCP:
& "C:\Program Files (x86)\cloudflared\cloudflared.exe" tunnel run --protocol http2 --token [TU_TOKEN]
Si la consola muestra QUIC connection failed pero inmediatamente después dice Registered tunnel connection protocol=http2: Aplica WinSW inmediatamente.

Fase 2: El Script Anti-Errores

Si el diagnóstico de la fase anterior confirma el bloqueo, no intentes modificar el registro de Windows. Ejecuta el siguiente bloque de código directamente en PowerShell (como Administrador).

Importante: Solo debes reemplazar el valor de la variable $TOKEN en la primera línea. El script se encargará del resto de la configuración automáticamente.
Script de Despliegue
# 1. INSERTA EL TOKEN AQUÍ
$TOKEN = "PEGA_AQUÍ_EL_TOKEN_DEL_DASHBOARD"

# 2. Limpieza de instalaciones fallidas previas
Stop-Process -Name "cloudflared" -Force -ErrorAction SilentlyContinue
sc.exe delete cloudflared
Start-Sleep -Seconds 2

# 3. Descarga de WinSW (Contenedor de Servicio)
$winswUrl = "[https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe](https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe)"
$winswExe = "C:\Program Files (x86)\cloudflared\cloudflared-service.exe"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri $winswUrl -OutFile $winswExe

# 4. Inyección de Configuración (Fuerza HTTP2 para saltar el firewall)
$xmlConfig = @"
<service>
  <id>cloudflared</id>
  <name>Cloudflare Zero Trust (WinSW)</name>
  <description>Túnel de Cloudflare forzado por TCP</description>
  <executable>C:\Program Files (x86)\cloudflared\cloudflared.exe</executable>
  <arguments>tunnel run --protocol http2 --token $TOKEN</arguments>
  <log mode="roll"></log>
  <onfailure action="restart" delay="10 sec"/>
</service>
"@
$xmlConfig | Out-File -FilePath "C:\Program Files (x86)\cloudflared\cloudflared-service.xml" -Encoding UTF8

# 5. Instalación y Arranque
cd "C:\Program Files (x86)\cloudflared"
.\cloudflared-service.exe install
.\cloudflared-service.exe start

Write-Host "Instalación completada. Verifica el dashboard de Zero Trust." -ForegroundColor Green

Fase 3: Criterios de Éxito

Para confirmar que el procedimiento funcionó correctamente y el túnel está operativo, debes verificar lo siguiente:

  • En la consola de servicios de Windows (services.msc) debe existir un servicio llamado Cloudflare Zero Trust (WinSW) y debe encontrarse en estado En ejecución.
  • En el dashboard web de Zero Trust, el conector debe marcar el estado como Active.
Copyright © 2026