Cómo usar pip con proxies

Configura proxies con pip para evitar restricciones, mejorar la seguridad y optimizar la gestión de paquetes.
11 min de lectura
How to Use Pip with Proxies blog image

En este artículo, aprenderás a configurar y usar proxies con pip para una gestión de paquetes sin problemas en redes restringidas.

Diferencias entre proxies públicos y privados

Al seleccionar un proxy, determinar si será público o privado es una consideración importante.

Proxies públicos

Los proxies públicos están abiertos para que cualquiera los use y a menudo carecen de autenticación. Si bien pueden proporcionar acceso rápido a una dirección IP, tienen desventajas: velocidades más lentas, conexiones inestables y posibles bloqueos de IP. Como son gratuitos y ampliamente disponibles, a menudo carecen de características esenciales como rotación de proxies, caché y control de acceso, lo que los hace poco confiables en un entorno de producción.

Una URL pública puede tener este formato: https://proxyserver:port.

Proxies privados

Los proxies privados requieren autenticación, lo que ofrece mayor seguridad, estabilidad y características avanzadas, aunque generalmente con un costo. Ofrecen una conexión segura, rápida y confiable a una dirección IP dedicada, junto con funciones como autenticación y rotación de proxy.

El acceso generalmente se controla mediante autenticación, a menudo incluyendo un nombre de usuario y contraseña como prefijo de la URL del proxy, así: https://username:password@proxyserver:port.

Uso de proxies con pip

Para comenzar a usar un proxy con pip, necesitas reunir algunos detalles sobre tu proxy. El siguiente ejemplo usa un proxy público con los siguientes detalles:

  • Una dirección de proxy para el servicio de proxy
  • El puerto que el servicio de proxy requiere para la comunicación

El siguiente repositorio proxy-list proporciona direcciones de proxy públicas probadas diariamente que pueden ser útiles para pruebas, pero no deben usarse en entornos de producción.

Dentro del repositorio proxy-list, revisa el archivo proxy-list-status.txt para encontrar un proxy público funcional. Esto se puede hacer revisando el archivo en busca de una dirección que tenga la etiqueta success junto a ella, lo que indica que está funcionando:

Seleccionando un proxy público

Para este tutorial, usa 45.185.162.203:999 como tu dirección de proxy público. Esto significa que la dirección del servidor proxy es http://45.185.162.203:999.

Configurar un proxy de pip con la línea de comandos

La forma más rápida de configurar un proxy de pip es pasar la dirección al llamar al comando pip install usando la opción de línea de comandos --proxy.

Usando la dirección del proxy público, prueba tu acceso al proxy y a los paquetes con el siguiente comando:

  # Public Proxy
pip install boto3 --proxy http://45.185.162.203:999

Este método es útil para probar y validar rápidamente proxies antes de configurar permanentemente uno nuevo. Si publicas paquetes de pip, ayuda a verificar la disponibilidad desde una IP diferente.

Configurar un proxy de pip con el archivo de configuración de pip

Para configurar permanentemente un proxy de pip, el archivo de configuración de pip es una solución fácil y declarativa. Su ubicación depende de tu sistema operativo y se puede encontrar en los siguientes directorios:

  • Global: Archivo de configuración a nivel de sistema, compartido entre usuarios.
  • Usuario: Archivo de configuración por usuario para el usuario que ejecuta el proceso pip.
  • Sitio: Archivo de configuración por entorno usando entornos virtuales de Python.

Estos archivos de configuración se pueden encontrar o crear en las siguientes ubicaciones para cada sistema:

Linux/macOS

En sistemas basados en Linux, el archivo de configuración de pip se llama pip.conf y se puede encontrar en las siguientes ubicaciones:

  • Global:
    • Sistemas basados en Debian: Edita o crea pip.conf en el/etc` directorio.
    • Sistemas basados en macOS: Edita o crea /Library/Application Support/pip/pip.conf.
  • Usuario:
    • Sistemas basados en Debian: Edita o crea el archivo ~/pip/pip.conf.
    • Sistemas basados en macOS: Edita o crea el archivo de configuración ~/.config/pip/pip.conf.
  • Sitio: Cuando se carga en un entorno virtual de Python, se ubica en $VIRTUAL_ENV/pip.conf.

Windows

En un sistema Windows, el archivo es un pip.ini y se puede encontrar en las siguientes ubicaciones:

  • Global: Edita o crea el archivo C:ProgramDatapippip.ini. Ten en cuenta que este archivo está oculto de forma predeterminada en sistemas Windows, pero se puede escribir.
  • Usuario: Edita o crea pip.ini en %APPDATA%pip.
  • Sitio: Cuando se carga en un entorno virtual de Python, edita o crea el archivo de configuración en %VIRTUAL_ENV%pip.ini.

Nota: En lugar de revisar una lista de ubicaciones conocidas, puedes pedirle a pip que liste las ubicaciones válidas:

  pip config -v list

Contenido del archivo de configuración

Para este ejemplo, se usa el archivo de configuración de pip de un entorno virtual de Python. En un entorno virtual activado, edita $VIRTUAL_ENV/pip.conf en sistemas basados en Debian o %VIRTUAL_ENV%pip.ini en Windows.

En el archivo de configuración, debes actualizar la clave proxy con tu proxy HTTP o HTTPS deseado:

  [global]
proxy = http://45.185.162.203:999

Una vez guardado el archivo, el proxy se usa automáticamente con cualquier comando de pip, eliminando la necesidad de la bandera de proxy mencionada anteriormente:

  (venv) $ pip install boto3

Puedes encontrar más detalles sobre las opciones de configuración disponibles en el archivo de configuración de pip en la documentación del proyecto.

Configurar un proxy de pip con variables de entorno

Establecer variables de entorno del sistema asegura que se use un proxy para pip y todas las demás solicitudes HTTP en un sistema. Esto se hace utilizando las variables de entorno HTTP_PROXY y HTTPS_PROXY, que a menudo son referenciadas por software como pip como un proxy del sistema a usar al hacer solicitudes HTTP.

Linux/macOS

Si usas un sistema operativo Linux, actualiza el archivo /etc/environment, o si eres usuario de macOS, actualiza el archivo .zshrc ubicado en el directorio de inicio. Luego, actualízalo con nuevas entradas para tu servidor proxy:

  HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port

Una vez que reinicies tus sesiones de terminal o reinicies tu sistema, las variables de entorno estarán presentes.

Windows

En un sistema Windows, puedes establecer variables de entorno con los siguientes comandos en una terminal de símbolo del sistema:

  $env:HTTP_PROXY "https://proxyserver:port" /M
$env:HTTPS_PROXY "https://proxyserver:port" /M

Reinicia el símbolo del sistema para que los cambios surtan efecto.

Probar la configuración

Una vez que tengas una configuración a nivel de sistema habilitada, ya sea mediante el archivo de configuración de pip o las variables de entorno, debes probar que el proxy pueda conectarse con éxito y recibir datos a través de él.

Linux/macOS

En Linux/macOS, usa el siguiente comando:

  $ python -m venv venv
$ source venve/scripts/activate

# for pip config file or environment variables
(venv) $ pip install requests

Si alguna vez quieres anular estas configuraciones con un proxy específico, puedes recurrir a las banderas de la CLI:

  # pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

En este comando, asegúrate de actualizar https://proxyserver:port con tu propio proxy.

Windows

En Windows, usa el siguiente comando:

  > python -m venv venv
> .venvScriptsActivate.bat
(venv) > pip install requests

Estas configuraciones siempre se pueden anular usando las banderas de la CLI de pip:

  # pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

Solución de problemas con proxies de pip

Al conectarte a un proxy HTTP o HTTPS con pip, puedes encontrar los siguientes problemas comunes, particularmente si exploras el uso de proxies privados o proxies HTTPS debido a sus características mejoradas.

Problemas de autenticación

Los problemas de autenticación se ven comúnmente como un error 407 Proxy Authentication Required al intentar conectarse al proxy con pip. Esto indica que el proxy requiere un nombre de usuario y contraseña para conectarse o que proporcionaste credenciales incorrectas para el proxy.

Problemas de certificado

Al conectarte a un proxy HTTPS, puedes recibir un error Certificate verify failed de pip. Esto indica que hay un problema con el certificado proporcionado por el servidor proxy.

Si tu servidor proxy privado usa un certificado autofirmado, puedes recibir este error, y el certificado no se puede verificar con una autoridad certificadora. Es posible que quieras usar la opción de la CLI --trusted-host al conectarte a ciertos dominios e ignorar errores de certificados autofirmados.

Uso de pip con proxies rotativos

Los proxies rotativos ayudan a evitar bloqueos de IP al cambiar automáticamente las direcciones IP para cada solicitud. Esto simula múltiples usuarios y evita restricciones.

Puedes implementar esto seleccionando aleatoriamente proxies de una lista. A continuación hay un script bash simple que instala paquetes de pip mientras rota a través de proxies públicos.

Crea el siguiente script bash llamado rotate-proxies.sh:

  proxy_list=(
  'http://45.185.162.203:999'
  'http://177.23.176.58:8080'
  'http://83.143.24.66:80'
)

pip_packages=(
  'requests'
  'numpy'
  'pandas'
)
chmod +x rotate-proxies.sh
# Loop through packages and install them
for package in "${pip_packages[@]}"
do
  # Randomly select a proxy from the list
  proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
  echo -e  "nInstalling $package with proxy $proxy"
  pip install --proxy $proxy $package
done

Una vez creado, puedes ejecutar el archivo para descargar los paquetes de pip y rotar a través de un proxy aleatorio para cada comando pip. Aquí hay un resumen de la salida del script:

  $ ./rotate-proxies.sh 

Installing requests with proxy http://177.23.176.58:8080
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)

….

Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2026.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0

Installing six with proxy http://45.185.162.203:999
Collecting numpy
 Downloading numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB)

…

Installing collected packages: numpy
Successfully installed numpy-2.2.2

Installing pandas with proxy http://83.143.24.66:80
Collecting pandas
  Downloading pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB)

….

Installing collected packages: pytz, tzdata, six, python-dateutil, pandas
Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2026.1 six-1.17.0 tzdata-2026.1

Beneficios de usar proxies con pip

Los proxies ayudan a los desarrolladores a evitar restricciones de red, acceder a recursos bloqueados y mejorar las velocidades de descarga de paquetes. Los proxies privados ofrecen caché, conexiones más rápidas y seguridad mejorada al enmascarar tu identidad.

En comparación con una VPN, los proxies son una alternativa ligera para las solicitudes de pip. Mientras que una VPN cifra todo el tráfico de Internet para una privacidad más amplia, puede ralentizar las instalaciones de paquetes debido al aumento de la latencia. Los proxies brindan una solución más rápida y eficiente para gestionar dependencias.

Errores comunes y mejores prácticas

Al usar proxies con pip, es importante estar atento a errores comunes, ya que pueden provocar vulnerabilidades de seguridad. Errores como URLs de proxy incorrectas o formatos de URL mal configurados, como un protocolo HTTP o HTTPS faltante o incorrecto, pueden interrumpir las conexiones a los repositorios de paquetes.

Un problema de seguridad frecuente es codificar credenciales de proxy (por ejemplo, nombres de usuario y contraseñas) directamente en códigos fuente, scripts o definiciones de pipeline de integración continua y entrega continua (CI/CD). Si este código se redistribuye, puede ocurrir un acceso no autorizado al proxy. Si las credenciales se ven comprometidas, el proxy puede ser mal utilizado, lo que lleva a mayores costos o incluso a ser explotado por ciberataques.

Para evitar estos errores, se recomienda mantener seguras las credenciales de proxy almacenándolas en variables de entorno o archivos de configuración cifrados en lugar de directamente en el código. Además, debes probar la conectividad del proxy antes de usar pip para garantizar una configuración correcta y evitar errores de ejecución. Usando herramientas como curl o ping, puedes verificar el rendimiento del proxy antes de ponerlo en servicio. Esto permite una experiencia de gestión de paquetes más fluida.

Uso de proxies de Bright Data

Si buscas un proveedor de proxies de alta calidad y con buenas características, consulta Bright Data. Es una solución de proxy que proporciona una variedad de direcciones IP, incluyendo residenciales, de centros de datos y de dispositivos móviles. También ofrece herramientas especializadas para la recopilación de datos y scraping web, incluyendo proxies rotativos y la API de Web Unlocker.

Bright Data puede ayudarte a crear fácilmente proxies para las necesidades de tu proyecto. Para mostrarte lo fácil que es, vamos a crear un proxy residencial privado que puedas usar con pip para acceder a paquetes a través de una dirección IP diferente.

Comienza registrándote en Bright Data. Luego navega al panel de usuario.

En el menú lateral, haz clic en Proxies y Scraping:

Proxies de Bright Data

Una vez cargado el formulario, configura un nuevo proxy residencial. Si usas la configuración predeterminada, obtendrás un proxy con una dirección IP compartida usada por múltiples usuarios de Bright Data:

Creación de un proxy residencial

Si te diriges a una región específica, también puedes especificar el país en el que deseas que se ubique la dirección IP.

Después de la creación, serás redirigido a un panel que contiene el endpoint y los detalles de autenticación de tu proxy recién creado. Toma nota tanto del nombre de usuario, la contraseña, como de la dirección del servidor:

Panel de proxy

Usando estos valores de endpoint, prueba su disponibilidad usando la bandera --proxy:

  $ pip install pandas 
    --trusted-host pypi.org 
    --trusted-host files.pythonhosted.org 
    --proxy https://username:[email protected]:33335

Debido a que el proxy de Bright Data usa un certificado autofirmado, puedes usar la bandera trusted-host para incluir en la lista blanca pypi.org y files.pythonhosted.org como dominios de confianza.

Conclusión

Usar un proxy con pip ayuda a mejorar el anonimato y el control, permitiéndote evitar restricciones de IP y bloqueos geográficos. Dependiendo de tus necesidades, puedes elegir entre proxies públicos y privados.

Los proxies privados ofrecen ventajas, como IPs rotativas, caché mejorado, mayor velocidad y mayor estabilidad, pero el costo depende de la disponibilidad de IP y la ubicación geográfica.

Configurar un proxy para pip es sencillo, con múltiples opciones como banderas de la CLI, un archivo de configuración de pip y variables de entorno. Sin embargo, los proxies públicos tienen limitaciones y, como se discutió anteriormente, no son ideales para cargas de trabajo grandes o uso en producción. Para una solución más confiable, Bright Data ofrece IPs residenciales y de centro de datos, proporcionando conexiones rápidas y estables, además de herramientas avanzadas para scraping web y recopilación de datos.