Yum ile SOCKS proxy nasıl kullanılır?


13

Yum.conf için man sayfasında proxy ile ilgili çeşitli değişkenler açıklanmaktadır:

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

Ancak bir SOCKS proxy'si nasıl belirtilir?

Yukarıdakilerin sadece normal HTTP proxy'leri için olduğunu varsayalım ...

Yanıtlar:


3

tsocksUygulama her diğer uygulamaları socksify edebilirsiniz

tsocks app args

Harika, zaten varsayılan Fedora depolarında mevcut - Google aracılığıyla, henüz mevcut olmayan 'socksify' (dante çorap istemcisi) buldum - ve kaynağından derlendiğinde Fedora 17'de çalışmaz.
maxschlepzig

Tam olarak nasıl kullanılır?
Chani

tsocks güncel değil, en son güncelleme 2002'ye geri döndü. danteBunun yerine kullanın . Komutu, socksify app argstsocks'a benzer. (ve komut tsocks için tsocks.conf ile aynı, socksify komutu için socks.conf'a da ihtiyacınız vardır). Ancak çoraplaşmak için @ yumKlaus'un cevabını tavsiye ediyorum. /Etc/yum.conf dosyasını değiştirmek daha iyidir.
Bruce

17

Bu satırı /etc/yum.confşuraya ekle (DaPillow'un gönderdiği fikri aldı)

proxy=socks5://ip:port

Ana bilgisayar adının proxy üzerinden çözümlenmesi gerekirse, yorumlardan Danny sayesinde bunu yaparsınız:

proxy=socks5h://ip:port

Fedora 21'de yum 3.4.3 kullanarak benim için çalıştı.


Yum 3.2.29 ile RHEL 2.6.32 (64Bit) üzerinde çalışmaz: - | ProxyChains böyle bir amaç için oldukça standarttır!
Jatin Kumar

proxychains yeterince adil görünüyor. Ben kullandım ve bu konuda mutluyum;) Ama senin durumunda, yum sürümü sorun olduğunu düşünüyorum: 3.2.29 (benimki 3.4.3)
Klaus

Evet kabul etti, sadece yum sürümü ve 3.2.29 6.5 Final Sürümü için varsayılan.
Jatin Kumar

RHEL7 / CentOS7 (yum 3.4.3) üzerinde çalışır.
Sam Hartsfield

Bu kabul edilen cevap olmalı!
Danny Goossen

7

Enzimin belirttiği gibi, tsocksbir SOCKS proxy'si ile birlikte kullanılabilir yum.

Daha ayrıntılı olmak için, bunu şu şekilde kullanabilirsiniz:

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

Varsayılan olarak tsocks SOCKS sürüm 4'ü kullanır - ancak 5'i 'server_type' yönergesi ile yapılandırabilirsiniz. Kullanıcı / şifre seçenekleri için 'default_user' / 'default_pass' yönergeleri ve TSOCKS_USERNAME / TSOCKS_PASSWORD ortam değişkenleri vardır.


5

Yum-3.2.29-81, curl / libcurl 7.19.7-53 ile CentOS6.x kullanıyorum ve aynı sorunu var. Bir güvenlik duvarı arkasında yum sunucuları var ve ssh kullanarak bir SOCKS5 proxy kurulumu üzerinde yum kullanmak istiyorum. İdeal olarak, bunu tsocks, proxychain veya başka bir "çoraplaştırma" yardımcı programına ihtiyaç duymadan yapmak istiyorum.

SOCKS5 bağlantısını aşağıdakileri kullanarak kurdum:

ssh -D 40000 dmz-server

Yum python kaynaklarına baktım ve libcurl'u saran pycurl kullandıklarını gördüm (ayrıca tüm proxy ortam değişkenlerinin - http_proxy, HTTP_PROXY, all_proxy, ALL_PROXY, vb. - başlangıçta tanımsız olduğunu lütfen unutmayın). Ayrıca, ~ / .curlrc'nin boş olduğunu doğruladım, bu yüzden test sonuçlarımı lekelemedi.

Çorap5 proxy üzerinden konuşmak için kıvırmak alabilir miyim görmek istedim:

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

libcurl gösteren - başarıyla iyi bir işaret oldu uzak web sayfası, döndürülen olabilir SOCKS5 yakınlık kullanın. Ancak, bir ortam değişkeninin tanımlanması

http_proxy=socks5://127.0.0.1:40000 

yeterli değildi:

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

başarısız oldu.

Bu noktada, bir Python test programı test.py kullanmaya geçtim :

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()

Şimdi koşuyor

./test.py

getirilemiyor, ancak çalışıyor

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

http: // some-server / some-url dosyasını başarıyla getirecek . Bana öyle geliyor ki CentOS6 ile birlikte gelen bu (kuşkusuz eski) yum / libcurl kombinasyonu, libcurl içinde proxy türünü doğru şekilde ayarlamıyor. Ben oluyor ne olduğunu PROXYTYPE varsayılan http_proxy ortam değişkeninde belirtilen URL içinde socks5: // düzeni tanımlamak yerine standart bir HTTP proxy için olmasıdır .

Her halükarda, /usr/lib/python2.6/site-packages/urlgrabber/grabber.py için aşağıdaki yama, bir SOCKS5 proxy'si aracılığıyla http: // yum depolarına erişmeme izin vermek için çalıştı. PyCurlFileObject # _set_opts (self, opts = {}) içinde şunu ekleyin:

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 civarında, hemen önce

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

Bu değişiklikle,

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

SOCKS5 ssh proxy'si aracılığıyla güvenlik duvarının diğer tarafındaki tüm http: // yum depolarıma başarıyla bağlanır.

Tabii ki, her yum çağrılmasından önce belirtmekten kaçınmak için http_proxy ortam değişkenini kabuğunun içine aktarabilirsiniz .


1

Proxychaines ayrıca sizin için iyi bir seçenek!

önce indirin ve çorap bilgilerinizi proxychains.confdosyaya ayarlayın ve proxyxhanesçorap proxy kullanmak istediğiniz herhangi bir komuttan önce girin !


1

Bu satırı ekleyin /etc/yum.confve beklenen protokolü kullandığınızdan emin olun (http değil):

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

5
Bu işe yaramaz:Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"
Chani
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.