My Internet access is through a proxy, my OS is Debian 8, each application must configure it to use the proxy, but there are some that are a headache to make it work with a proxy, then my question is: is there any way or a program to send all my connections(tcp, udp, etc.) to the proxy? that is to say, how do I set systemwide connection over a proxy server?


There are various solutions for this:

1. Configuring http_proxy variables

You can set $http_proxy and other such variables. Most applications will pick this variable automatically. To set it system-wide, you can set this variable in either your ~/.bashrc file or /etc/profile. Set it as:

export http_proxy
export https_proxy

2. Using proxy_chains

Some applications would not use your proxy variable and they might not even have settings to use a proxy server. In such a case, you can direct all your PC traffic through a proxy server by using proxy_chains.

I've never used proxy_chains, however their homepage seems to tell it all in one single page: http://proxychains.sourceforge.net/howto.html

3. Using transparent proxy

To force all your PC connection through a proxy, you can also use transparent proxy as an alternative to proxy_chains. I don't have much idea how to set this up (I did this a long time back though and it worked!) so you'll have to look on your own.

  • 1
    proxychains works flawlessly on FreeBSD, it is awesome. – user3405291 Oct 16 '17 at 22:29
  • 1
    Is there a way to do this without plaintexting the password? – samthebest Jun 27 '18 at 9:06

You can set proxy in settings preference and it will reflect everywhere

enter image description here

  • 1
    What is the impact of this concretely? What variables / settings are edited? I would like to write a script that does this instead of doing it with the UI. – Guillermo Apr 4 '20 at 23:37
  • @Guillermo According to the available input boxes, I would suppose it is modifying *_proxy environmental variables every other answer (for now) has referred to. – InQβ Jun 18 '20 at 5:34

As shivams said there are various solutions for this.Just by exporting http_proxy you can't setup the connection. The way I will do setup the proxy will be as below,

  1. First I will setup the authentication by running the cntlm.

    a. To do that edit the /etc/cntlm.conf file by adding your username, password(you can also use hash generated for your password), domain, workstation and the proxy etc...

    b. And I will listen to the port 3128.

  2. I will setup the proxy for different applications or programs like for wget I will setup inside /etc/wgetrc, if it is curl then in curlrc etc...

  3. I will export the http(s)_proxy with http://localhost:3128.You can set this environment variable for a particular session or you can set it putting it inside /etc/profile.d/
  4. Done

To setup the proxy environment variable as a global variable, open /etc/profile file:

# vi /etc/profile

Add the following information:

export http_proxy=http://proxy-server.mycorp.com:3128/


export http_proxy=http://USERNAME:PASSOWRD@proxy-server.mycorp.com:3128/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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