Creating a SOCKS proxy using SSH to get YouTube working

Something odd is going on with YouTube not working with Afrihost‘s ADSL service. It appears to have something to do with the local YouTube caching servers. Clips will often only playback at 144p or 240p and never at 480p or higher, considering that YouTube has become my main source entertainment this is a problem.

This is a quick and simple workaround that sets up a SOCKS proxy on a Linux machine hosted outside of South Africa. I’m using a Digital Ocean (Referral link that gets you $10 credit if you sign up) Linux VM running in the US.

On the VM you just need SSH running, nothing else and on your PC you need to be able to make an ssh connection from the command line.

On Windows I used the GIT Bash Shell as I had it installed and it includes ssh (You could probably do this with Putty or something similar.) and on Linux I just run the command below from a prompt.

ssh -D 8080 -CqN youruser@vm

All this will do is accept connections on your local machine on port 8080 and forward them through to the VM.

connectionSettingsNow open your browser (I like using Firefox for this as the proxy settings are separate from the system ones in Windows) and set your socks host to 127.0.0.1 and the port to 8080.

I find this works best with YouTube when using the Google DNS servers (8.8.8.8 and 8.8.4.4) on your local machine.

This solution seems to work reasonably well and allows me to watch the videos that don’t want to work, obviously it does add additional overhead to the connection so its not ideal.