La page de manuel de yum.conf décrit plusieurs variables liées au proxy:
proxy URL to the proxy server that yum should use. proxy_username username to use for proxy proxy_password password for this proxy
Mais comment spécifier un proxy SOCKS?
Je suppose que ce qui précède est juste pour les proxys HTTP normaux ...
dante
plutôt. Sa commande estsocksify app args
similaire à tsocks. (et comme pour tsocks.conf pour la commande tsocks, vous avez également besoin de socks.conf pour la commande socksify). Cependant, pour socksifyyum
, je recommande la réponse de @Klaus. Modifier /etc/yum.conf est meilleur.Ajouter cette ligne à
/etc/yum.conf
(a eu l'idée du post par DaPillow)proxy=socks5://ip:port
Dans le cas où la résolution du nom d'hôte via un proxy est nécessaire, grâce à Danny des commentaires, cela le fera:
proxy=socks5h://ip:port
Cela a fonctionné pour moi en utilisant yum 3.4.3 sur Fedora 21.
la source
Comme indiqué par enzitib,
tsocks
peut être utilisé pour utiliser un proxy SOCKS avecyum
.Pour être plus détaillé, on peut l'utiliser comme ceci:
Par défaut, tsocks utilise SOCKS version 4 - mais vous pouvez configurer 5 via la directive 'server_type'. Pour les options utilisateur / mot de passe, il existe les directives 'default_user' / 'default_pass' et les variables d'environnement TSOCKS_USERNAME / TSOCKS_PASSWORD.
la source
J'utilise CentOS6.x avec yum-3.2.29-81, curl / libcurl 7.19.7-53 et j'ai ce même problème. J'ai des serveurs yum derrière un pare-feu et je veux utiliser yum sur une configuration de proxy SOCKS5 en utilisant ssh. Idéalement, je veux le faire sans avoir besoin de tsocks, de proxychains ou de tout autre utilitaire de "socksification".
J'ai configuré la connexion SOCKS5 en utilisant:
J'ai fouillé dans les sources de python yum et j'ai vu qu'elles utilisaient pycurl qui enveloppe libcurl (veuillez également noter que toutes les variables d'environnement proxy - http_proxy, HTTP_PROXY, all_proxy, ALL_PROXY, etc. - étaient initialement indéfinies). De plus, j'ai vérifié que ~ / .curlrc était vide, donc cela n'a pas entaché mes résultats de test.
Je voulais voir si je pouvais obtenir curl pour parler via le proxy socks5:
a renvoyé avec succès la page Web distante, donc c'était un bon signe - montrant que libcurl peut utiliser les proxys SOCKS5. Cependant, définir une variable d'environnement
n'était pas suffisant:
échoué.
À ce stade, je suis passé à l'utilisation d'un programme de test Python test.py :
Maintenant, en cours d'exécution
ne parviendra pas à récupérer, mais en cours d'exécution
va chercher avec succès http: // some-serveur / some-url . Il me semble donc que cette combinaison (certes ancienne) yum / libcurl livrée avec CentOS6 ne définit pas correctement le type de proxy dans libcurl. Je pense que ce qui se passe, c'est que le PROXYTYPE utilise par défaut un proxy HTTP standard au lieu d'identifier le schéma socks5: // dans l'URL spécifiée dans la variable d'environnement http_proxy .
Dans tous les cas, le correctif suivant vers /usr/lib/python2.6/site-packages/urlgrabber/grabber.py a fonctionné pour me permettre d'accéder aux référentiels http: // yum via un proxy SOCKS5. Dans PyCurlFileObject # _set_opts (self, opts = {}), ajoutez:
autour de la ligne 1205, juste avant
Avec ce changement,
se connecte avec succès à tous mes référentiels http: // yum de l'autre côté du pare-feu via le proxy SOCKS5 ssh.
Bien sûr, on pourrait exporter la variable d'environnement http_proxy dans son shell pour éviter de la spécifier avant chaque appel de yum .
la source
Proxychaines
est également une bonne option pour vous!téléchargez-le d'abord et définissez vos informations de chaussettes dans un
proxychains.conf
fichier et entrezproxyxhanes
avant toute commande que vous souhaitez utiliser le proxy de chaussettes!la source
Ajoutez cette ligne à
/etc/yum.conf
et assurez-vous d'utiliser le protocole attendu (pas http):la source
Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"