Un chequeo de red con «curl -f» contra una web protegida nunca pasa
Qué pasó
Un servicio esperaba a tener red con curl -fsS https://claude.ai/ antes de arrancar. Se quedó 26 intentos diciendo «sin red todavía» con la red funcionando perfectamente.
Por qué
Esa web responde 403 a una petición sin navegador (protección de Cloudflare). La opción -f convierte cualquier 4xx o 5xx en un fallo. El chequeo no medía la red: medía si la web nos dejaba entrar.
Cómo evitarlo
Para saber si hay red, no uses -f: que el servidor conteste algo ya demuestra que hay conexión.
curl -sS -m 5 -o /dev/null https://ejemplo.com/ # 0 aunque devuelva 403
curl -s -m 5 -o /dev/null -w '%{http_code}' https://... # para ver el código
O, mejor, espera a network-online.target en systemd.