Netflix recently announced that it will enforce the geographical blocking of their content delivery. They seem to have put these restrictions into action by blocking certain VPN providers from the beginning of February 2016. Luckily there is a very simple method to go around this. What we are going to do here is set up a Virtual Private Server (VPS) in the United States and route our traffic through that. This is a fairly simple process, but involves a bit of command line tinkering. This method applies on Windows, Linux and Apple OSX just the same, but I only have Linux terminals handy so we’ll mostly focus on that. These instructions can easily be adapted to other operating systems as well. What you need is a VPS server, and SSH terminal (PuTTY on Windows, Linux and OSX have ssh) and thats it.
1. Setup your VPS
Go to DigitalOcean.com and create a VPS in your target region, which in our case is USA but it can be anything else. You can use any VPS provider you want, but Digital Ocean is a good place to start as you get 10$ of credit as a new user, which equals 2 months of free hosting. Choose the cheapest 5$ option and Ubuntu as the operating system (others can be used too). The setup process takes 50 seconds to complete.
Find the server password in your email inbox and login for the first time. Open the terminal and login with SSH (Windows users use PuTTY)
On first boot Digital Ocean forces you to setup a new password. After you have logged in everything is ready on the server side! You can logout/close the connection.
Tunnel the traffic by using a SOCKS proxy
The SSH can be used to tunnel the traffic via the VPS server, which effectively masks your own location and IP. Open the terminal and type the following:
ssh -D 1234 -f -C -q -N root@YOUR_VPS_IP_ADDRESS
The ssh will then ask for your newly created password.
-D: Tells SSH that we want a SOCKS tunnel on the specified port number 1234 (you can choose any number between 1025-65536)
-f: Forks the process to the background
-C: Compresses the data before sending it
-q: Uses quiet mode
-N: Tells SSH that no command will be sent once the tunnel is up
Windows users need to use PuTTY and setup the tunnel in the Connection > SSH > Tunnels menu.
Configure your system to use the SOCKS proxy
Our example system is a Gnome desktop, where a proxy is easily defined in the network settings.
The settings are trivial, as you only need to configure a SOCKS proxy as localhost and with the port you have defined. In Windows operating systems you define this under the the usual Internet/network settings.
You can now try your proxy for example with SpeedTest.net The biggest benefit of using a VPS for this purpose is performance, at least when compared to free VPN services.
As you can see, I am now browsing with a DigitalOcean’s IP addres, even though physically I am on the other side of the world. The speed test result is very good 41/14Mbps, which is quite close to what I get from my ISP. The important thing is that this is more than enough for high quality HD video streaming.
The downside of this approach is that VPS servers cost some money, even though not much. On DigitalOcean the cheapest option is currently 5$ month, although you get that free 10$ credit as a new customer. The DigitalOcean and most VPS providers use hourly billing, so you can spin up a new server for your big TV night at home and then delete it to minimize the cost.
Now enjoy what the west has to offer!
While Netflix is enforcing the geo-blocking beginning from the 1st of February, it is quite certain that different VPN providers will be working on solutions around it. At the time of writing this, at least the dotVPN is still unblocked by Netflix and their service seems legit. The bandwidth of their free offering is very limited however, and you get nowhere near HD quality video by using them.
Do your homework before enabling a VPN service on your devices, especially if it is being offered for free. The VPN providers have full access to all of your traffic and it is not cheap to host high bandwidth VPN gateway servers.