我想编写一个代理软件来操作来自/到特定设备的传入和传出数据包。对于传入的数据包,这很容易:为进入设备 IP 的数据包添加 PREROUTING iptables 条目,并将它们路由到另一个 IP:Port。在那里我可以修改数据包并将它们转发到真正的目的地(我的设备)。
但是我如何处理传出的数据包?当我尝试以下
iptables -t nat -I PREROUTING -p udp -s 10.0.0.10 -j DNAT --to-destination 10.0.0.20:13000 (10.0.0.10 是我要监控的设备,10.0.0.20 是我监控的电脑)
然后我会得到客户端发送的所有数据包,但我不知道它们的真实目的地,因为 IP 标头中的目的地 IP 被重写......