OpenSSH has built-in support to act as a SOCKS proxy. In my case, there are web sites I can access only from work computers and I need to get to them from home. So, I issue the command from my home computer:
ssh -D 1080 my work IP
However, I do not want to redirect all traffic through work. Fortunately, you can redirect only selected URLs fairly easily by using a proxy auto-config file.
In firefox, Go to Edit -> Preferences -> Advanced -> Network -> Settings
In the Connection Settings box, select “Automatic proxy configuration URL:” and enter:
file:///path/to/proxylist.pac
The proxylist.pac file may look like this:
function FindProxyForURL(url, host) { // Proxy direct connections to these hosts if ( shExpMatch(url, "http://www.jbc.com/*") || shExpMatch(url, "*.sgmjournals.org/*") || shExpMatch(url, "http://www.ncbi.nih.gov/*") ) { return "SOCKS localhost:1080; DIRECT"; } // Otherwise go directly else return "DIRECT"; }
For more details on the pac file and auto config, see
http://en.wikipedia.org/wiki/Proxy_auto-config