Die Manpage zu yum.conf beschreibt verschiedene Proxy-bezogene Variablen:
proxy URL to the proxy server that yum should use. proxy_username username to use for proxy proxy_password password for this proxy
Aber wie spezifiziere ich einen SOCKS-Proxy?
Ich gehe davon aus, dass dies nur für normale HTTP-Proxys gilt ...
dante
stattdessen. Sein Befehl istsocksify app args
ähnlich wie bei tsocks. (und genauso wie tsocks.conf für den Befehl tsocks, benötigen Sie auch socks.conf für den Befehl socksify). Um jedoch zu socksifyyum
, ich empfehlen @Klaus ‚s Antwort. Ändern Sie /etc/yum.conf ist besser.Füge diese Zeile hinzu zu
/etc/yum.conf
(ich habe die Idee aus dem Beitrag von DaPillow)proxy=socks5://ip:port
Falls die Auflösung des Hostnamens über einen Proxy erforderlich sein sollte, würde dies dank Danny aus den Kommentaren wie folgt aussehen:
proxy=socks5h://ip:port
Es hat bei mir mit yum 3.4.3 auf Fedora 21 funktioniert.
quelle
Wie von enzitib hervorgehoben,
tsocks
kann ein SOCKS-Proxy mit verwendet werdenyum
.Um genauer zu sein, kann man es so benutzen:
Standardmäßig verwendet tsocks SOCKS Version 4 - Sie können jedoch 5 über die Anweisung 'server_type' konfigurieren. Für Benutzer- / Kennwortoptionen gibt es die Direktiven 'default_user' / 'default_pass' und die Umgebungsvariablen TSOCKS_USERNAME / TSOCKS_PASSWORD.
quelle
Ich verwende CentOS6.x mit yum-3.2.29-81, curl / libcurl 7.19.7-53 und habe das gleiche Problem. Ich habe YUM-Server hinter einer Firewall und möchte YUM über ein SOCKS5-Proxy-Setup mit SSH verwenden. Im Idealfall möchte ich dies tun, ohne T-Socks, Proxy-Ketten oder andere "Socksification" -Dienstprogramme zu benötigen.
Ich richte die SOCKS5-Verbindung ein mit:
Ich stöberte in den YUM-Python-Quellen herum und sah, dass sie Pycurl verwenden, das Libcurl umschließt. Außerdem habe ich überprüft, dass ~ / .curlrc leer ist, damit meine Testergebnisse nicht beeinträchtigt werden.
Ich wollte sehen, ob ich Curl dazu bringen könnte, über den socks5-Proxy zu sprechen:
erfolgreich zurückgegeben die Remote - Web - Seite, so dass ein gutes Zeichen - zeigt libcurl kann SOCKS5 Proxies verwenden. Definieren Sie jedoch eine Umgebungsvariable
war nicht genug:
gescheitert.
Zu diesem Zeitpunkt wechselte ich zu einem Python-Testprogramm test.py :
Jetzt renn
wird nicht abrufen, aber ausgeführt
wird erfolgreich http: // some-server / some-url holen . Aus diesem Grund scheint mir diese (zugegebenermaßen uralte) Kombination aus yum und libcurl, die im Lieferumfang von CentOS6 enthalten ist, den Proxy-Typ in libcurl nicht korrekt einzustellen. Ich denke, was passiert ist, dass der PROXYTYPE standardmäßig einen Standard-HTTP-Proxy verwendet, anstatt das Schema socks5: // in der URL zu identifizieren, die in der Umgebungsvariablen http_proxy angegeben ist.
Mit dem folgenden Patch für /usr/lib/python2.6/site-packages/urlgrabber/grabber.py konnte ich auf jeden Fall über einen SOCKS5-Proxy auf http: // yum-Repositorys zugreifen. Fügen Sie in PyCurlFileObject # _set_opts (self, opts = {}) Folgendes hinzu:
um die Linie 1205 herum, direkt davor
Mit dieser Änderung
stellt über den SOCKS5-SSH-Proxy erfolgreich eine Verbindung zu allen meinen http: // yum-Repositorys auf der anderen Seite der Firewall her.
Natürlich kann man die Umgebungsvariable http_proxy innerhalb der eigenen Shell exportieren , um zu vermeiden, dass sie vor jedem Aufruf von yum angegeben wird .
quelle
Proxychaines
Auch ist eine gute Option für Sie!Laden Sie es zuerst herunter und legen Sie Ihre Socken-Informationen in der
proxychains.conf
Datei fest. Geben Sieproxyxhanes
vor jedem Befehl, den Sie verwenden möchten, den Socken-Proxy ein!quelle
Fügen Sie diese Zeile hinzu
/etc/yum.conf
und stellen Sie sicher, dass Sie das erwartete Protokoll (nicht http) verwenden:quelle
Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"