Volver al blog

Cómo usar cURL con un proxy: pasos y mejores prácticas

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

18-Dec-2025
Echa un vistazo rápido

Potencia tu automatización y raspado con Scrapeless Proxies: rápidos, confiables y asequibles.

La herramienta de línea de comandos cURL es una utilidad poderosa para transferir datos con sintaxis de URL, ampliamente utilizada para probar APIs, depurar problemas de red y hacer raspado web simple. Para realizar estas tareas de forma anónima o para acceder a contenido restringido geográficamente, debes configurar cURL para enrutar sus solicitudes a través de un servidor proxy. Esta guía detalla los diversos métodos para configurar un proxy con cURL.

Método 1: Usar la bandera --proxy

La forma más explícita de especificar un proxy para una única solicitud de cURL es usando la bandera --proxy (o su abreviatura, -x). Esta bandera requiere la URL completa del proxy, incluyendo el protocolo, la dirección IP y el puerto.

Sintaxis:

bash Copy
curl --proxy <PROTOCOL>://<IP_ADDRESS>:<PORT> <URL>

Ejemplo:

bash Copy
curl --proxy "http://47.90.205.231:33333" "https://httpbin.io/ip"

La abreviatura -x es funcionalmente idéntica y a menudo preferida por brevedad:

bash Copy
curl -x "http://47.90.205.231:33333" "https://httpbin.io/ip"

Método 2: Manejo de la autenticación del proxy

Para proxies que requieren autenticación, puedes incrustar las credenciales directamente en la URL del proxy, similar a HTTPX:

bash Copy
curl -x "http://<USERNAME>:<PASSWORD>@proxy.scrapeless.com:1337" "https://httpbin.io/ip"

Alternativamente, puedes usar las banderas --proxy-user y --proxy-password, lo que generalmente es más seguro ya que separa las credenciales de la URL principal del proxy:

bash Copy
curl -x "http://proxy.scrapeless.com:1337" --proxy-user "<USERNAME>:<PASSWORD>" "https://httpbin.io/ip"

Método 3: Usar variables de entorno

Para configuraciones de proxy persistentes en múltiples comandos cURL, puedes establecer variables de entorno. cURL comprueba automáticamente http_proxy, https_proxy y all_proxy.

bash Copy
# Establecer el proxy para el tráfico HTTP y HTTPS
export http_proxy="http://proxy.scrapeless.com:1337"
export https_proxy="http://proxy.scrapeless.com:1337"

# Ahora, cualquier comando cURL subsiguiente utilizará el proxy
curl "https://httpbin.io/ip"

Para dejar de usar el proxy, simplemente desconfigura las variables: unset http_proxy https_proxy.

Mejores prácticas para cURL y proxies

  1. Coincidencia de protocolos: Asegúrate de que el protocolo del proxy coincida con el protocolo de la solicitud (por ejemplo, usa un proxy HTTPS para una solicitud HTTPS).
  2. Soporte SOCKS: cURL admite proxies SOCKS (SOCKS4, SOCKS5) especificando el protocolo en la URL del proxy, por ejemplo, socks5://ip:port.
  3. Rotación: Si bien cURL en sí no tiene una rotación integrada, puedes implementarla usando un script de shell simple que selecciona aleatoriamente un proxy de una lista antes de ejecutar el comando cURL. Esta es una técnica común al realizar recolección de datos automatizada.

Solución de proxy recomendada: Scrapeless Proxies

Al usar cURL para la extracción de datos, la calidad de tu proxy impacta directamente en tu tasa de éxito. Scrapeless Proxies ofrece la confiabilidad y velocidad necesarias para operaciones de línea de comandos de alta frecuencia. Sus Proxies de Datacenter son ideales para la naturaleza centrada en la velocidad de cURL, ofreciendo baja latencia y alto rendimiento, mientras que sus Proxies Residenciales proporcionan el más alto nivel de anonimato para objetivos sensibles.

Preguntas Frecuentes (FAQ)

P: ¿Cómo sé si cURL está utilizando un proxy?
R: Puedes usar un servicio como https://httpbin.io/ip para verificar la dirección IP desde la que se originó la solicitud. Si la IP devuelta coincide con la IP de tu proxy, el proxy está funcionando. También puedes usar la bandera -v (verbose) en cURL para ver los detalles de la conexión, que mostrarán el apretón de manos del proxy [6].
P: ¿Cuál es el puerto proxy predeterminado para cURL?
R: cURL no tiene un puerto proxy predeterminado. Si no especificas un puerto en la URL del proxy, cURL normalmente utilizará el puerto estándar para el protocolo (por ejemplo, 1080 para SOCKS, 8080 o 3128 para HTTP), pero siempre es mejor práctica incluir explícitamente el puerto [7].

P: ¿Cómo puedo eludir el proxy para una solicitud específica?
R: Si tienes variables de entorno establecidas, puedes usar la opción --noproxy para especificar una lista de hosts que deben ser accedidos directamente, o usar --noproxy "*" para eludir el proxy para todos los hosts en ese comando específico.


Referencias

[1] Documentación de Selenium: Proxy de Chrome
[2] Cloudflare: ¿Qué es un servidor proxy?
[3] TechRadar Pro: ¿Qué es un servidor proxy y cómo funciona?
[4] Documentación de HTTPX: Proxies
[5] RFC 1928: Protocolo SOCKS Versión 5
[6] Página de Manual de cURL
[7] Registro IANA de Nombres de Servicio y Números de Puerto de Protocolo de Transporte

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar