Síntoma y contexto
El visitante ve una página de Cloudflare con Error 522: connection timed out. Esto significa que el navegador pudo llegar a Cloudflare, pero Cloudflare no logró completar una conexión a tiempo con el servidor de origen. El dominio resuelve y el proxy está delante, pero el origen no responde como debería en el puerto esperado.
Un 522 no es un problema de certificado SSL. Si Cloudflare no puede completar el handshake TLS con el origen, el código suele ser 525 o 526. Si el servidor rechaza la conexión de inmediato, puede aparecer 521. En 522 la clave es el tiempo de espera: Cloudflare intenta conectar, pero el origen no responde o tarda demasiado. Por eso conviene revisar IP, firewall, puertos y salud del servidor antes de renovar certificados o cambiar el modo SSL.
Este fallo aparece en VPS con nginx o Apache, hosting compartido, servidores WordPress, apps Node o PHP, y también tras migraciones donde Cloudflare conserva una IP antigua. Si necesitas una visión general de caídas, consulta la web no carga. Si el problema real es SSL entre Cloudflare y el origen, usa Error 525 Cloudflare o certificado SSL caducado.
Causas probables
- Servidor de origen apagado o servicio web detenido. La máquina puede estar encendida, pero nginx, Apache, PHP-FPM o la app Node no escuchan en 80 o 443.
- Firewall bloqueando Cloudflare. Reglas de iptables, ufw, fail2ban, WAF del hosting o plugins de seguridad pueden bloquear rangos de IP de Cloudflare y causar timeout.
- DNS apunta a una IP incorrecta. Tras una migración, el registro A o AAAA puede seguir apuntando al servidor antiguo, a una IP privada o a una IP que ya no pertenece a tu hosting.
- Puerto cerrado o servicio escuchando en otro puerto. Cloudflare espera conectar por puertos compatibles. Si el servidor solo escucha en un puerto interno, el proxy no podrá alcanzarlo.
- Servidor sobrecargado. CPU al máximo, memoria agotada, procesos PHP bloqueados, base de datos lenta o muchas conexiones abiertas pueden hacer que el origen no conteste a tiempo.
- Hosting suspendido o con límite de recursos. En hosting compartido, la cuenta puede estar limitada por cuota, facturación, abuso detectado o consumo excesivo.
- Ruta de red filtrada por proveedor. Menos habitual, pero algunos proveedores filtran tráfico entrante o tienen incidencias regionales que afectan a Cloudflare.
- IPv6 roto. Un registro AAAA activo hacia un origen que no responde por IPv6 puede provocar errores intermitentes aunque IPv4 funcione.
Checklist copiable
DIAGNÓSTICO CLOUDFLARE 522 - [dominio.com] Fecha: ___________ Hora y zona: ___________ 1. ERROR VISIBLE [ ] Error 522 connection timed out [ ] Afecta a todo el sitio [ ] Solo algunas rutas [ ] Intermitente 2. CLOUDFLARE Zona: ___________ Registro afectado: A / AAAA / CNAME Proxy: naranja / gris IP origen esperada: ___________ 3. DNS A actual: ___________ AAAA actual: ___________ ¿Migración reciente? Sí / No 4. ORIGEN Hosting / VPS / plataforma: ___________ Servicio web: nginx / Apache / Node / otro Puertos 80 y 443 abiertos: Sí / No / No sé 5. FIREWALL [ ] ufw / iptables revisado [ ] panel hosting revisado [ ] plugin seguridad revisado [ ] rangos Cloudflare permitidos 6. CARGA CPU: ___________ Memoria: ___________ Disco: ___________ Logs de error: ___________ 7. NO ENVIAR [ ] Sin claves SSH [ ] Sin contraseñas de hosting [ ] Sin tokens de Cloudflare
Qué capturar antes de escribir
Captura la pantalla del 522 con la URL exacta y la hora. Anota si ocurre en el dominio raíz, en www o en un subdominio concreto. Guarda una captura del panel DNS de Cloudflare donde se vean los registros A, AAAA o CNAME afectados y si están con proxy naranja. Si conoces la IP real del servidor, compárala con la IP publicada en DNS.
Desde el servidor o panel de hosting, captura estado del servicio web, uso de recursos y últimas líneas del log de error. No envíes contraseñas, claves SSH, tokens de Cloudflare ni capturas donde se vean secretos. Si una captura del panel muestra datos sensibles, tápalos. Para un primer diagnóstico bastan IPs, registros DNS, hora del fallo, proveedor de hosting y mensajes de logs no sensibles.
Comandos y paneles útiles
Desde tu ordenador puedes revisar resolución y respuesta:
# Ver IPs publicadas dig A tudominio.com +short dig AAAA tudominio.com +short # Cabeceras a través de Cloudflare curl -I https://tudominio.com # Probar si hay redirecciones o tiempo de espera curl -IL --max-time 20 https://tudominio.com # Si conoces la IP de origen, probar contra esa IP con Host header curl -I --resolve tudominio.com:443:IP_DEL_ORIGEN https://tudominio.com
En el servidor de origen, si tienes acceso administrativo:
# Estado del servicio web sudo systemctl status nginx sudo systemctl status apache2 # Puertos escuchando sudo ss -ltnp | grep ':80\|:443' # Uso de recursos uptime free -m df -h # Logs recientes sudo journalctl -u nginx -n 80 --no-pager sudo journalctl -u apache2 -n 80 --no-pager
Paneles donde mirar:
- Cloudflare -> DNS: Registros A, AAAA, CNAME, estado proxy y si hay IPs antiguas.
- Cloudflare -> Security o WAF: Reglas que puedan bloquear tráfico legítimo o desafíos mal aplicados.
- Cloudflare -> Analytics: Picos de 5xx por hora y host afectado.
- Hosting o VPS: Estado de cuenta, recursos, firewall del proveedor, reinicios y logs de nginx o Apache.
Pasos de diagnóstico por escenario
El origen está caído o el servicio web no escucha
Si systemctl status nginx o apache2 muestra el servicio detenido, reiniciarlo puede restaurar la web, pero antes conviene leer por qué cayó. Un error de configuración, certificado mal referenciado, disco lleno o proceso PHP agotado puede hacer que vuelva a caer. Comprueba que el servidor escucha en 80 y 443 con ss. Si no hay nada escuchando, Cloudflare no tiene a qué conectarse y el 522 es esperable.
El firewall bloquea a Cloudflare
Si el origen responde desde tu IP pero no desde Cloudflare, revisa reglas de firewall. Algunos sistemas de seguridad interpretan el tráfico de Cloudflare como demasiadas conexiones desde pocas IPs y bloquean rangos completos. Permite los rangos oficiales de Cloudflare en el firewall del servidor y en el panel del proveedor. Evita abrir paneles administrativos al mundo como solución rápida; la regla debe permitir tráfico web necesario, no relajar todo el servidor.
Cloudflare apunta a una IP antigua
Tras migrar de hosting, es frecuente actualizar el sitio pero olvidar el DNS en Cloudflare. Compara la IP que te da el proveedor actual con dig A y dig AAAA. Si no coinciden, cambia el registro correcto. Revisa también subdominios y el registro www, porque puede apuntar por CNAME a otro sitio. Si el dominio no resuelve bien, consulta dominio no resuelve.
El 522 es intermitente
Los 522 intermitentes suelen apuntar a sobrecarga o límites. Mira CPU, memoria, procesos PHP, conexiones a base de datos y disco. En WordPress, un pico de bots, una tarea cron pesada o consultas lentas pueden saturar el origen. En apps Node, revisa si el proceso se bloquea, si hay fugas de memoria o si el proxy interno no responde. Correlaciona hora del 522 con logs del servidor y Analytics de Cloudflare.
Hay un registro AAAA pero el servidor no sirve IPv6
Si el proveedor no tiene IPv6 correctamente configurado, elimina o corrige el registro AAAA. Un A válido por IPv4 no compensa un AAAA roto en todos los caminos de red. Comprueba que nginx o Apache escucha también en IPv6 si vas a mantener ese registro. Tras cambiar DNS, purga caché solo si hace falta y espera a que los resolvers vean el valor nuevo.
El error era 525, no 522
Si la pantalla muestra 525 SSL Handshake Failed, el origen sí responde pero falla la negociación TLS entre Cloudflare y el servidor. No sigas esta guía como ruta principal. Revisa Error 525 Cloudflare y certificado SSL caducado. Cambiar IP o firewall no arreglará un certificado inválido, del mismo modo que renovar un certificado no arregla un origen que no contesta.
Cuándo escalar
Escala o escribe por el formulario con categoría Web o despliegue cuando Cloudflare muestra 522 desde varias redes, DNS apunta al origen correcto y no sabes si el bloqueo está en firewall, proveedor o servidor. También conviene pedir ayuda si el 522 aparece solo en horas de tráfico, si el hosting limita recursos sin explicación clara, o si tienes que tocar reglas de firewall en producción.
Envía URL, hora, captura del 522, registros DNS relevantes, proveedor de hosting, estado de proxy y logs no sensibles. No envíes claves SSH, credenciales ni tokens. Relacionado: Error 525 Cloudflare, web caída, dominio no resuelve, certificado SSL caducado.