Busca la última operación completada en la salida detallada de curl. «Conectado al proxy, pero sin respuesta CONNECT» delimita mucho mejor el problema que «se agotó el tiempo del proxy».

Usa una petición con límites de tiempo y sustituye el ejemplo local por tu proxy HTTP; la lista de proxies HTTP ofrece otros puntos de conexión para comparar:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

--connect-timeout 5 asigna un único presupuesto al establecimiento de la conexión, incluidas las consultas y negociaciones pertinentes; no concede cinco segundos a cada etapa. --max-time 15 limita toda la operación, incluido el tiempo de transferencia posterior al establecimiento.

Dónde se detiene el avanceQué investigar después
Sin conexión al proxyResolución del nombre del proxy, puerto de escucha, enrutamiento y reglas del cortafuegos.
Proxy conectado; sin respuesta al túnelCarga del proxy, negociación de autenticación, política de acceso y accesibilidad del destino desde el proxy.
Túnel aceptado; TLS incompletoAccesibilidad del destino, negociación TLS e interceptación administrada.
Llegan las cabeceras del destino; el cuerpo se detieneComportamiento de transferencia del servidor de origen, almacenamiento intermedio y posible silencio intencionado de la aplicación.

Para conocer el orden de las negociaciones, consulta cómo transporta CONNECT el tráfico HTTPS. Una parada cerca del límite de conexión apunta al establecimiento; una parada posterior al alcanzar el límite global apunta a una transferencia incompleta. Combina la secuencia con los tiempos: estos por sí solos no identifican el componente. Los mensajes varían entre compilaciones de curl y un puerto TCP abierto no demuestra que CONNECT funcione.

Mantén un lado sin cambios

Compara el mismo destino mediante una ruta directa permitida:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Después compara otro destino inofensivo a través del mismo proxy. Si solo falla uno, investiga esa ruta o la política de acceso al destino. Si todos se detienen en el mismo paso de establecimiento, investiga el trayecto común del proxy. Guarda la hora de inicio, el punto de conexión, el destino y la última etapa completada; elimina credenciales, tokens, cookies y nombres privados antes de compartir los registros.

Cuando la conexión sigue abierta sin avance útil

Una transferencia de archivos puede necesitar un límite de baja velocidad además de los límites de establecimiento y duración total:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/

Esto cancela la operación si la tasa sostenida permanece por debajo de 100 bytes por segundo durante 20 segundos, manteniendo un máximo total de 60 segundos. Elige valores adecuados a la carga. Un flujo de eventos puede funcionar correctamente durante largos periodos de silencio, de modo que una regla de descarga podría interrumpirlo por error.

Aumentar todos los límites pospone el síntoma. Los reintentos inmediatos y repetidos pueden añadir conexiones a una ruta sobrecargada. Diagnostica con unas pocas comparaciones deliberadas; cualquier política posterior de reintentos de la aplicación necesita su propio presupuesto total y debe considerar si es seguro repetir la operación.

Artículos relacionados