Unblock Facebook in your country
Overview
This guide will explain how to set up your own Facebook proxy site. A proxy site will help users in countries where Facebook has been blocked.
For most of the article we'll be using a web server called Nginx. NGINX is our recommended method since it is fast, requires few resources, and has many advanced reverse proxy features. 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 (e.g. apt-get install package) since it will not have the required modules.
There are also two PHP scripts that proxy facebook that have been designed specifically for this and can be used on web hosting packages (i.e. does not require a server dedicated to it).
NGINX
a) If you're using a Debian based OS (e.g. Ubuntu), run this:
apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev gcc make subversion
b) If you're using a Red Hat based OS (e.g. Centos), run this:yum install pcre-devel zlib-devel openssl-devel gcc make subversion
2. Download the source. You can find the latest version here.wget http://nginx.org/download/nginx-1.10.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.10.0.tar.gz
cd nginx-1.10.0
5. Get ready to compile by configuring. 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 it's working, we'll stop it so we can configure it../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. Copy the following config and insert it into nginx.conf (Updated Jan 5, 2016)worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass https://facebook.com/;
proxy_set_header Accept-Encoding "";
proxy_set_header Host facebook.com;
proxy_set_header CF-Connecting-IP "";
proxy_set_header Via "$host";
proxy_ssl_verify off;
proxy_ssl_server_name on;
subs_filter '<strong id="howdl">.*<\/strong>' '<strong id="howdl"><a href="https://facebook.co">List of Pirate Bay proxies</a></strong><br>' r;
subs_filter 'facebook.com' $host;
}
}
}
11. Test your config works by starting nginx. It's a good idea to
make sure nothing else is running on your web port (e.g. Apache). If
you get errors, something needs changing. Usually the output will point
you in the right direction. You can also check the error log by going to
/usr/local/nginx/logs/. If you can't figure it out, try searching the
internet as there are a lot of resources./usr/local/nginx/sbin/nginx
14. If it works then submit it to The Proxy Bay by going to This Link.15. You can set up an init script to start/stop/reload/restart nginx more easily. See how here. It's also a good idea to make nginx start at boot. For Redhat based distros and for Debian based distros.
PHP
Unblocked Facebook PHP Script
This is the recommended PHP script that proxies facebook. This script does not use .htaccess and is likely to be more compatible with web serversSimply upload it to your web host and modify includes/config.php. You can also customize the home page by editing home.html
Download from Github here
PHP The Facebook Proxy
This script uses .htaccess to load the proxy script and modify the URL's. Therefore, your server will need to run Apache for the .htaccess file to workIf the script doesn't work, make sure the .htaccess file exists in the same directory as proxy.php. You can also try removing the RewriteBase line from the htaccess file as well to see if that helps. Otherwise, try the alternative script below
To install, just unzip it and upload the files to your web server.
Download from Github here
Tips
Find a good Web Host
Try looking for a provider that ignores DMCA requests and is not based in the USA or UK. Some hosts (even in Europe) will honour DMCA takedowns, so it's good to do your research. Try doing a Google search for keywords such as: offshore, vps, dmca.Use a CDN
Use a free CDN service such as Cloudflare to help speed up your site and lessen the load on your server. It will also conceal the true location of your server. Another free CDN provider is IncapsulaNote: If you are using Cloudflare, you will need to add
proxy_set_header CF-Connecting-IP '';
to your Nginx config for it to work. Otherwise, you will get DNS errorsUse SSL
Aside from protecting the privacy of your users, using SSL can also bypass a lot of blocks from ISP's. Therefore, it is highly recommended to use SSL for your proxyCloudlfare automatically provides an SSL certificate for your site so you can simply add https in front of your domain.
If you buy your own certificate, be sure to follow the SSL best practices, such as enabling HSTS and using modern ciphers. Here is a guide for NGINX
Use NGINX
NGINX is the fastest and most reliable proxy method available. Otherwise, the Apache method is also a good option. The PHP scripts should be used if you are unable to setup the other optionsTake a look at the NGINX Documentation to further configure it to your needs
Here is a guide on how to optimize NGINX
Find a good Domain Registrar
I recommend Hover, EasyDNS, or NameCheap.Avoid GoDaddy, Register.com, Network Solutions and Web.com
Use WHOIS privacy on your domain name
When you register a domain name, your billing/registration information usually becomes public in the public WHOIS database. Therefore, anyone can go on a Whois search site and lookup your domain.Some domain names do not support WHOIS privacy and will require your contact details to be public. In that case, you can try inputting fake data. However, be aware that this might be against the terms of your domain registration. Here is More information.
Get a Free Domain Name
Using FreeDNS, you can register a free subdomain name (e.g. subdomain.domain.com). This is free and doesn't require you to register or pay for a regular domain. However, since it's a subdomain, you don't control the name servers and cannot use it with services like CloudflareAnother option is to get a free domain from Freenom. Since these are regular domains (e.g. domain.tk), you can set up name servers to point at services such as Cloudflare
Add the site UptimeControl.net to the article, because only they have a 3-minute site availability check interval on the free plan.
ReplyDelete