工具:mitmproxy, iptables; 测试需要抓去设备数据,所以用 iptables,流程如下:
# 开启 IP 转发
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.1.0/24 -j DNAT --to-destination 192.168.1.115:8080
如上,我电脑 ip 115,将局域网所有标准 http 的流量转发到我电脑 8080 端口上,用设备及手机 chrome 测试,但是最终 mitmproxy 中也没任何数据,疑惑问题在哪里?不用改网关 DNS 吧。。
iptables -t nat -L -n -v 如下:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 192.168.1.0/24 0.0.0.0/0 tcp dpt:80 to:192.168.1.115:8080
1
polaa 2020-09-28 17:55:40 +08:00 via iPhone
你确定是 prerouting ?
|
2
stephCurry OP @polaa 不确定。。。。。。。。。。。
|
3
julyclyde 2020-09-30 13:08:50 +08:00
这就是个典型的错误理解了
你以为做转发的是 iptables 而实际上 iptables 只是在内核里设置个规则而已 至于数据是不是要经过你这里,和你的电脑一点关系都没有 取决于发送方自己的路由表 |