Guía de Python · 2 min de lectura

pip y conda detrás de un proxy

Instalar paquetes de Python desde detrás de un firewall se reduce a una configuración de proxy HTTP, expuesta de tres maneras en pip y dos en conda. Aquí están cada una, con el truco de trusted-host para proxies corporativos que inspeccionan TLS.

Un proxy, varios lugares para configurarlo

pip and conda both fetch over HTTPS, so both want the s4m HTTP endpoint on port 3128, authenticated with USER:PASS. pip exposes the setting three ways: the --proxy flag for a single command, a proxy line in pip.conf for persistence, and the PIP_PROXY environment variable. pip also honours the standard http_proxy / https_proxy variables, so a shell-level export often fixes things without touching pip's own config.

conda has its own config file. Set proxy_servers for http and https with conda config, which writes to ~/.condarc; conda also reads the environment variables. With s4m you point both tools at http://USER:PASS@proxy.s4m.online:3128. See the proxy page, the sibling npm/yarn guide, and the shared environment-variable guide for how these variables cross tools.

pip y conda, cada método

bandera, archivo de configuración y variable de entorno para pip; condarc para conda; trusted-host para proxies que inspeccionan TLS. Reemplaza USER:PASS.

bash
# --- pip: single command ---
pip install --proxy http://USER:PASS@proxy.s4m.online:3128 requests

# --- pip: environment variables (whole session) ---
export https_proxy="http://USER:PASS@proxy.s4m.online:3128"
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
pip install requests

# --- pip: persistent config (~/.config/pip/pip.conf, or pip.ini on Windows) ---
cat > ~/.config/pip/pip.conf <<'CFG'
[global]
proxy = http://USER:PASS@proxy.s4m.online:3128
timeout = 30
CFG

# --- conda: writes to ~/.condarc ---
conda config --set proxy_servers.http  http://USER:PASS@proxy.s4m.online:3128
conda config --set proxy_servers.https http://USER:PASS@proxy.s4m.online:3128
conda install numpy

# --- TLS-inspecting corporate proxy? mark hosts trusted for pip ---
pip install --proxy http://USER:PASS@proxy.s4m.online:3128 \
  --trusted-host pypi.org --trusted-host files.pythonhosted.org requests

Elige el método correcto

¿Qué tan permanente necesita ser la configuración?

Una instalación

Usa pip install --proxy http://USER:PASS@proxy.s4m.online:3128 . Nada persiste — ideal en una máquina compartida o temporal.

Toda la sesión

Exporta http_proxy y https_proxy. Tanto pip como conda (y la mayoría de las herramientas de CLI) en ese shell utilizan la salida hasta que las desconfigures.

Permanente por usuario

Escribe el proxy en pip.conf y ~/.condarc para que cada instalación se dirija automáticamente sin repetir banderas.

Intercepción TLS

Si un proxy corporativo vuelve a firmar TLS, pip puede rechazar certificados. Agrega --trusted-host para pypi.org y files.pythonhosted.org, o instala el CA del proxy.

Intercepción TLS, autenticación y honestidad

El fallo de pip más confuso detrás de un proxy no es un tiempo de espera, sino un error de certificado SSL. Eso sucede cuando un proxy corporativo intercepta y vuelve a firmar HTTPS: pip ve un certificado no confiable y se niega. La solución adecuada es instalar la CA raíz del proxy en tu almacén de confianza; la solución rápida es --trusted-host pypi.org --trusted-host files.pythonhosted.org. El propio proxy de s4m no intercepta TLS, así que no te encontrarás con esto en nuestro punto final: solo reenvía tu tráfico cifrado.

El proxy HTTP de s4m es un punto final autenticado de centro de datos, con pago por uso — una salida limpia para imágenes de CI y cajas de desarrolladores que deben acceder a PyPI y canales de conda desde detrás de una red controlada. No es un proxy residencial ni un espejo de paquetes. Codifica caracteres especiales en tu contraseña (@ se convierte en %40), y establece no_proxy para índices de paquetes internos. Un 407 significa credenciales incorrectas — consulta la guía 407. Cuando CI necesita una salida permitida, añade una IP personal dedicada; valida cualquier punto final con las herramientas.

FAQ

Preguntas, respondidas

¿Cómo configuro un proxy para una sola instalación de pip?

Pasa --proxy http://USER:PASS@proxy.s4m.online:3128 al comando de instalación de pip. Nada persiste, lo cual es útil en máquinas compartidas; para una configuración permanente usa pip.conf o la variable de entorno http_proxy.

¿Por qué falla pip con un error de certificado SSL detrás de un proxy?

Es probable que un proxy corporativo esté interceptando y re-firmando TLS, por lo que pip ve un certificado no confiable. Instala la CA raíz del proxy, o usa --trusted-host pypi.org --trusted-host files.pythonhosted.org. s4m no intercepta TLS, por lo que nuestro punto final evita esto.

¿Cómo configuro conda para usar un proxy?

Ejecuta conda config --set proxy_servers.http y proxy_servers.https a tu URL de proxy; escribe en ~/.condarc. conda también respeta las variables de entorno http_proxy y https_proxy.

¿Necesitan pip y conda el punto final SOCKS5 o HTTP?

El punto final HTTP en el puerto 3128. Ambas herramientas obtienen paquetes a través de HTTPS mediante un proxy HTTP CONNECT, así que apúntalas a http://USER:PASS@proxy.s4m.online:3128.

Desbloquea tus instalaciones de Python

Rutea pip y conda a través del punto final HTTP autenticado en proxy.s4m.online:3128. Pago por uso, sin interceptación TLS, IP dedicada disponible para listas de permitidos de CI.

Las personas encontraron esta página buscando

Frases de búsqueda reales que esta página responde — los enlaces abren la página que las cubre en profundidad.