Proxies residenciales

Configuración de proxies residenciales en cURL y Postman

Ambas herramientas gestionan bien los proxies, y ambas tienen una configuración que rompe las cosas sin avisar. Aquí está la configuración funcional para cada una, y cómo depurar el resto.

Chris Collins

Chris Collins

31 de agosto de 2026 · 7 min de lectura

Antes de que un proxy se acerque a código de aplicación, merece la pena comprobar que funciona desde una herramienta que puedas inspeccionar. cURL y Postman son las dos a las que recurren la mayoría de los desarrolladores, y ambas manejan bien los proxies una vez configuradas, pero cada una tiene un ajuste que produce un comportamiento confuso si se pasa por alto. Aquí está la configuración que funciona para ambas, los flags de depuración que importan, y las trampas.

Los datos de conexión son los mismos en todas partes: host p.shifter.io, puerto 443, y un nombre de usuario que lleva tu segmentación. La referencia del formato está en cómo conectarse a un proxy residencial.

cURL

La configuración completa es un solo flag.

curl -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://ipinfo.io/json

-x y --proxy son lo mismo. Ejecuta eso dos veces y la dirección debería diferir, lo que confirma tanto las credenciales como la rotación en un solo paso.

La segmentación va en el nombre de usuario, así que nada más del comando cambia:

# salida en Alemania
curl -x customer-USERNAME-country-de:PASSWORD@p.shifter.io:443 https://ipinfo.io/json

# sesión persistente, diez minutos
curl -x customer-USERNAME-country-de-sid-abc123-ttl-600:PASSWORD@p.shifter.io:443 https://ipinfo.io/json

Mantener las credenciales fuera del historial de tu shell

Incluir una contraseña en la URL la deja en tu historial y en cualquier listado de procesos. Dos opciones mejores:

# credenciales pasadas por separado
curl -x p.shifter.io:443 -U customer-USERNAME-country-de:PASSWORD https://ipinfo.io/json

# o desde el entorno
export PROXY_USER="customer-USERNAME-country-de"
export PROXY_PASS="..."
curl -x p.shifter.io:443 -U "$PROXY_USER:$PROXY_PASS" https://ipinfo.io/json

Ten en cuenta que -U son las credenciales del proxy y -u son las credenciales para el sitio de destino. Confundir ambas es una causa habitual de un 407 con una contraseña perfectamente válida.

Flags de depuración que conviene conocer

# ver el handshake del proxy y si la autenticación tuvo éxito
curl -v -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://ipinfo.io/json

# desglose de tiempos: dónde va realmente la latencia
curl -o /dev/null -s -w "connect: %{time_connect}s  ttfb: %{time_starttransfer}s  total: %{time_total}s\n" \
  -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://example.com

Ese segundo es la forma más rápida de distinguir una conexión de proxy lenta de un destino lento, que es la primera bifurcación en por qué las peticiones agotan el tiempo de espera y el punto de partida para reducir la latencia.

SOCKS5 en cURL, y la trampa

Si usas SOCKS5 en lugar de HTTP, el esquema importa más de lo que parece:

# filtra DNS: tu máquina resuelve el nombre de host
curl -x socks5://customer-USERNAME:PASSWORD@p.shifter.io:443 https://example.com

# correcto: el proxy lo resuelve
curl -x socks5h://customer-USERNAME:PASSWORD@p.shifter.io:443 https://example.com

La h es toda la diferencia, y equivocarse significa que tus consultas DNS salen desde tu propia ubicación, lo que puede devolver resultados regionalmente incorrectos. Detalles en cómo prevenir fugas de DNS.

Un flag que nunca debe usarse en producción

--proxy-insecure desactiva la verificación de certificados en el tramo del proxy. Ocasionalmente es útil para confirmar que un error TLS es un problema de certificado y no otra cosa, y nunca debe aparecer en nada permanente.

Postman

El soporte de proxy de Postman es sólido, pero se configura en los ajustes de la aplicación en lugar de por petición, lo que sorprende a quienes esperan encontrarlo en la propia petición.

Configurarlo

Abre Settings, luego la pestaña Proxy. Desactiva la opción del proxy del sistema y activa la configuración de proxy personalizada. Establece el servidor proxy como p.shifter.io y el puerto como 443, marca tanto HTTP como HTTPS, luego activa la autenticación de proxy e introduce tu nombre de usuario, incluidos los flags de segmentación, y tu contraseña.

Esa configuración es global para la aplicación Postman, algo que conviene tener en cuenta: una vez establecida, todas las peticiones de todas las colecciones pasan por el proxy hasta que la desactives. Si además estás probando servicios internos, también se enrutarán, lo cual normalmente no es lo que quieres.

El ajuste que rompe las cosas

En Settings y luego General, está SSL certificate verification. Si te encuentras con errores de certificado a través del proxy y la desactivas, recuerda que has desactivado la verificación para todo lo que hace Postman, no solo para la petición proxificada. Vuelve a activarla después. Si estás viendo errores de certificado, merece la pena entenderlos en lugar de desactivarlos.

Cambiar de segmentación sin volver a escribir

Como la segmentación vive en el nombre de usuario, cambiar de país significa editar un solo campo. Las variables de Postman hacen esto menos tedioso: define un entorno con una variable para el nombre de usuario del proxy, y luego intercambia entornos para intercambiar mercados. El cuadro de diálogo de ajustes de proxy acepta la sintaxis de variables, así que customer-USERNAME-country-{{market}} te permite cambiar de país cambiando el entorno activo en lugar de abrir los ajustes cada vez.

Comprobar que funciona

Envía un GET a https://ipinfo.io/json y lee la respuesta. Debería indicar una dirección en el país que has segmentado, no el tuyo propio. Envíalo dos veces sin sid en el nombre de usuario y la dirección debería cambiar.

Si la dirección es la tuya propia, el proxy no se está aplicando en absoluto: comprueba que la configuración de proxy personalizada esté realmente activada y que tanto HTTP como HTTPS estén marcados.

El Collection Runner

Para pruebas con un volumen algo mayor, el Collection Runner ejecutará una colección repetidamente a través de la misma configuración de proxy. Añade un retraso entre iteraciones en lugar de ejecutar a máxima velocidad, ya que una ráfaga de peticiones idénticas es la forma más rápida de conseguir que un destino deje de responder, según limitación de tasa y throttling.

Cuando algo falla

Cuatro respuestas cubren casi todo, y cada una apunta a algo específico.

407 significa que las credenciales fueron rechazadas, o que un flag en el nombre de usuario está mal formado, ya que un valor no reconocido hace que todo el nombre de usuario sea imposible de interpretar. Prueba primero el nombre de usuario simple sin flags; si eso funciona, añádelos de nuevo uno a uno. Ruta completa en solucionar errores 407.

502 significa que tus credenciales eran correctas pero nada coincidió con tu filtro en ese momento. Amplíalo, o baja de ciudad a país.

509 significa que el ancho de banda del plan está agotado con el excedente desactivado.

Conexión rechazada o un bloqueo significa que nunca llegaste a la puerta de enlace. Comprueba nc -vz p.shifter.io 443 antes de asumir un problema de proxy, y confirma que no estás apuntando a un host antiguo.

El índice más amplio está en errores comunes de proxy residencial.

Pasar de herramientas a código

Una vez que ambas herramientas funcionan, los mismos cuatro valores se trasladan directamente a lo que sea que estés construyendo, y los patrones del lado del cliente están en usar proxies residenciales con Python. Una cosa que no se traslada: en código de aplicación, la reutilización de conexión hace que las peticiones enviadas por un túnel existente mantengan la misma dirección de salida, lo que parece exactamente un fallo de rotación. Esa sorpresa está cubierta en la IP no rota.

La conclusión

En cURL todo se reduce a -x, con -U para mantener las credenciales fuera de la URL, -v para ver el handshake, y -w para averiguar si la lentitud es del proxy o del destino; si usas SOCKS5, usa socks5h para que el DNS se resuelva en el proxy. En Postman la configuración vive en los ajustes de la aplicación en lugar de en la petición, así que se aplica globalmente hasta que la desactives, y el interruptor de verificación SSL es a nivel de aplicación en lugar de a nivel de petición. En ambos, la segmentación vive en el nombre de usuario, así que cambiar de país nunca significa cambiar el host, el puerto, ni nada más. Comprueba que funciona en una herramienta que puedas inspeccionar antes de ponerlo en código, y lee los fallos por código de estado.

La puerta de enlace detrás de todo esto es proxies residenciales, un host y un par de credenciales para todos los países y modos de sesión, facturado por GB para que las pruebas cuesten solo el ancho de banda que usan.

¿Listo para empezar?

Prueba los proxies residenciales de Shifter, más de 205M IPs, más de 195 países, desde 0,75 $/GB.

Comenzar