Circumventing Netflix’s georestrictions is legal, however, by employing this you would be breaking the Netflix Terms of Use
You also agree not to: circumvent, remove, alter, deactivate, degrade or thwart any of the content protections in the Netflix service
They would probably ban your account if they really cared, but thus far, no action has been taken against users using VPNs to watch Netflix. With this in mind:
DISCLAIMER: This has been written for educational purposes of learning about routing net traffic. I am not responsible for how you use this information. The title is clickbait only.
Now, to the plan.
If you’re familiar with AWS (Amazon Web Services), you only need to do take the following steps to get this up and running, hence it is super easy and convienient.
cd into netflix-and-socks reposecrets/terraform.tfvars.template as secrets/terraform.tfvars with an AWS User AK/PK pairterraform init./terraform.sh apply and type yes to confirm./launch.sh to avoid geofencing./terraform.sh destroy to tear down all AWS resources provisioned during the apply phaseIf you’re not so familiar with AWS, read on. I’ll take you through step-by-step.
At the start of last year, I learnt how to launch a browser from another country, using AWS as a proxy service. At the start of this year, I also learnt of a great program called terraform (learn about it here, the docs are great!). Terraform makes it easy for anyone to create their own proxy server.
This should work easily for Mac and linux users. Due to terraform, the process will be very similar for Windows users, but I have only provided helper .sh scripts. It won’t be hard to convert them to *.bat files.
The steps we will take are
terraform filesterraform know our credentialsterraformgoogle-chrome via the proxy serverterraform filesDownload the code (including the necessary config) here. If you’ve used git before, you know what to do. Else, click the Download ZIP button and get the code like a normal folder. This is known as a code repository or repository.

For now, we won’t need any of the files. Just remember there is a file at folder/secrets/terraform.tfvars.template, which we will soon be filling in with some credentials you’ll make. Currently, it’s a template and looks like this:
akhil@pc:~/personal/netflix-and-socks cat secrets/terraform.tfvars.template
access_key = "XXXXXXXXXXXXXXXXXXXX"
secret_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
public_key = "ssh-rsa AAAAB3N...THISISAREALLYLONGSTRING...DPMDMPDOPWJEF"
region = "us-east-1"
Sign up to AWS here. If your first year of usage has already expired and you want to continue using free tier machines, create a new email address to sign up with first.
You will have to provide your payment card details. You will not be charged for the first year, using AWS only for the infrastructure in the provided *.tf file. Nonetheless you do this at your own risk and I am not responsible if you do get charged for something. Furthermore, if you do get charged, please let me know, as it might mean I’m getting charged, and that’s not ideal.
Navigate to the User Creation Page here. Note, that is not the page name. In case the page moves, it is found under IAM > User.
Create a Terraform User with programmatic access to enable access tokens.
Add User button.TerraformProgrammatic accessYou should have a result like the image below before moving to the next screen.

NextNext we give our Terraform user permission to manipulate servers on our AWS account, i.e., programs that can authorise as Terraform may create, destory, etc. provisioned virtual machines.
Attach existing policies directlyEC2Full in the search barAmazonEC2FullAccess
NextReview your selection to make sure programmatic access with full EC2 permission has been selected. Proceed to the next screen, where we will be presented with our newly created access tokens. You will be warned many times about these things
Now the warnings are out of the way;
Show under Secret access keyWe’re done with the hard part!
terraform know our credentialsDo you remember that secrets/terraform.tfvars.template file from before? Make a copy of the file called terraform.tfvars, also in the secrets folder. Replace the XXXXs with your AK and SK. You should know which goes where, just by the length of the keys.
We also need to add a Public Key to this file. I’m not going to go through in detail what this is, or how to create this keypair, but it a keypair is a way to prove your identify and authenticate with a server or program without using a password. Follow this short guide from GitHub to effortlessly set this up. Add the public key you made to terraform.tfvars.
This is where you would change the server location. Say, if you needed to browse the web from mainland europe, you would set the region to eu-central-1. You can find the complete list of regions here.
Note, the name and location of the file is important.
terraformWe’ve premptively let terraform know what our AWS credentials are, before even installing terraform. How? Because when we run terraform with a specific configuration, defined by a *.tf file, terraform will know to look for credentials in a file called exactly terraform.tfvars.
I use Ubuntu and so extracted it to /opt/terraform/ because of reasons. This is slightly confusing. To confirm, the binary lives at /opt/terraform/terraform.
terraform to the PATH variable so it can be launched via the command lineMac and Linux users can do this by running the following command in a terminal
sudo ln -s /opt/terraform/terraform /usr/bin/terraform
Check your terraform install by typing terraform --version into the terminal from anywhere.
akhil@pc:~$ terraform --version
Terraform v0.11.2
Success!
You’ll have to use the terminal now. Don’t worry though, there are only very simple commands to type in.
terraform initI’ve added a helper script called ./terraform.sh that will pass our secret credentials file to terraform. I hope by now you’ve filled it out it an access_key, a secret_key, and a public_key.
./terraform.sh plan to see what terraform plans to do on AWS
secrets/terraform.tfvars.template, you will be prompted for the keys here.The terraform plan will be output to the terminal. Importantly, you’ll see terraform wants to add 4 AWS resources.
Plan: 4 to add, 0 to change, 0 to destroy.
./terraform.sh apply to automatically make the infrastructureyes to confirm you want to proceed./launch.sh to surf the web from the server’s geographic locationThe terminal should be held by the “tunnel”, which enables web traffic forwarding from the US server. And you’re done! Hopefully if you read back the TL;DR at the start, you can appreciate how simple a process this is, with the credentials already set up.
Thanks for reading,
Akhil
./terraform.sh destory750 hours per month usage of a free tier machine in the first year. 31 * 24 = 744 so you may think you’re in the clear. However, an hour is clocked whenever you turn on a machine, thus if you turn a machine off and on 4 times in 10 minutes, you will use up 4 hours usage. Be weary of this.google-chrome, you have to close all chrome windows before launching the proxy browser.