首页 > 解决方案 > 如何让 mitmproxy 监听多个网卡?

问题描述

我有 mitmproxy 以反向模式运行;我没有指定监听端口:

sudo mitmpdump -vv --mode reverse:http://target.server.example.com:80/ --set block_global=false -R ":~q ~m GET:^.*$:/test.html"

我得到“代理服务器正在侦听 http://*:8080”,它适用于端口 80、443 或 8080 上的连接。

我向服务器添加了两个新的 NIC;我没有收到发送到任一新 NIC 的流量的响应。有什么我需要调整的吗?

根据流量到达的 NIC/地址,流量可以代理到不同的目的地吗?

标签: mitmproxy

解决方案


回顾我的命令历史记录显示 - 4 个月前 - 我在第一个接口上配置了透明代理。例如

sudo iptables -t nat -A PREROUTING -i ens160 -p tcp --dport 80 -j REDIRECT --to-port 8080

重新阅读 [ https://docs.mitmproxy.org/stable/howto-transparent/]提供了一些背景知识。

我使用目标匹配来确定 Mitm 监听的端口,例如: sudo iptables -t nat -A PREROUTING -i ens192 -p tcp -m tcp -d x.88.164.10 --dport 443 -j REDIRECT --to-ports 8082

为两个端口添加了具有两个地址的第二个 NIC,sudo iptables -t nat -L如下所示:

链 PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- 任何地方 this.host tcp dpt:http redir 端口 8080 REDIRECT tcp -- 任何地方 this.host tcp dpt:https redir 端口 8080 REDIRECT tcp -- 任何地方 this.host tcp dpt:http redir ports 8081 REDIRECT tcp -- 任何地方 this.host tcp dpt:https redir 端口 8081 REDIRECT tcp -- 任何地方 this.host tcp dpt:http redir 端口 8082 REDIRECT tcp -- 任何地方 this.host tcp dpt:https redir 端口8082

现在可以在任一接口上接收请求,包括 IP 别名。

sudo iptables-save 永久更改。

我几乎觉得我明白现在发生了什么……


推荐阅读