Stream Hulu, NBC and Comedy Central to your computer while living or traveling outside the United States.
by John Davidson
Watch full episodes of all the best in US TV programming streamed to your home computer. Are you a fan of Highlander, Family Guy or Heroes? Well you can watch seasons of episodes the whole library of shows is clicks away any time you want! Hulu.com. nbc.com, thedailyshow.com, comedycentral.com are a few of the sites streaming US programming.
But there is a problem if you are living or traveling outside the United States. Content owners use sophisticated geographical ip filtering to block streaming of the videos outside the US. For example, when you try to view hulu.com from Canada, you get the following message, “We’re sorry, currently our video library can only be streamed within the United States.” I’ll describe a way to get around the blocks.
This method requires that you have a Virtual Private Server (VPS) account in the continental United States with Secure Shell (SSH) access. I use a VPS account with linode.com which costs $US 19.95/Month. The trick to avoid the geoblocking is to forward your IP connection from your home computer in Canada. Japan or anywhere outside the US to the US based server using an SSH secure tunnel. The server forwards all the data received back to the foreign client transparently. This works well because to the US-based website (HULU, NBC, Fox) you are now connecting from a US ip instead of a foreign ip address.
Important Caveat 1
It’s important that the latency (ping delay) between your true location and your US server is less than 100 ms to ensure an enjoyable video experience. Otherwise you’ll have to keep waiting for buffer delays. The latency from Vancouver, Canada to my New Jersey server is 88 ms.
Important Caveat 2
Verify the bandwdth caps or limitations on your US server. I’m allowed 200 GB of traffic on my account. A couple of hours of daily TV works out to about a giga-byte of traffic daily or less than 50 giga-bytes a month.
Here we go:
1. Sign up for a VPS account on Linode. Log into your Linode account and create a Ubuntu linode instance. Note the IP address of your server.
SERVER side
2. SSH into the root account of your fresh Ubuntu server
apt-get update
apt-get install
apt-get upgrade
adduser tunnel
Client running OSX or Ubuntu:
3. Open a terminal window
4. ping yourserver.com ; verify connectivity to the server
5. ssh -D 8080 -p 22 -f -N tunnel@yourserver.com ; forward port and then go into background
6. enter password for tunnel when prompted
The ssh command is used to create an encrypted secure connection between a client port and a server port.
The “-D port” option specifies dynamic port forwarding. This works by allocating a socket to listen at a port on the local side. The port can be any number greater than 1024. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported,
The “-p port” option specifies the port to connect to on the remote server. Port 22 is the standard port an SSH server to listen on. If you have troubles connecting, check to ensure the remote server is using the standard port. Sometimes servers use oddball ports – hostgator for example uses port 2222.
The “-f ” option requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases. After the password is entered SSH goes into the background.
The “-N” option means do not execute a remote command. This is useful for just forwarding ports (SSH version 2 only).
Client is running Windows:
3. Download PuTTy from http://www.filehippo.com
4. Open the PuTTy SSH client. Look under Connection -> SSH -> Tunnels.
Add a dynamic port forward, use port 8080 and no need to specify the destination.
5. Click on the open button and enter password when prompted
Client Side: Now set up Firefox to use the local SOCKS server (localhost:8080).
6. Open up Firefox
7. Verify connectivity
a. go to URL http://whatismyip.com and write down the ip address for your client computer
b. click on the speed test button and write down the upload and download speeds
UPDATE Hulu has updated their geo-blocking use new step 8
OLD STEP 8
Click on Tools -> Options -> Advanced -> Network -> Settings
Click the Manual proxy configuration radio button
On the SOCKS option enter localhost and 8080 as the port.
NEW STEP 8
a. Download Proxifier (30 days free trial version) http://www.proxifier.com/download.htm
b. Install and launch proxifier
c. Click option > proxy settings> add
IP address: localhost
Port: 8080
Type: SOCKS5
d. Click OK button
Testing
9. Verify your port is being forwarded.
a. go to URL http://www.whatsmyip.org/ and verify that the ip is different than in step 5a
b. click on the speed test button to confirm you are getting reasonable upload and download speeds
This entry was posted on Tuesday, May 5th, 2009 at 1:11 pm and is filed under Technology, Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed.