Strona podręcznika do yum.conf opisuje kilka zmiennych związanych z proxy:
proxy URL to the proxy server that yum should use. proxy_username username to use for proxy proxy_password password for this proxy
Ale jak określić serwer proxy SOCKS?
Zakładam, że powyższe dotyczy zwykłych serwerów proxy HTTP ...
dante
zamiast tego. Jego polecenie jestsocksify app args
podobne do tsocks. (i tak samo jak tsocks.conf dla polecenia tsocks, potrzebujesz także socks.conf dla polecenia socksify). Jednak, aby socksifyyum
, polecam odpowiedź @Klaus. Modyfikacja /etc/yum.conf jest lepsza.Dodaj tę linię do
/etc/yum.conf
(pomysł z posta DaPillow)proxy=socks5://ip:port
W przypadku, gdy konieczne jest rozpoznanie nazwy hosta przez proxy, dzięki Danny'owi z komentarzy zrobi to:
proxy=socks5h://ip:port
Działa dla mnie przy użyciu yum 3.4.3 na Fedorze 21.
źródło
Jak zauważył enzitib,
tsocks
można go używać do używania proxy SOCKS zyum
.Aby być bardziej szczegółowym, można go użyć w następujący sposób:
Domyślnie tsocks używa SOCKS w wersji 4 - ale możesz skonfigurować 5 za pomocą dyrektywy „server_type”. W przypadku opcji użytkownika / hasła dostępne są dyrektywy „użytkownik_użyteczny” / „przepustka_użytkownika” oraz zmienne środowiskowe TSOCKS_USERNAME / TSOCKS_PASSWORD.
źródło
Używam CentOS6.x z yum-3.2.29-81, curl / libcurl 7.19.7-53 i mam ten sam problem. Mam serwery yum za firewallem i chcę używać yum w konfiguracji proxy SOCKS5 za pomocą ssh. Idealnie chciałbym to zrobić bez konieczności używania tsocks, proxy lub innych narzędzi do „skarpetyzacji”.
Konfiguruję połączenie SOCKS5 za pomocą:
Przeszukałem źródła yum Pythona i zobaczyłem, że używają pycurl, który otacza libcurl (należy również pamiętać, że wszystkie zmienne środowiskowe proxy - http_proxy, HTTP_PROXY, all_proxy, ALL_PROXY itp. - były początkowo niezdefiniowane). Ponadto zweryfikowałem, że ~ / .curlrc jest pusty, więc nie zepsuł moich wyników testu.
Chciałem sprawdzić, czy mogę skręcić, aby porozmawiać przez proxy Socks5:
pomyślnie zwrócił zdalną stronę internetową, więc był to dobry znak - pokazując, że libcurl może używać proxy SOCKS5. Jednak zdefiniowanie zmiennej środowiskowej
nie wystarczyło:
nie powiodło się
W tym momencie przełączyłem się na test.py w programie testowym Python :
Teraz biegnę
nie uda się pobrać, ale działa
pomyślnie pobierze http: // some-server / some-url . Wydaje mi się więc, że ta (co prawda starożytna) kombinacja yum / libcurl, która jest dostarczana z CentOS6, nie ustawia poprawnie typu proxy w libcurl. Myślę, że dzieje się tak, że PROXYTYPE domyślnie korzysta ze standardowego proxy HTTP zamiast identyfikować schemat socks5: // w adresie URL określonym w zmiennej środowiskowej http_proxy .
W każdym razie następująca łatka do /usr/lib/python2.6/site-packages/urlgrabber/grabber.py działała, aby umożliwić mi dostęp do repozytoriów http: // yum przez proxy SOCKS5. W PyCurlFileObject # _set_opts (self, opts = {}) dodaj:
wokół linii 1205, tuż przed
Dzięki tej zmianie
pomyślnie łączy się ze wszystkimi moimi repozytoriami http: // yum po drugiej stronie zapory poprzez proxy SOCKS5 ssh.
Oczywiście można wyeksportować zmienną środowiskową http_proxy do powłoki, aby uniknąć jej podawania przed każdym wywołaniem yum .
źródło
Proxychaines
to także dobra opcja dla Ciebie!najpierw pobierz go i ustaw informacje o skarpetach w
proxychains.conf
pliku i wprowadźproxyxhanes
przed każdym poleceniem, które chcesz użyć proxy skarpet!źródło
Dodaj ten wiersz
/etc/yum.conf
i upewnij się, że używasz oczekiwanego protokołu (nie http):źródło
Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"