How to unblock ThePirateBay.se on a TalkTalk Internet connection First download and install privoxy from http://www.privoxy.org/ Configure it as follows: Place in your user.filter file: # define rule to change host header CLIENT-HEADER-FILTER: tpbfix s@^Host(:.*)@host$1@i Then in user.action: # change host header for tpb { +client-header-filter{tpbfix} } thepiratebay.se Then restart and configure your browser to use Host: 127.0.0.1 Port: 8118 and enjoy your ability to access TPB from talktalk! BTW changing IP won't help you as they are matching on ^Host:\ thepiratebay.se nor does the port matter the machine you're talking to at the other end. Send that Header to a completely unrelated machine or unencrypted HTTP Proxy and it'll also be blocked. # Some experiments. openssl s_client -connect 194.71.107.15:443 CONNECTED(00000003) depth=1 /C=US/O=GeoTrust, Inc./CN=RapidSSL CA verify error:num=20:unable to get local issuer certificate verify return:0 29722:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:293: So they drop after the server hello comes back as we start to parse the certificate as well. # Blocked GET / HTTP/1.0 Host: thepiratebay.se # Not Blocked GET / HTTP/1.0 host: thepiratebay.se Note the above is legal, see http://pretty-rfc.herokuapp.com/RFC2616#message.headers "Field names are case-insensitive. The field value MAY be preceded by any amount of LWS, though a single SP is preferred" More fun: # Not blocked: echo -en "GET /blog HTTP/1.0\r\nX-fill-up: `perl -e 'print "A"x5063'`\r\nHost: thepiratebay.se\r\n\r\n"|nc thepiratebay.se 80 [webpage] # Blocked: echo -en "GET /blog HTTP/1.0\r\nX-fill-up: `perl -e 'print "A"x5062'`\r\nHost: thepiratebay.se\r\n\r\n"|nc thepiratebay.se 80 HTTP/1.1 302 Found Pragma: no-cache Cache-Control: no-cache Content-Length: 0 Location: http://www.siteblocked.org/piratebay.html?accessurl=dGhlcGlyYXRlYmF5LnNlL2Jsb2c=&urlclassname=cGlyYXRlIGJheQ== Connection: close # Also interesting: # Changing order of Host header doesn't matter. # Not blocked echo -en "GET /blog HTTP/1.0\r\nHost: thepiratebay.se\r\nX-fill-up: `perl -e 'print "A"x5063'`\r\n\r\n"|nc thepiratebay.se 80 # Blocked echo -en "GET /blog HTTP/1.0\r\nHost: thepiratebay.se\r\nX-fill-up: `perl -e 'print "A"x5062'`\r\n\r\n"|nc thepiratebay.se 80 Seems they ignore http headers >5kBytes.