Chromebook SOCKS Proxies and SSH Tunnels
My Chromebook, unfortunately, does not forward DNS requests through the SOCKS proxy I set it to use unless I use a Chrome extension or a Proxy Auto Config file. [1]
Hopefully, if you're in China (like I am) and want to connect to Facebook via a SOCKS proxy you'll find this information faster than I did.
I use the Secure Shell Chrome extension to connect to my SSH server. Make sure to put "-D 8080" in the SSH arguments to create a dynamic tunnel (or SOCKS Proxy) on port 8080.
Download the SwitchySharp Chrome extension
Once installed click on SwitchySharp's blue globe icon.
Click "Options"
Click "New Profile"
In the "Profile Name" textbox type "Dynamic SOCKS Tunnel"
In the "SOCKS Host" textbox type "localhost"
In the "Port" textbox immediately to the right of the "SOCKS Host" textbox type "8080"
Select "SOCKS v5" from the radio buttons
Click on the "Save" button
Optionally, you can specify a SOCKS proxy and SOCKS version using a Proxy Auto Config file, but it's a little bit more complicated. Check out my sample PAC file.
You should now be able to access any website through your SOCKS proxy (SSH Tunnel) as DNS is now forwarded through the proxy (correctly) instead of locally.
Notes:
Chrome doesn't let you set the version of the SOCKS proxy through the user interface. It assumes that the SOCKS proxy you specify is using version 4 of the protocol. That's a problem because only SOCKS versions 4a and 5 support forwarding of DNS requests through proxies.
According to Configuring a SOCKS proxy server in Chrome there are command line flags that you can use to specify a SOCKSv5 proxy but command line flags cannot be set on a Chromebook.
Related Bug Reports:
Issue 29914: DNS queries not forwarded through SOCKS v5 proxies Reported 12/2009
Issue 199603: UI doesn't allow specification of SOCKS version Reported 06/2011







