Halaman manual untuk yum.conf menjelaskan beberapa variabel terkait proxy:
proxy URL to the proxy server that yum should use. proxy_username username to use for proxy proxy_password password for this proxy
Tetapi bagaimana cara menentukan proxy SOCKS?
Saya berasumsi bahwa di atas hanya untuk proxy HTTP normal ...
dante
sebagai gantinya. Perintahnya adalahsocksify app args
, mirip dengan tsocks. (dan sama seperti tsocks.conf untuk perintah tsocks, Anda juga memerlukan socks.conf untuk perintah socksify). Namun, untuk socksifyyum
, saya merekomendasikan jawaban @ Klaus. Ubah /etc/yum.conf lebih baik.Tambahkan baris ini ke
/etc/yum.conf
(dapatkan ide dari pos oleh DaPillow)proxy=socks5://ip:port
Dalam hal resolusi nama host melalui proxy diperlukan, terima kasih kepada Danny dari komentar ini akan melakukannya:
proxy=socks5h://ip:port
Ini bekerja untuk saya menggunakan yum 3.4.3 di Fedora 21.
sumber
Seperti yang ditunjukkan oleh enzitib,
tsocks
dapat digunakan untuk menggunakan proxy SOCKS denganyum
.Untuk lebih rinci, seseorang dapat menggunakannya seperti ini:
Secara default tsocks menggunakan SOCKS versi 4 - tetapi Anda dapat mengonfigurasi 5 melalui arahan 'server_type'. Untuk opsi pengguna / kata sandi terdapat arahan 'default_user' / 'default_pass' dan variabel lingkungan TSOCKS_USERNAME / TSOCKS_PASSWORD.
sumber
Saya menggunakan CentOS6.x dengan yum-3.2.29-81, curl / libcurl 7.19.7-53 dan memiliki masalah yang sama. Saya memiliki server yum di belakang firewall dan ingin menggunakan yum melalui pengaturan proxy SOCKS5 menggunakan ssh. Idealnya, saya ingin melakukan ini tanpa memerlukan tsocks, proxychains, atau utilitas "socksification" lainnya.
Saya mengatur koneksi SOCKS5 menggunakan:
Saya mencari-cari di sumber python yum dan melihat mereka menggunakan pycurl yang membungkus libcurl (juga harap dicatat bahwa semua variabel lingkungan proxy - http_proxy, HTTP_PROXY, all_proxy, ALL_PROXY, dll. - pada awalnya tidak terdefinisi). Selanjutnya, saya memverifikasi bahwa ~ / .curlrc kosong sehingga tidak mencemari hasil pengujian saya.
Saya ingin melihat apakah saya bisa mendapatkan curl untuk berbicara melalui proxy socks5:
berhasil mengembalikan halaman web jarak jauh, jadi itu pertanda baik - menunjukkan libcurl dapat menggunakan proxy SOCKS5. Namun, mendefinisikan variabel lingkungan
tidak cukup:
gagal.
Pada titik ini, saya beralih menggunakan program uji Python test.py :
Sekarang, berjalan
akan gagal mengambil, tetapi berjalan
akan berhasil mengambil http: // some-server / some-url . Jadi sepertinya bagi saya bahwa kombinasi yum / libcurl (diakui kuno) yang dikirimkan dengan CentOS6 ini tidak dengan benar menyetel tipe proxy dalam libcurl. Saya pikir apa yang terjadi adalah bahwa PROXYTYPE default ke proxy HTTP standar alih-alih mengidentifikasi skema socks5: // dalam URL yang ditentukan dalam variabel lingkungan http_proxy .
Dalam keadaan apa pun, tambalan berikut ke /usr/lib/python2.6/site-packages/urlgrabber/grabber.py berfungsi agar saya dapat mengakses http: // yum repositori melalui proxy SOCKS5. Di dalam PyCurlFileObject # _set_opts (self, opts = {}), tambahkan:
sekitar baris 1205, tepat sebelumnya
Dengan perubahan ini,
berhasil terhubung ke semua repositori http: // yum saya di sisi lain firewall melalui proxy ssh SOCKS5.
Tentu saja, seseorang dapat mengekspor variabel lingkungan http_proxy di dalam shell seseorang untuk menghindari menentukannya sebelum setiap doa yum .
sumber
Proxychaines
juga merupakan pilihan yang bagus untuk Anda!pertama unduh dan atur info kaus kaki Anda dalam
proxychains.conf
file dan masukkanproxyxhanes
sebelum perintah apa pun yang Anda ingin gunakan proxy kaus kaki!sumber
Tambahkan baris ini ke
/etc/yum.conf
dan pastikan untuk menggunakan protokol yang diharapkan (bukan http):sumber
Options Error: Error parsing "proxy = "socks5h://abc.mnl.xyz.com:9999/ # "": URL must be http, ftp or https not "socks5h"