透明模式重定向到主机本身

Transparent mode redirects to host itself

我是 mitmproxy 的新手,我可能做错了什么。

我 运行 Mitmproxy 在 Ubuntu 上处于透明模式,并按照 https://docs.mitmproxy.org/stable/howto-transparent/ 上的步骤进行操作。它的IP是10.50.10.117.

然后我在客户端机器 (10.50.10.116) 中向 /etc/hosts 添加了一行,指向测试域 (example.com) 的 mitmproxy 服务器。所以这只是在客户端机器上,而不是在机器上 运行 mitmproxy.

然后当我在客户端机器上执行 'curl http://example.com' 时,我看到请求到达 mitmproxy 但它出错了:

10.50.10.116:60936: GET http://example.com/
    Host: example.com
    User-Agent: curl/7.68.0
    Accept: */*
 << Server connection to ('10.50.10.117', 80) failed: Error connecting to "10.50.10.117": [Errno 111] Connection refused

所以 mitmproxy 正在尝试在端口 80 上连接到它自己的主机。为什么它不将请求代理到真实的 example.com?

谢谢。

亨利

https://docs.mitmproxy.org/stable/concepts-modes/#transparent-proxy 有一个插图可以说明您的问题:TCP 数据包的目标 IP 地址是 mitmproxy 而不是实际目标。透明模式需要第 2 层重定向。

您似乎想 运行 mitmproxy 作为反向代理。或者,从 mitmproxy 7(目前仅作为开发快照提供,但我鼓励您尝试一下)开始,您可以 运行 它处于常规模式,它将为目标信息获取主机头。