proxy icon indicating copy to clipboard operation
proxy copied to clipboard

A simple web proxy written in Go. Used primarily to mess with my neighbours.

proxy - A simple transperent web proxy written in go.

This was written after my neighbours have taken it a bit too far using my wireless and I wanted to have a bit of fun. It was inspired by upside-down-ternet[1]. :-)

src/proxy is the main proxy library. This repository also includes multiple simple proxies written using it:

upsidedown flips every image requested through it.

logger simply logs every request.

rickroll takes a path to an flv file, and replaces every flv
request with its contents.  i.e. it turns every youtube video
into a rickroll.

they all listen on port 3128.

Look at src/logger or src/upsidedown for examples on how to write a custom proxy.

To forward all web traffic to the machine running the proxy (in my case on 192.168.1.11:3128), I use the following iptables commands on the router:

iptables -t nat -A PREROUTING -s '!' 192.168.1.11 -p tcp --dport 80 -j DNAT --to 192.168.1.11:3128 iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 192.168.1.11 -j MASQUERADE iptables -A FORWARD -s 192.168.1.0/255.255.255.0 -d 192.168.1.11 -p tcp --dport 3128 -j ACCEPT

Exercises for the reader: inject js into all html pages.

[1] http://www.ex-parrot.com/pete/upside-down-ternet.html