Microsoft Windows Azure Ubuntu Proxy Server for Netflix or other location dependent purposes
A few month ago I started using Netflix but I was a little disappointed that I could not view all content in Europe. Many series and movies are only available in the US. There are many solutions for this problem. One of them is using PlayMo TV.
I tried it for a week and it works fine but you have to pay for it. Because I have a MSDN-subscription I was wondering wethere I could just setup a virtual machine in West or East US and then watch TV via RDP. Unfortunately that doesn't work. You can login into Netflix, but viewing is prohibited: you are not allowed to watch content from a remote desktop. Bummer. But what about a proxy server, that should work, shouldn't it? Microsoft provides a rich set of virtual machine configurations. One of them Ubuntu, a linux distro. In a few clicks your VM is up and running.
Create virtual machine step 1
Create virtual machine step 1
Step 2: Select the right image from the gallery
Step 2: Select the right image from the gallery
Step 3: enter the name of the machine, name of the user and password of the user or upload ssh key for authentication.
Step 3: enter the name of the machine, name of the user and password of the user or upload ssh key for authentication.
Step 4: select a region for the virtual machine
Step 4: select a region for the virtual machine
Step 5: optionally create end points
Step 5: optionally create end points
Step 6: wait a few minutes...
Step 6: wait a few minutes...
Step 7: write down the public ip address of your new machine, you'll need it later...
Step 7: write down the public ip address of your new machine, you'll need it later...
Step 8: write down the public ip address of your new machine, you'll need it later...
Step 8: write down the public ip address of your new machine, you'll need it later...
Step 9: use putty or another telnet client to connect to your VM
Step 9: use putty or another telnet client to connect to your VM
Step 10: accept/trust the fingerprint of the remote machine.
Step 10: accept/trust the fingerprint of the remote machine.
Step 11: login with your credentials. In my case "fsaysusproxyuser" / ************
Step 11: login with your credentials. In my case "fsaysusproxyuser" / ************
Step 12: Install squid with the command "sudo apt-get install squid"
Step 12: Install squid with the command "sudo apt-get install squid"
Step 13: backup the squid config file with the command "sudo cp /etc/squid3/squid.conf  /etc/squid3/squid.conf.org"
Step 13: backup the squid config file with the command "sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.org"
Step 14: edit the squid config "sudo vim /etc/squid3/squid.conf"
Step 14: edit the squid config "sudo vim /etc/squid3/squid.conf"

If you're new to Vi / Vim. Rule number one Escape is your friend, use it to end actions.

Editing text:
a Append text after the cursor [count] times.
A Append text at the end of the line [count] times.
i Insert text before the cursor [count] times.
I Insert text before the first non-blank in the line [count] times.
gI Insert text in column 1 [count] times.
o Begin a new line below the cursor and insert text, repeat [count] times.
O Begin a new line above the cursor and insert text, repeat [count] times.

Searching:
/{pattern}[/] Search forward for the [count]'th occurrence of {pattern}
/{pattern}/{offset} Search forward for the [count]'th occurrence of {pattern} and go {offset} lines up or down.
/ Search forward for the [count]'th latest used pattern
//{offset} Search forward for the [count]'th latest used pattern with new. If {offset} is empty no offset is used.
?{pattern}[?] Search backward for the [count]'th previous occurrence of {pattern}
?{pattern}?{offset} Search backward for the [count]'th previous occurrence of {pattern} and go {offset} lines up or down
? Search backward for the [count]'th latest used pattern
??{offset} Search backward for the [count]'th latest used pattern with new {offset}. If {offset} is empty no offset is used.
n Repeat the latest "/" or "?" [count] times.
N Repeat the latest "/" or "?" [count] times in opposite direction.

Exit vim:
:q[uit] Quit Vim. This fails when changes have been made.
:q[uit]! Quit without writing.
:cq[uit] Quit always, without writing.
:wq Write the current file and exit.
:wq! Write the current file and exit always.
:wq {file} Write to {file}. Exit if not editing the last
:wq! {file} Write to {file} and exit always.
:[range]wq[!] [file] Same as above, but only write the lines in [range].
ZZ Write current file, if modified, and exit.
ZQ Quit current file and exit (same as ":q!").

There are several cheat sheets for Vim. Just google/bing for it...
Step 15: config opens
Step 15: config opens
Step 16: set Vim to case insensitive search ":set ic" (ignore case)
Step 16: set Vim to case insensitive search ":set ic" (ignore case)
Step 16: search for Safe_ports "/Safe_ports"
Step 16: search for Safe_ports "/Safe_ports"
Step 16: add an acl entry
Step 16: add an acl entry

Add an acl enty with a descriptive name and ip address of your system (use whatismyipaddress.com to look up your external ipaddress)
Example: acl fsays src 123.234.345.456
The newly created entry
The newly created entry
Step 17: search for Safe_ports again: "/Safe_ports"
Step 17: search for Safe_ports again: "/Safe_ports"
Step 18: add an http_access entry
Step 18: add an http_access entry

Add an http_access entry below the http_access deny manager (quick search /http_access deny manager). Add your entry:
http_access allow fsays
Step 19: save and exit Vim ":wq"
Step 19: save and exit Vim ":wq"
Step 20: reconfigure squid "sudo squid3 -k reconfigure"
Step 20: reconfigure squid "sudo squid3 -k reconfigure"
Step 21: change your internet options. Set the proxy settings.
Step 21: change your internet options. Set the proxy settings.
Step 22: test the proxy
Step 22: test the proxy

So that's all it takes to setup a proxy in windows azure.
N.B.: if you're running the proxy 24/7, then it's probably cheaper to use PlayMo or some other proxy. For me it was just the challenge to get things working anyway.
Have fun!

Back to List

All form fields are required.
A confirmation mail for the comments will be send to you.