Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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.

Features:

  • 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
1  
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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .