How to set up a Pirate Bay proxy

Jump to: Windows proxy - linux proxy instructions - Mac OS X proxy instructions - PHP script - submit, help, and share

Looking for a list of working proxies? See http://about.piratereverse.info/proxy/list.html - updated daily!

Background

This article will be explaining how to set up your own pirate bay proxy, as some ISPs in the UK have been ordered to block it by the High Court. In addition to this we will also be explaining how it is a good and low cost investment with a great outcome - we must fight censorship, we cannot let this continue.

For most of the article we'll be using a web server called nginx. It has been tested on Red Hat based and Debian based distributions but it works on pretty much all UNIX-based systems. Your server should not have anything else running on port 80 though, and of course it needs sufficient bandwidth. Don't use a precompiled binary from your distributions repos though as it will not have all the required modules. You can get good value VPS servers for next to nothing these days that will be more than capable of running it, ours costs less than £5 per month.

There is also a PHP script that proxies The Pirate Bay that has been designed specifically for this, and can be used on web hosting packages (i.e. does not require a server dedicated to it). If you are planning on doing this, make sure you aren't violating any terms of service that your provider has.

These guides were created in the spirit of The Hydra Bay. In ancient Greek mythology, the Hydra was a serpent that possessed many heads. Herakles was sent to destroy it as one of his twelve labours, but for each of the heads that he decapitated, two more grew. In a sense this is what we are trying to achive; ISPs block The Pirate Bay, and many more proxies appear.


Preconfigured Windows nginx proxy

We have preconfigured nginx for Windows into a Pirate Bay proxy. Just download it, run start.bat and configure your router and you have a fully functional proxy that you can share.

Download v1.0 based on nginx/1.2.0

This will only work if your ISP has not blocked The Pirate Bay, if they have then your proxy will be serving their block page rather than the actual Pirate Bay site. If your ISP has blocked it and you need to access The Pirate Bay, use https://piratereverse.info instead, or check out this list of proxies.

Once the software is running you will need to forward port 80 on your router or firewall to the IP of the computer with nginx. This guide about Apache will help as it uses the same port. You will also need to open nginx.conf in the conf directory and change where it says 127.0.0.1 to your external IP address or hostname. If you don't have a static IP address, use a service like no-ip.com to get a free hostname and dynamic DNS.


Guide for nginx proxy on linux

1. Once you've got your server set up and online you'll want to get nginx installed. Install the dependencies first, this is for a Red Hat based system.

yum install pcre-devel zlib-devel openssl-devel gcc make subversion


If you're using a Debian based operating system you should use this.

apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl gcc make subversion


2. Download the source. Latest version is 1.2.0 as of 04/05/2012.

wget http://nginx.org/download/nginx-1.2.0.tar.gz


3. Download the substitutions4nginx source using subversion.

svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only


4. Extract the source.

tar xzvf nginx-1.2.0.tar.gz
cd nginx-1.2.0


5. Get ready to compile by configuring. Leave out --with-http_ssl_module if you aren't planning on using SSL. Change the path of the substitutions4nginx-read-only directory to where you've downloaded it to. If you haven't changed the path and are logged in as root it'll probably be /root/substitutions4nginx-read-only/

./configure --with-http_ssl_module --add-module=/path/to/substitutions4nginx-read-only


6. Compile it. It'll be installed to /usr/local/nginx/ by default.

make
make install


7. Test nginx is working by starting it then typing in your server IP in your web browser. You should see the "Welcome to nginx!" message.

cd /usr/local/nginx/
./sbin/nginx


8. If its working, we'll stop it so we can configure it. If you can't connect to it, make sure there isn't a firewall blocking it. For testing, see this shell script. You should configure iptables properly later but its not something in the scope of this article, instead see here.

./sbin/nginx -s stop


9. Rename the default config file so we've got a copy just in case something isn't quite right.

cd conf
mv nginx.conf nginx.conf-backup


10. Download this non-SSL config and open it. Have a look at it here online first if you're unsure.

wget http://about.piratereverse.info/proxy/nginx.conf
vi nginx.conf


If you are using SSL, download this config and open it. Have a look at it here online first if you're unsure. This is for SSL.

wget http://about.piratereverse.info/proxy/nginx-ssl.conf
mv nginx-ssl.conf nginx.conf
vi nginx.conf


11. If you aren't using SSL the only thing you should consider changing is the subs_filters, or you can remove them. They perform a find and replace. If you are using SSL change the paths of the SSL certificates as appropriate and edit the server_name so it is relevant.


12. Make the cache directory. By caching we'll be taking the stress off The Pirate Bay's servers and speeding up delivery of our site. If you changed the cache path above then make sure its the same here too.

mkdir /usr/local/nginx/cache


13. Test your config works by starting nginx. If there isn't any output then its started. If you get [emerg] errors, something needs changing. Usually the output will point you in the right direction. If you can't figure it out, try searching the internet as there are a lot of resources - otherwise email with as much detail as possible.

./usr/local/nginx/sbin/nginx


14. If it works, try it out. You've completed it. We recommend installing Webmin too, so you can see the error logs in the browser and manage the server with ease. If you are hosting this as a public proxy then see this section on contacting us as we are maintaining a list of known proxies.


Guide for nginx proxy on Mac OS X

One of the advantages with nginx is that it works on a Mac too. This guide will explain how to configure it. You'll need to have Xcode installed, but that is free from Apple.

1. Configure the dependencies by going to the Terminal (Applications > Utilities) and paste in the following. If it does not work, paste it in each line at a time (note that the long URL on the first line wraps over onto the second, but it should be treated as a single line).

sudo curl -OL h ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz > /usr/local/src/pcre-8.30.tar.gz
sudo mkdir -p /usr/local/src
cd /usr/local/src
tar xvzf pcre-8.30.tar.gz
cd pcre-8.30
./configure --prefix=/usr/local
make
sudo make install
cd


2. Download nginx source and untar it.

sudo curl -OL h http://nginx.org/download/nginx-1.2.0.tar.gz > /usr/local/src/nginx-1.2.0.tar.gz
tar xvzf /usr/local/src/nginx-1.2.0.tar.gz


3. Download the substitutions4nginx source using subversion.

cd /usr/local/src/
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only


4. Get ready to compile by configuring. Leave out --with-http_ssl_module if you aren't planning on using SSL. Change the path of the substitutions4nginx-read-only directory to where you've downloaded it to.

cd nginx-1.2.0
./configure --with-http_ssl_module --add-module=/path/to/substitutions4nginx-read-only


5. Compile it. It'll be installed to /usr/local/sbin/ by default.

make
sudo make install


6. Test nginx is working by starting it then typing in your server IP in your web browser. You should see the "Welcome to nginx!" message.

sudo /usr/local/sbin/nginx


7. If its working, we'll stop it so we can configure it. If there are any problems, try installing it again using this guide but make sure you include the "--add-module=/path/to/substitutions4nginx-read-only" parameter to ./compile

sudo /usr/local/sbin/nginx -s stop


8. Rename the default config file so we've got a copy just in case something isn't quite right.

cd /usr/local/conf/
mv nginx.conf nginx.conf-backup


9. Download this non-SSL config and open it. Have a look at it here online first if you're unsure.

wget http://about.piratereverse.info/proxy/nginx.conf
vi nginx.conf


If you are using SSL, download this config and open it. Have a look at it here online first if you're unsure. This is for SSL.

wget http://about.piratereverse.info/proxy/nginx-ssl.conf
mv nginx-ssl.conf nginx.conf
vi nginx.conf


10. If you aren't using SSL the only thing you should consider changing is the subs_filters, or you can remove them. They perform a find and replace. If you are using SSL change the paths of the SSL certificates as appropriate and edit the server_name so it is relevant.


11. Test your config works by starting nginx. If you get [emerg] errors, something needs changing. Usually the output will point you in the right direction. If you can't figure it out, try searching the internet as there are a lot of resources - otherwise email with as much detail as possible.

sudo /usr/local/sbin/nginx


12. Installation is complete, try it out. If you are hosting this as a public proxy then see this section on contacting us as we are maintaining a list of known proxies.


PHP script

This PHP script is a proxy designed specifically for providing access to The Pirate Bay. A great solution if you do not have a server that you can dedicate to the task. It was developed by UnblockedPirateBay.com and requires at least PHP5 and cURL. Just unzip it and upload it to your web server.

Download latest

The cookies.txt file should be chmod 755/777. There is no additional configuration required however in the file configurationfile.php there are some options you can change, such as the page title.


Tips for running a successful proxy

Do the following:

  • ensure your proxy is fast
  • ensure it is easily accessible, i.e. no complicated domains!
  • ensure it is available 24/7 - proxies that no longer work are removed from the list!

Don't do the following:

  • interfere with TPB's content
  • charge for access - you'll get blacklisted by TPB and your proxy will stop working!
  • insert many of your own ads
  • show any pages before TPB's homepage
  • use an open web proxy such as Glype or PHProxy
  • save POST data of any kind

Unfortunately some rouge sites have appeared, which is unacceptable and disappointing that people feel the need to abuse the situation. Any sites found to be in the best interest of the operators and not the visitors will be reported to The Pirate Bay so they can be dealt with! Find out more at http://torrentfreak.com/pirate-bay-slaps-pathetic-proxies-and-scammy-copies-120507/


Submit your site

Once you have created your site, we would appreciate it if you would share it with us by emailing nospam@piratereverse.info - this is so we can all build up a list of proxies. Our list is at http://about.piratereverse.info/proxy/list.html and will be shared on The Pirate Bay's Facebook wall.


Help

If anyone has any questions or suggestions please email nospam@piratereverse.info and we'll be happy to try and help. If we get a lot of similar questions we'll add a FAQ section here.

Likewise if anyone has any improvements to make the process easier then please submit them at the above email address. We're also looking for any alternative methods of creating proxies, so if you have wrote some code or are making a guide, let us know and we'll post it here. It is important we can get as many Pirate Bay proxies up as possible, that is what The Hydra Bay is all about.


Spread the word

Please let people know about this - the more proxies that work properly the better. If you use Twitter follow us, we are @piratereverse. Post about it, include the hashtag #thehydrabay. Let's see if we can get this trending! If you are able to donate, please do so below using flattr so we can keep providing a fast and reliable service with continually updated information. If you'd like to donate via PayPal, that is fine just send us an email and we'll discuss from there.