Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I do this in Linux? It'd be nice if there was a way to transparently force connections through proxies rather than configure them individually for each program.

share|improve this question

You want proxychains. From the Ubuntu package manager description:

Proxy chains force any tcp connection made by any given tcp client to follow through proxy (or proxy chain). It is a kind of proxifier. It acts like sockscap / premeo / eborder driver ( intercepts TCP calls )

This version supports SOCKS4, SOCKS5 and HTTP CONNECT proxy servers. Different proxy types can be mixed in the same chain.


  • Access Internet from behind restrictive firewall.
  • Source IP masquerade.
  • SSH tunneling and forwarding.
  • Dynamic LAN-to-LAN VPN channel.
  • Servers and daemons friendly (works fine with sendmail MTA).
share|improve this answer
note that simply setting the http_proxy environment variable will tell many http-using programs that you want them to use this proxy. It just won't force them if they don't refer to the variable or have their own settings. It's a simple setting which works for many cases. – ScoBe Oct 21 '09 at 9:37
Hey, looks exactly like what I need. Thanks a lot! – LIn Oct 21 '09 at 10:18
@ScoBe sadly, many is nowhere near enough. Using the Heroku toolbelt, for example, and wget seems to choke on my proxy settings (because I have username/password, and it thinks the username is a hostname). But thank you for this answer, it's exactly what I needed. – Liam Dawson Jun 14 '12 at 21:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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