BoredFactory
Amazing Skies [pics]

[How To] Setup your own Proxy Server in 5 Minutes for Free

Google Proxy

A simple Google search and you’ll find dozens of really good PHP scripts on the Internet to help you create proxy servers in minutes for free. The only limitation with PHP based proxies is that you require a web server to host the proxy scripts and second, you also need a domain name to act as an address for your proxy site.

If you don’t own a domain or server space, you can still create a personal proxy server for free and that too without requiring any technical knowledge.

Create a Free Proxy Server with Google App Engine

Here’s one such proxy site that you can build for your friends in China or even for your personal use (say for accessing blocked sites from office). This is created using Google App Engine and, contrary to what you assume, the process is quite simple.

Step 1: Go to appengine.google.com and sign-in using your Google Account.

Step 2: Click the “Create an Application” button. Since this is your first time, Google will send a verification code via SMS to your mobile phone number. Type the code and you’re all set to create apps with Google App Engine.

Step 3: Choose a sub-domain* that will host your proxy server. Make sure the domain is available, agree to the Google Terms and click save. The sub-domain is also your App ID that will uniquely identify your proxy application.

For this example, we’ll use labnol-proxy-server as the App ID though you are free to choose any other unique name.

Step 4: OK, now that we have reserved the ID, it’s time to create and upload the proxy server application to Google App Engine. Go to python.org, download the 2.6.4 MSI Installer and install Python.

Step 5: Once Python is installed, go to code.google.com, download the Google App Engine SDK for Python and install it.

Step 6: Download this zip file and extract it to some folder on your desktop. The zip file, for the curious, contains a couple of text files (written in HTML and Python) that you can read with notepad.

Step 7: Start the Google App Engine Launcher program from the desktop and set the right values under Edit –> Preferences (see screenshot above).

Step 8. Click File –> Add Existing Application under the Google App Launcher program and browse to the directory that you created in Step 6. Click the Edit button and replace “YOUR_APP_ID” with the ID (sub-domain) that you reserved in Step 3.

Step 9: Click Deploy and your online proxy server is now ready for use. You can experience it live and if any of the steps don’t make sense, please refer to the following video screencast (available in 720p HD).

You can edit the main.html file to change the appearance of your proxy server and you can even add Analytics and AdSense code to your proxy server in case it gets popular on the web. The application is currently open to all users but you can add a layer of authentication so that only users who are logged-in into their Google Accounts can use your web proxy server.

If you have made any changes to your HTML files, you can upload the latest version to Google App Engine either by clicking the “Deploy” button again or use the following command -- appcfg.py update <app-directory>

Credits: The proxy server uses code from Mirrorr, an open-source web caching project by  Brett Slatkin. Thanks Pratham for your help!

Update: To answer some of your questions:

  • This proxy works with Flash videos (like YouTube and ABC News) though not with Hulu.
  • If you are getting the “quota exceed” error, try this mirror site. Update: This has been removed since the App Engine TOS does not allow you to split your app across multiple accounts to make use of the free quotas. So technically, the mirror of the proxy is in violation of the TOS.
  • As some of you have suggestions, domain with the word “proxy” or “proxies” are banned at workplaces so you may include them in your proxy address.
  • Though there exist proxy servers for accessing secure sites, this is a basic proxy server that won’t work with sites that require logins (eg, Gmail or Hotmail).