Configuración de proxy en Postman paso a paso

Publicado:

14 min de lectura

Acar Diveroli
Autor: Acar Diveroli
Una ventana con una petición GET /ip y un interruptor de proxy activado, conectada al globo a través de un nodo

Normalmente abres Postman para probar una API, y la petición sale directamente desde tu equipo. En algunos casos, sin embargo, la petición debe venir de otra dirección IP: la API responde de forma distinta a las peticiones de un país concreto, la red de la empresa solo permite salir a internet a través de un proxy o estás probando la restricción por IP de una integración. Postman ofrece dos formas de resolverlo: usar la configuración de proxy del sistema operativo o definir un proxy específico para Postman.

En este artículo explicamos dónde guarda Postman su configuración de proxy, cómo definir un proxy propio paso a paso, cómo añadir usuario y contraseña y cómo comprobar que el proxy funciona de verdad. Después vemos la lista de exclusión, los errores de conexión más habituales y el uso de un proxy con Newman en la línea de comandos.

¿Cómo usa Postman un proxy?

Postman envía las peticiones de API que haces desde la app de escritorio. Si esas peticiones pasan por un proxy lo deciden los ajustes de la pestaña Settings > Proxy. Según la documentación de proxy de Postman, hay dos opciones para enviar peticiones a través de un proxy:

  • Proxy del sistema (Use the system proxy): Postman usa la configuración de proxy del sistema operativo y las variables de entorno HTTP_PROXY, HTTPS_PROXY y NO_PROXY. Es práctico si todas las aplicaciones del equipo ya pasan por el mismo proxy.
  • Proxy propio (Use custom proxy configuration): defines un proxy para Postman con independencia del sistema operativo. Es la opción adecuada si solo quieres que las pruebas de API pasen por el proxy y dejar intactos el navegador y las demás aplicaciones.

Según la documentación, si ambas opciones están activas, Postman usa el proxy propio. Para evitar confusiones, recomendamos mantener desactivada la opción que no uses.

La interfaz de Postman puede cambiar entre versiones. Los nombres de menús y campos de este artículo siguen la documentación actual de Postman; en otra versión puedes encontrar pequeñas diferencias.

¿Cómo se define un proxy propio?

  1. Abre la app de escritorio de Postman, haz clic en el icono de engranaje de arriba a la derecha y entra en Settings.
  2. Cambia a la pestaña Proxy en la ventana que se abre.
  3. En la sección de envío de peticiones, activa Use custom proxy configuration.
  4. En Use proxy for, elige para qué tráfico se usa el proxy. Casi todas las API son HTTPS, así que asegúrate de que HTTPS está seleccionado; marcar ambas casillas es la opción más segura.
  5. En Proxy server, elige primero el protocolo. Para API web suele bastar con HTTP. Si usas un proxy SOCKS5, elige SOCKS5H para que la resolución de nombres de dominio se haga en el lado del proxy.
  6. En la misma línea, introduce la dirección y el puerto del servidor proxy, por ejemplo pr.proxynet.io y 8000.
  7. Si el proxy requiere usuario y contraseña, sigue los pasos del apartado siguiente.
  8. Los ajustes se guardan automáticamente. Cierra la ventana y envía una petición para probar.
CampoValor de ejemploDescripción
Use custom proxy configurationActivadoActiva el proxy específico de Postman
Use proxy forHTTP y HTTPSQué peticiones pasan por el proxy
Proxy server: protocoloHTTP o SOCKS5HHTTP para API web, SOCKS5H para SOCKS con DNS remoto
Proxy server: hostpr.proxynet.ioLa dirección del proxy de tu panel
Proxy server: puerto8000El puerto del protocolo elegido
Proxy authActivado / desactivadoActivado si se requieren usuario y contraseña
Username / PasswordCredenciales del panelVacío si usas lista blanca de IP
Proxy bypasslocalhost,127.0.0.1Direcciones que no deben pasar por el proxy

La documentación de Postman indica que a través de un proxy SOCKS solo se pueden enviar peticiones HTTP y HTTPS. Para otros tipos de petición, como WebSocket o gRPC, tienes que probar el comportamiento del proxy por separado.

¿Cómo se añade la autenticación?

Hay dos formas de conectarse a un proxy: con usuario y contraseña, o añadiendo la dirección IP de tu equipo a una lista de permitidas en el panel. Comparamos ambos métodos y su seguridad en Autenticación de proxy: user:pass o lista blanca de IP.

Con usuario y contraseña:

  1. En la pestaña Proxy, activa Proxy auth.
  2. Introduce las credenciales de tu panel en los campos Username y Password.
  3. Escribe la contraseña en estos campos tal cual, sin codificar. Las codificaciones como %40, necesarias para contraseñas escritas dentro de una dirección, no hacen falta aquí; Postman toma las credenciales de campos separados y construye él mismo la cabecera Proxy-Authorization.

Con lista blanca de IP:

  1. Con el proxy desactivado, averigua la dirección IP pública de tu equipo. Basta con enviar una petición GET a https://api.ipify.org en Postman.
  2. Añade esa dirección a la lista de IP permitidas de tu panel de cliente.
  3. Deja Proxy auth desactivado en Postman.

Si la dirección IP de tu conexión doméstica cambia, la lista blanca deja de funcionar al cabo de un tiempo; en ese caso, pasar a usuario y contraseña da menos trabajo.

¿Cómo se comprueba que el proxy funciona?

Después de guardar los ajustes, envía una petición a una dirección que devuelve tu IP para ver que la petición pasa realmente por el proxy.

  1. Abre una pestaña de petición nueva y deja el método en GET.
  2. Escribe https://httpbin.org/ip en la barra de direcciones y haz clic en Send.
  3. Mira el valor origin en el cuerpo de la respuesta.
json
{
  "origin": "203.0.113.25"
}

Debería ser la IP de salida del proxy. Si ves tu propia dirección IP, la petición no pasa por el proxy; comprueba que el interruptor del proxy propio está activo y que HTTPS está seleccionado en Use proxy for.

Para ver los detalles de una petición, abre la Postman Console (el botón Console de la barra inferior). La consola muestra las cabeceras enviadas, el tiempo de respuesta y el texto completo de cualquier error de conexión. Es el primer sitio donde mirar al depurar.

Puedes hacer la misma comprobación desde la línea de comandos. Si una petición no funciona en Postman, probar el mismo proxy con cURL muestra enseguida si el problema está en los ajustes de Postman o en el proxy:

bash
curl -x "http://user:pass@pr.proxynet.io:8000" https://httpbin.org/ip

Si cURL funciona y Postman no, el problema está en los ajustes de Postman. Si cURL también falla, revisa las credenciales del proxy o tu red. Las opciones de proxy de cURL se tratan en Cómo usar un proxy con cURL.

¿Para qué sirve la lista de exclusión?

El campo Proxy bypass admite una lista separada por comas de direcciones que no deben pasar por el proxy. Lo necesitas sobre todo en estas situaciones:

  • Servidor de desarrollo local. Cuando pruebas tu API en localhost:3000, enviar la petición al proxy no tiene sentido; el proxy no puede llegar a una dirección de tu red local.
  • Servicios internos. Servicios internos del bloque 10.0.0.0 o con nombres .local.
  • Servidores de autenticación. Si el servicio del que obtienes un token no tiene restricción por IP y solo la petición principal a la API debe pasar por el proxy.

Valor de ejemplo:

text
localhost,127.0.0.1,*.company.local,10.0.0.5

Las direcciones locales que olvidas añadir a la lista de exclusión dan timeout mientras el proxy está activo, o terminan en una página de error devuelta por el proxy.

Probar respuestas de API según la ubicación

Uno de los motivos más habituales para usar un proxy en Postman es ver cómo responde una API a peticiones de distintos países. Un servicio de precios puede cambiar la moneda, una API de contenido el idioma y el catálogo, y un servicio de pagos los métodos admitidos según el país de origen de la petición.

Una rutina práctica para estas pruebas:

  1. Prepara datos de proxy separados para cada país.
  2. En Postman, crea un Environment para cada país y guarda como variables la moneda, el idioma y otros valores esperados.
  3. Cambia la configuración de proxy al punto de salida del país que pruebas.
  4. Escribe en la pestaña Tests de la petición una comprobación que compare el valor esperado.
javascript
pm.test("La moneda coincide con el país", () => {
  const body = pm.response.json();
  pm.expect(body.currency).to.eql(pm.environment.get("expectedCurrency"));
});

La configuración de proxy de Postman se aplica a toda la app, no por environment. Al cambiar de país también tienes que cambiar la dirección del proxy en la pantalla Settings. Si pruebas muchos países con regularidad, es más práctico automatizarlo con Newman como se muestra más abajo. La configuración de pruebas de localización está en nuestra página de solución de localización, y los escenarios generales de pruebas de aplicaciones, en nuestra página de solución de pruebas de aplicaciones.

Si cada prueba necesita una IP de salida distinta, puede usarse un Proxies rotativos, que da una IP nueva en cada conexión sin cambiar la dirección. Si la IP debe mantenerse durante toda la prueba, elige una dirección fija.

Errores habituales y soluciones

Error o síntomaCausa probableSolución
407 Proxy Authentication RequiredUsuario o contraseña incorrectos, IP no incluida en la lista blancaVuelve a introducir las credenciales de proxy auth; revisa la IP de la lista blanca
tunneling socket could not be establishedEl proxy rechazó establecer el túnel; normalmente un 407 o un puerto equivocadoMira el valor statusCode en la consola; revisa puerto y protocolo
ECONNREFUSEDDirección o puerto incorrectos, el proxy no escucha en ese puertoCompara el nombre del servidor y el puerto con el panel
ETIMEDOUT o esperas largasUn firewall de tu red bloquea el puerto del proxyPrueba la misma conexión con cURL; habla con el administrador de red
unable to get local issuer certificateUn proxy corporativo hace inspección TLSAñade el certificado CA de la empresa en Settings > Certificates
La IP devuelta es la tuyaProxy propio desactivado o no activado para HTTPSRevisa el interruptor y la selección de Use proxy for
Las peticiones a localhost dan timeoutLas direcciones locales se envían al proxyAñade localhost,127.0.0.1 a la lista de exclusión

Una nota sobre la verificación SSL. Una solución que se sugiere a menudo en internet es desactivar SSL certificate verification en la pantalla Settings. Un forward proxy normal transporta el tráfico HTTPS por un túnel CONNECT y no toca los certificados, así que con un proxy estándar no deberías recibir errores de certificado. Si los recibes, algo intermedio está descifrando el tráfico. Añadir el certificado de ese sistema en lugar de desactivar la verificación evita que pases por alto un problema de seguridad real.

El significado general de los códigos de estado HTTP y la lógica de reintentos se tratan en Códigos de estado HTTP en web scraping.

Usar un proxy en la línea de comandos con Newman

Newman, que se usa para ejecutar colecciones de Postman en pipelines de CI o tareas programadas, no lee la configuración de proxy de la app de escritorio. El README de Newman indica que usa las variables de entorno estándar para proxies: HTTP_PROXY, HTTPS_PROXY y NO_PROXY.

En Linux y macOS:

bash
export HTTPS_PROXY="http://user:pass@pr.proxynet.io:8000"
export HTTP_PROXY="$HTTPS_PROXY"
export NO_PROXY="localhost,127.0.0.1"

newman run collection.json -e environment-de.json

En Windows PowerShell:

powershell
$env:HTTPS_PROXY = "http://user:pass@pr.proxynet.io:8000"
$env:HTTP_PROXY = $env:HTTPS_PROXY
$env:NO_PROXY = "localhost,127.0.0.1"

newman run collection.json -e environment-de.json

Como la dirección de la variable de entorno es una URL, los caracteres como @, : o / de la contraseña deben codificarse: @ se escribe %40.

Un script que prueba distintos países por turnos puede ejecutar la misma colección cambiando cada vez la variable de entorno y el archivo de environment de Postman:

bash
#!/usr/bin/env bash
set -euo pipefail

for country in de fr tr; do
  export HTTPS_PROXY="http://user-${country}:pass@pr.proxynet.io:8000"
  newman run collection.json -e "environment-${country}.json" --reporters cli,junit \
    --reporter-junit-export "result-${country}.xml"
done

El formato user-${country} es solo un ejemplo; que el país se elija con el usuario, con otro puerto o desde el panel depende del proveedor. Encontrarás el formato correcto en tu panel de cliente. Si usas la herramienta de línea de comandos más reciente de Postman, Postman CLI, consulta su propia documentación para la configuración de proxy.

Casos de uso

  • Un equipo que prueba el comportamiento de una API según la ubicación: ejecuta la misma colección con puntos de salida en distintos países. Para API web basta con un Proxies HTTPS.
  • Un desarrollador que verifica una integración restringida por IP: si la otra parte solo permite peticiones desde una IP fija concreta, enruta Postman por un proxy con esa IP y prueba la integración antes de ponerla en producción.
  • Un usuario en una red corporativa: si la empresa solo permite salir a internet a través de un proxy, basta con la opción de proxy del sistema; con inspección TLS, se añade el certificado de la empresa.
  • Un equipo de QA que examina el comportamiento de límites de velocidad: comprueba cómo responde una API a peticiones consecutivas desde la misma IP y si devuelve correctamente la cabecera Retry-After.

Guía de decisión

Tu situaciónRecomendación
Todo el equipo ya sale por un proxyUsa el proxy del sistema
Solo las peticiones de Postman deben pasar por el proxyUsa la configuración de proxy propia
Pruebas API webProtocolo HTTP
Usas un proxy SOCKS5SOCKS5H (DNS remoto)
Conexión doméstica con IP dinámicaUsuario y contraseña con proxy auth
También pruebas un servidor locallocalhost,127.0.0.1 en la lista de exclusión
Ejecutas colecciones en un pipeline de CINewman + variable de entorno HTTPS_PROXY
Recibes errores de certificadoAñade el certificado CA en lugar de desactivar la verificación

Preguntas frecuentes

¿La app web de Postman tiene configuración de proxy?

Según la documentación de Postman, el proxy predeterminado propio de Postman no se puede configurar en la app web; para enviar peticiones se usan las opciones de proxy del sistema o proxy propio. La app de escritorio es más práctica para ver y controlar todos los ajustes en una sola pantalla.

¿Se puede definir un proxy solo para una colección?

En la app de escritorio, la configuración de proxy se aplica a toda la app; no se define por colección ni por environment. Si distintas colecciones necesitan proxies distintos, dar a Newman una variable de entorno diferente en cada ejecución es la forma más limpia.

¿El proxy afecta a la sincronización de Postman mientras está activo?

Postman guarda ajustes separados para su propio tráfico, que se sincroniza con tu cuenta, y para las peticiones de API que envías. La configuración descrita en este artículo es para las peticiones que envías.

Mi contraseña tiene caracteres especiales. ¿La pongo dentro de la dirección?

En la app de escritorio de Postman, escribe la contraseña en el campo Password sin codificarla. En Newman, la contraseña va dentro de la URL de la variable de entorno, así que @, : y / deben codificarse.

¿Por qué mis peticiones son más lentas con un proxy?

Cada petición tiene un salto adicional, y la diferencia se nota cuando el punto de salida del proxy está lejos de la API que pruebas. El indicador de tiempo de respuesta de Postman y la consola muestran si el tiempo se va en la conexión o en la respuesta del servidor.

¿Elijo SOCKS5 o HTTP?

Si desde Postman solo envías peticiones de API HTTP y HTTPS, un proxy HTTP es suficiente y es el que menos problemas da. Si solo tienes un proxy SOCKS5, usa la opción SOCKS5H. La diferencia entre ambos protocolos está en SOCKS o HTTP.

En resumen

En Postman, el proxy se configura en la pestaña Settings > Proxy, usando la configuración del sistema operativo o una configuración propia de Postman. Para un proxy propio, introduce servidor, puerto y protocolo; si se requiere autenticación, escribe la contraseña sin codificar en su propio campo. Verifica la configuración con una petición a https://httpbin.org/ip, añade las direcciones locales a la lista de exclusión y usa la variable de entorno HTTPS_PROXY para Newman en los pipelines de CI. Para saber cómo funcionan los proxies en general, consulta Qué es un servidor proxy y cómo funciona; para planes adecuados a tus pruebas de API, echa un vistazo a nuestros servicios de proxy.