Cómo especificar que Yum no debe usar proxy para un dominio específico

12

¿Es posible especificar el dominio para el cual yum debería omitir la configuración del proxy? Me temo que esto no es posible ...

Leí que era posible usar la variable de entorno HTTP_PROXYentonces NO_PROXY, ¿es la solución más elegante?

[EDITAR]

Probé la solución con las variables de entorno:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum usa proxy pero no se omiten los repos * .domain.

[SOLUCIÓN ALTERNA]

Usando http://cntlm.sourceforge.net/ puedo configurar qué dominio se debe ignorar. Pero esto funciona solo con proxy que requiere autenticación NTLM ...

chepseskaf
fuente

Respuestas:

26

No he podido hacer que esto funcione usando variables de entorno como usted describe aquí. Sin embargo, Yum admite proxies en sí mismo, y debería poder hacer algo como esto:

proxy=http://proxy:port

En yum.confy luego agregando

proxy=_none_

En las definiciones de repositorio no desea acceder a través del proxy global. Esto se detalla (aunque sea sucintamente) en la página de manual de yum.conf.

salvia
fuente
Exitoso, finalmente. ¡Gracias! No quiero pasar por todos los hosts de nuevo donde lo hice. Pero también sería posible agregar el proxy directamente a estos archivos de repositorio donde sea necesario (por ejemplo, todos los repositorios con servidores de paquetes externos, en contraste con los archivos de repos que usan administradores de paquetes internos que no necesitan proxy)
erikbwork
1
proxy=_none_Brillante, gracias. Ese es un barco cargado de salsa increíble. Te votaría dos veces si pudiera :)
Scottie H
@erikbwork Acabo de agregar proxy=http://proxy:porta mi archivo .repo y funcionó. ¿Es eso lo que preguntas?
Scottie H
4

Si entiendo esta pregunta correctamente, el comportamiento deseado es

paquetes.centos.com se obtiene a través de un proxy.

packages.internal.lan va directo sin pasar por el proxy.

Acabo de llegar aquí, busqué en Google cómo hacerlo yo mismo y usé la información anterior para lograr lo que quería, sin embargo, no estoy seguro de si la respuesta anterior está completa.

Para hacer esto usé lo siguiente.

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

package1 fue sacado de internet a través del proxy,

package2 fue extraído de mi espejo local sin pasar por el proxy.

Arrendajo
fuente
3

Mi solución consiste en configurar Privoxy, un proxy HTTP ligero.

yum install privoxy

Agregue dos cláusulas de reenvío en / etc / privoxy / config:

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

Y también deshabilite las acciones predeterminadas de privoxy (asegúrese de que no se corrompa el encabezado): (@line 175 en RHEL5 privoxy config)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

Luego, configure la variable de entorno http_proxy y ftp_proxy en el puerto de privoxy:

declare -x http_proxy = http://127.0.0.1:8118

declare -x ftp_proxy = http://127.0.0.1:8118

yum install package1 package2

Nota: si tiene líneas proxy en yum.conf, elimínelo, anularía la variable de entorno.

YudhiWidyatama
fuente
Estaba buscando formas de incluir en la lista blanca a los hosts de privoxy y obtuve mi respuesta aquí :)
ahmadali shafiee
2

Simplemente puede especificarlo en el archivo repositorio. Por ejemplo:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_
lzhshen
fuente