Sustituye 127.0.0.1:8080 por un punto de conexión de tu servicio o de la lista de proxies HTTP y ejecuta lo siguiente contra un destino HTTPS inofensivo:

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

La dirección de bucle local indica un puerto de escucha de tu propia máquina. Este comando lo selecciona de forma explícita, vacía la lista de exclusiones de curl para esta llamada y permite cinco segundos para establecer la conexión y quince en total. No modifica la configuración de proxy del navegador ni del sistema.

Usa el ejecutable real de curl si tu shell define curl como alias de otro programa; curl --version identifica la compilación. Si el propio puerto de escucha requiere TLS, utiliza el esquema de URL de proxy indicado en su documentación.

Lee cuatro resultados, no una sola señal de éxito

  1. Conexión con el proxy elegido: la dirección y el puerto son accesibles.
  2. CONNECT aceptado: el proxy abrió un túnel al destino HTTPS.
  3. Certificado del destino verificado: TLS se completó con las comprobaciones de confianza previstas.
  4. Respuesta del destino recibida: revisa su estado y contenido para saber si el resultado es el que necesita tu aplicación.

Un túnel que funciona puede ir seguido de un 403 o 429 del destino. curl también puede terminar correctamente después de recibir una respuesta de error HTTP, así que registra tanto el estado de respuesta como el resultado de error de curl. Una conexión TCP o un CONNECT satisfactorio no bastan por sí solos.

Un resultado compacto para comparar varias pruebas

En un shell de tipo Unix, descarta el cuerpo e imprime el estado del túnel, el del destino, el extremo de la conexión y el tiempo transcurrido:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect describe la respuesta del túnel; http_code, la respuesta HTTP final. remote_ip es el extremo con el que se conecta curl, no una medición independiente de la dirección de salida del proxy. En otros sistemas, sustituye /dev/null o conserva el cuerpo de la respuesta.

Si la prueba falla, localiza el paso de establecimiento o transferencia que falló y compara con un acceso directo al mismo destino, siempre que esa ruta esté permitida:

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

--noproxy '*' evita los proxies. Si la verificación del certificado falla por ambas rutas, eso apunta a un problema de confianza compartido; si el acceso directo funciona pero CONNECT es rechazado, apunta a la autenticación o las políticas del proxy. Revisa la salida detallada antes de compartirla, porque puede contener información identificativa.

Guarda el punto de conexión, el destino y la marca de tiempo junto con el resultado. Esto establece qué funcionó para esa petición; la disponibilidad futura, la privacidad y el rendimiento bajo carga requieren pruebas distintas.

Artículos relacionados