Yum के साथ SOCKS प्रॉक्सी का उपयोग कैसे करें?


13

Yum.conf का मैन पेज कई प्रॉक्सी संबंधित चर का वर्णन करता है:

          proxy URL to the proxy server that yum should use.
          proxy_username username to use for proxy
          proxy_password password for this proxy

लेकिन SOCKS प्रॉक्सी कैसे निर्दिष्ट करें?

मुझे लगता है कि ऊपर बस सामान्य HTTP परदे के पीछे है ...

जवाबों:


3

tsocksआवेदन हर अन्य अनुप्रयोगों socksify कर सकते हैं

tsocks app args

बहुत बढ़िया, यह पहले से ही डिफॉल्ट फेडोरा रिपॉजिटरी में उपलब्ध है - Google के माध्यम से मैंने केवल 'मोज़ाइक' (डेंटे सॉक्स क्लाइंट) पाया है जो उपलब्ध नहीं है - और स्रोत से संकलित किए जाने पर फेडोरा 17 पर काम नहीं करता है।
मैक्सक्लेपज़िग

इसका उपयोग कैसे करें?
चनी

tsocks पुराना है, नवीनतम अपडेट 2002 का है। यह आजकल यम / कर्ल को सॉकेट नहीं कर सकता है। danteइसके बजाय उपयोग करें । इसकी कमान socksify app argsटस्क के समान है। (और कमांड टस्क के लिए tsocks.conf के समान है, आपको कमांड मोज़ाइक के लिए socks.conf की भी आवश्यकता है)। हालाँकि, मोजे करने के लिए yum, मैं @Klaus के उत्तर की सिफारिश करता हूं। संशोधित करें /etc/yum.conf बेहतर है।
ब्रूस

17

इस पंक्ति को /etc/yum.conf(DaPillow द्वारा पोस्ट से विचार मिला) में जोड़ें

proxy=socks5://ip:port

यदि प्रॉक्सी के माध्यम से होस्ट नाम का रिज़ॉल्यूशन आवश्यक है, तो डैनी को इस टिप्पणी से धन्यवाद।

proxy=socks5h://ip:port

इसने फेडोरा 21 पर यम 3.4.3 का उपयोग करके मेरे लिए काम किया।


यह yum 3.2.29 के साथ RHEL 2.6.32 (64Bit) पर काम नहीं करता है: - | Proxyachains इस तरह के एक उद्देश्य के लिए काफी मानक है!
जतिन कुमार

समीपस्थ काफी उचित लगता है। मैंने इसका उपयोग किया है और मैं इसके बारे में खुश हूं;) लेकिन आपके मामले में, मुझे लगता है कि यम संस्करण समस्या है: 3.2.29 (मेरा 3.4.3 है)
क्लाउस

हाँ सहमत, इसका सिर्फ यम संस्करण और 3.2.29 6.5 फाइनल रिलीज़ के लिए डिफ़ॉल्ट है।
जतिन कुमार

RHEL7 / CentOS7 (यम 3.4.3) पर काम करता है।
सैम हर्ट्सफील्ड

यह स्वीकृत उत्तर होना चाहिए!
डैनी गूसेन

7

जैसा कि enzitib द्वारा बताया गया है, tsocksSOCKS प्रॉक्सी का उपयोग करने के लिए किया जा सकता है yum

अधिक विस्तृत होने के लिए, कोई इसका उपयोग इस तरह कर सकता है:

$ export TSOCKS_CONF_FILE=$HOME/.tsocks.conf
$ cat .tsocks.conf
server = 127.0.0.1
server_port = 1080
$ tsocks yum ...

डिफ़ॉल्ट टस्क द्वारा SOCKS संस्करण 4 का उपयोग किया जाता है - लेकिन आप 'server_type' निर्देश के माध्यम से 5 को कॉन्फ़िगर कर सकते हैं। उपयोगकर्ता / पासवर्ड विकल्प के लिए 'default_user' / 'default_pass' निर्देश और TSOCKS_USERNAME / TSOCKS_PASSWORD पर्यावरण चर हैं।


5

मैं yum-3.2.29-81, curl / libcurl 7.19.7-53 के साथ CentOS6.x का उपयोग कर रहा हूं और यही मुद्दा है। मैं एक फ़ायरवॉल के पीछे yum सर्वर है और ssh का उपयोग कर एक SOCKS5 प्रॉक्सी सेटअप पर yum का उपयोग करना चाहता हूं। आदर्श रूप से, मैं इसे बिना टॉक्स, प्रॉक्साइहांस या किसी अन्य "मोज़ा" उपयोगिताओं की आवश्यकता के बिना करना चाहता हूं।

मैंने SOCKS5 कनेक्शन का उपयोग करके सेटअप किया:

ssh -D 40000 dmz-server

मैंने yum python स्रोतों में घूमकर देखा और उन्होंने pycurl का उपयोग किया, जो libcurl को लपेटता है (कृपया यह भी ध्यान दें कि सभी प्रॉक्सी वातावरण चर - http_proxy, HTTP_PROXY, all_proxy, ALL -PROXY, आदि ।-- शुरू में अपरिभाषित थे)। इसके अलावा, मैंने सत्यापित किया कि ~ / .cllrc खाली था, इसलिए इसने मेरे परीक्षा परिणाम को प्रभावित नहीं किया।

मैं देखना चाहता था कि क्या मुझे मोज़े के माध्यम से बात करने के लिए कर्ल मिल सकता है। 5 प्रॉक्सी:

curl --socks5 127.0.0.1:40000 http://some-server/some-url

सफलतापूर्वक दूरस्थ वेब पेज लौटाया, इसलिए यह एक अच्छा संकेत था - लिबस्कुरल दिखाना SOCKS5 प्रॉक्सी का उपयोग कर सकता है । हालांकि, एक पर्यावरण चर को परिभाषित करना

http_proxy=socks5://127.0.0.1:40000 

पर्याप्त नहीं था:

http_proxy=socks5://127.0.0.1:40000 curl http://some-server/some-url

अनुत्तीर्ण होना।

इस बिंदु पर, मैंने पायथन टेस्ट प्रोग्राम टेस्टोस्टेरोन का उपयोग करने के लिए स्विच किया :

import pycurl
import sys
sys.stderr.write("Testing %s\n" % pycurl.version)
c = pycurl.Curl()
c.setopt(c.URL, 'http://some-server/some-url')
c.setopt(c.WRITEFUNCTION, sys.stdout.write)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
c.perform()
c.close()

अब चल रहा है

./test.py

लाने में विफल रहेगा, लेकिन चल रहा है

http_proxy=socks5://127.0.0.1:40000 ./test.py

होगा सफलतापूर्वक लाने http: // कुछ-सर्वर / कुछ-यूआरएल । तो मुझे ऐसा लगता है कि यह (वास्तव में प्राचीन) yum / libcurl संयोजन है कि CentOS6 वाले जहाज ठीक से libcurl के भीतर प्रॉक्सी प्रकार सेट नहीं कर रहे हैं। मुझे लगता है कि यह क्या हो रहा है कि PROXYTYPE मोजे_5: // योजना के बजाय HTTP_proxy वातावरण चर में निर्दिष्ट URL के भीतर एक मानक HTTP प्रॉक्सी को डिफ़ॉल्ट कर रहा है ।

किसी भी स्थिति में, /usr/lib/python2.6/site-packages/urlgrabber/grabber.py को निम्न पैच ने मुझे SOCKSS प्रॉक्सी के माध्यम से http: // yum रिपॉजिटरी तक पहुंचने की अनुमति देने के लिए काम किया। PyCurlFileObject के भीतर # _set_opts (स्वयं, opts = {}) जोड़ें,:

if self.scheme == 'http':
  proxy = os.getenv('http_proxy') or os.getenv('HTTP_PROXY') or os.getenv('all_proxy') or os.getenv('ALL_PROXY')
  if proxy and proxy.find("socks5://") != -1:
    self.curl_obj.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)

1205 के आसपास, ठीक पहले

# ssl options
if self.scheme == 'https':

इस परिवर्तन के साथ,

http_proxy=socks5://127.0.0.1:40000 yum install <package_name>

सफलतापूर्वक मेरे सभी http: // yum रिपॉजिटरी को फ़ायरवॉल के दूसरी तरफ SOCKS5 ssh प्रॉक्सी के माध्यम से जोड़ता है।

बेशक, कोई भी यम के प्रत्येक आह्वान से पहले इसे निर्दिष्ट करने से बचने के लिए एक शेल के भीतर http_proxy पर्यावरण चर निर्यात कर सकता है ।


1

Proxychaines आपके लिए भी एक अच्छा विकल्प है!

पहले इसे डाउनलोड करें proxychains.confऔर फ़ाइल में अपने मोज़े की जानकारी सेट करें और proxyxhanesकिसी भी कमांड से पहले दर्ज करें जिसे आप मोजे का उपयोग करना चाहते हैं!


1

इस लाइन को जोड़ें /etc/yum.confऔर अपेक्षित प्रोटोकॉल (http नहीं) का उपयोग करना सुनिश्चित करें:

...    
proxy=socks5h://localhost:1080
...

5
यह काम नहीं करता है:Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"
Chani
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.