aboutsummaryrefslogtreecommitdiffstats
path: root/doc-src/transparent.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc-src/transparent.html')
-rw-r--r--doc-src/transparent.html19
1 files changed, 19 insertions, 0 deletions
diff --git a/doc-src/transparent.html b/doc-src/transparent.html
new file mode 100644
index 00000000..4e9b6774
--- /dev/null
+++ b/doc-src/transparent.html
@@ -0,0 +1,19 @@
+
+When a transparent proxy is used, traffic is redirected into a proxy at the
+network layer, without any client configuration being required. This makes
+transparent proxying ideal for those situations where you can't change client
+behaviour - proxy-oblivious Android applications being a common example.
+
+To set up transparent proxying, we need two new components. The first is a
+redirection mechanism that transparently reroutes a TCP connection destined for
+a server on the Internet to a listening proxy server. This usually takes the
+form of a firewall on the same host as the proxy server -
+[iptables](http://www.netfilter.org/) on Linux or
+[pf](http://en.wikipedia.org/wiki/PF_\(firewall\)) on OSX. When the proxy
+receives a redirected connection, it sees a vanilla HTTP request, without a
+host specification. This is where the second new component comes in - a host
+module that allows us to query the redirector for the original destination of
+the TCP connection.
+
+At the moment, mitmproxy supports transparent proxying on OSX Lion and above,
+and all current flavors of Linux.