0

我在 ubuntu 中使用 tcpdump 和 tcpreplay 来捕获数据包并重新发送(在树莓派中重写和 openwrt 用于 ap 模式。

我的问题是我无法捕获重新发送的数据包。

这是我的网络:

     A          ---->        B(RPI)           ----------->     C
192.168.0.199      eth0.          wlan0      |             192.168.2.172
               192.168.0.100    192.168.2.1  | 
                                              ------------>     D
                                                           192.168.2.222

我将数据包(使用 nping)从 A 发送到 B,并使用了端口转发

在 A 中进行 nping :

nping --udp --dest-port 7777 --dest-ip 192.168.0.100

使用 iptables 在 B 中进行端口转发:

iptables -t nat -A PREROUTING -i eth0 --dport 7777 -j DNAT --to 192.168.2.222

所以,我在这里完成了。

我用 D 写这个

tcpdump -i wlan0 dst port 7777 -w packet.pcap
tcprewrite -i packet.pcap -o packet_rewrite.pcap -D 192.168.2.222:192.168.2.172
tcpreplay -i wlan0 --topspeed packet_rewrite.pcap 

但是,在 C 中,我无法捕获修改后的数据包......

tcpdump dst port 7777

我真的很想知道为什么我不能......请让我知道
,我真的很抱歉我的解释不好......

4

1 回答 1

0

进一步搜索..我在B(wlan0)中捕获数据包因为我将数据包的源mac编辑到我的ubuntu wlan mac地址...但是和以前一样,我无法在C中捕获数据包... 这是在B中捕获的数据包

甚至重放的数据包也没有通过 iptables ......

我解决了!!!!!!!!!!!!!!

我不得不将dmac更改为C的mac地址......我很愚蠢......

于 2021-03-07T05:18:23.110 回答