So legen Sie fest, dass Yum keinen Proxy für eine bestimmte Domain verwenden soll

11

Ist es möglich, eine Domain anzugeben, für die die Proxy-Konfiguration umgangen werden soll? Ich fürchte, das ist nicht möglich ...

Ich las , dass es möglich war , die Umgebungsvariable zu verwenden , HTTP_PROXYdann NO_PROXYist es die eleganteste Lösung?

[BEARBEITEN]

Ich habe die Lösung mit den Umgebungsvariablen ausprobiert:

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 verwendet Proxy, aber die Repos * .domain werden nicht umgangen.

[Abhilfe]

Unter http://cntlm.sourceforge.net/ kann ich konfigurieren, welche Domain ignoriert werden soll. Dies funktioniert jedoch nur mit einem Proxy, der eine NTLM-Authentifizierung erfordert ...

chepseskaf
quelle

Antworten:

24

Ich war nicht in der Lage, dies mit Umgebungsvariablen, wie Sie hier beschreiben, zum Laufen zu bringen. Yum unterstützt jedoch Proxies selbst, und Sie sollten in der Lage sein, Folgendes zu tun:

proxy=http://proxy:port

In yum.confund dann Hinzufügen

proxy=_none_

In die Repo-Definitionen, auf die Sie nicht über den globalen Proxy zugreifen möchten. Dies wird (wenn auch kurz und bündig) in der Manpage yum.conf beschrieben.

Salbei
quelle
Endlich erfolgreich. Vielen Dank! Ich möchte nicht noch einmal alle Gastgeber durchgehen, bei denen ich es getan habe. Es wäre aber auch möglich, den Proxy direkt zu diesen Repo-Dateien hinzuzufügen, wo es benötigt wird (z. B. alle Repos mit externen Paket-Servern, im Gegensatz zu den Repo-Dateien, die interne Paket-Manager verwenden, die keinen Proxy benötigen)
erikbwork
proxy=_none_Genial, danke. Das ist eine Schiffsladung großartiger Sauce. Ich würde dich zweimal abstimmen, wenn ich könnte :)
Scottie H
@erikbwork Ich habe gerade eine proxy=http://proxy:portzu meiner .repo-Datei hinzugefügt und es hat funktioniert. Fragen Sie das?
Scottie H
4

Wenn ich diese Frage richtig verstehe, ist das gewünschte Verhalten

packages.centos.com wird über einen Proxy abgerufen.

packages.internal.lan geht direkt, ohne über den Proxy zu gehen.

Ich bin gerade hier angekommen, nachdem ich gegoogelt habe, wie das geht, und habe die obigen Informationen verwendet, um das zu erreichen, was ich wollte. Ich bin mir jedoch nicht sicher, ob die obige Antwort vollständig ist.

Dazu habe ich folgendes benutzt.

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

export no_proxy=internal.lan

yum install package1 package2

package1 wurde über den Proxy aus dem Internet gezogen,

package2 wurde von meinem lokalen Spiegel gezogen, der den Proxy nicht durchlief.

Jay
quelle
3

Meine Lösung beinhaltet das Einrichten von Privoxy, einem leichten http-Proxy.

yum install privoxy

Fügen Sie zwei Forward-Klauseln in / etc / privoxy / config hinzu:

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

Deaktivieren Sie außerdem die Standardaktionen von privoxy (stellen Sie sicher, dass kein Header beschädigt wurde): (@line 175 in der RHEL5-Privoxy-Konfiguration)

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

Richten Sie dann die Umgebungsvariablen http_proxy und ftp_proxy für den Port von privoxy ein:

Deklarieren Sie -x http_proxy = http://127.0.0.1:8118

Deklarieren Sie -x ftp_proxy = http://127.0.0.1:8118

yum install package1 package2

Hinweis: Wenn Sie Proxy-Zeilen in yum.conf haben, entfernen Sie diese, da sie die Umgebungsvariable überschreiben würden.

YudhiWidyatama
quelle
Ich habe nach Möglichkeiten gesucht, Hosts von privoxy auf die Whitelist zu setzen, und hier habe ich meine Antwort :)
ahmadali shafiee
2

Sie können es einfach in der Repo-Datei angeben. Zum Beispiel:

[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
quelle