我在 openwrt 中使用 tcpreplay 和 tcprewrite。
我想将捕获的数据包重新发送到另一个节点。
下面是我的描述。
External OpenWRT Computer1
eth0 wlan0
119.207.66.08 -----> 192.168.0.180 192.168.4.1 ------> 192.168.4.110
我使用 tcpdump 从外部捕获数据包。
tcpdump -i any -d 192.168.0.180 -w save_packet.pcap
我尝试重写数据包的源 IP 和源 MAC、目标 IP 和目标 MAC。
tcprewrite -i save_packet.pcap -o rewrite_packet.pcap --enet-smac=[OpenWRT's MAC] \
--enet-dmac=[Computer1's MAC] -S 0.0.0.0/0:192.168.4.1 -D 192.168.0.180:192.168.4.110 -C
并重播 rewrite_packet.pcap
tcpreplay -i wlan0 rewrite_packet.pcap
至此,我在 Computer1 中收到了 rewrite_packet。并且 Computer1 确实对此数据包做出了响应。
但不是外部(119.207.66.08)而是OpenWRT(192.168.0.180)......我希望Computer1响应外部。但是当我不更改源 IP、MAC 时,我无法发送到 Computer1.119.207.66.08 请帮助我...