The man page to yum.conf describes several proxy related variables:

But how to specify a SOCKS proxy?

I assume that the above is just for normal HTTP proxies ...

maxschlepzigmaxschlepzig

6 Answers

The tsocks application can socksify every other applications

enzotibenzotib

Add this line to /etc/yum.conf (got the idea from the post by DaPillow)

proxy=socks5://ip:port

In case host name resolution through proxy is necessary, thanks to Danny from comments this would do it:

proxy=socks5h://ip:port

It worked for me using yum 3.4.3 on Fedora 21.

KlausKlaus

As pointed out by enzitib,tsocks can be used to use a SOCKS proxy with yum.

To be more detailed, one can use it like this:

By default tsocks uses SOCKS version 4 - but you can configure 5 via the 'server_type' directive. For user/password options there are the 'default_user'/'default_pass' directives and the TSOCKS_USERNAME/TSOCKS_PASSWORD environment variables.

maxschlepzigmaxschlepzig

I'm using CentOS6.x with yum-3.2.29-81, curl/libcurl 7.19.7-53 and have this same issue. I have yum servers behind a firewall and want to use yum over a SOCKS5 proxy setup using ssh. Ideally, I want to do this without requiring tsocks, proxychains, or any other 'socksification' utilities.

I setup the SOCKS5 connection using:

I poked around in the yum python sources and saw they use pycurl which wraps libcurl (also please note that all proxy environment variables--http_proxy, HTTP_PROXY, all_proxy, ALL_PROXY, etc.--were initially undefined). Furthermore, I verified that ~/.curlrc was empty so it didn't taint my test results.

I wanted to see if I could get curl to talk through the socks5 proxy:

successfully returned the remote web page, so that was a good sign--showing libcurl can use SOCKS5 proxies. However, defining an environment variable

wasn't enough:

failed.

At this point, I switched to using a Python test program test.py:

Now, running

will fail to fetch, but running

will successfully fetch http://some-server/some-url. So it seems to me that this (admittedly ancient) yum/libcurl combination that ships with CentOS6 is not correctly setting the proxy type within libcurl. I think what is happening is that the PROXYTYPE is defaulting to a standard HTTP proxy instead of identifying the socks5:// scheme within the URL specified in the http_proxy environment variable.

In any event, the following patch to /usr/lib/python2.6/site-packages/urlgrabber/grabber.py worked to allow me to access http:// yum repositories through a SOCKS5 proxy. Within PyCurlFileObject#_set_opts(self, opts={}), add:

around line 1205, right before

With this change,

successfully connects to all my http:// yum repositories on the other side of the firewall through the SOCKS5 ssh proxy.

Of course, one could export the http_proxy environment variable within one's shell to avoid specifying it before each invocation of yum.

Lemon CatLemon Cat

Proxychaines also is a good option for you!

first download it and set your socks info in proxychains.conf file and enter proxyxhanes before any command that you want use socks proxy!

Milad SobhkhizMilad Sobhkhiz

Add this line to /etc/yum.conf and make sure to use the expected protocol (not http):

user85677

Not the answer you're looking for? Browse other questions tagged yum or ask your own question.

Coments are closed
Scroll to top