首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么无法捕获重写的数据包

为什么无法捕获重写的数据包
EN

Stack Overflow用户
提问于 2021-03-06 23:56:09
回答 1查看 58关注 0票数 0

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

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

这是我的网络:

代码语言:javascript
复制
     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

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

在A中执行nping:

代码语言:javascript
复制
nping --udp --dest-port 7777 --dest-ip 192.168.0.100

B中使用iptables的端口转发:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -i eth0 --dport 7777 -j DNAT --to 192.168.2.222

所以,我说完了。

我用D写这段代码

代码语言:javascript
复制
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中,我不能捕获修改过的数据包...

代码语言:javascript
复制
tcpdump dst port 7777

我真的很想知道为什么我不能...请让我知道

我真的很抱歉我的解释不是很好...

EN

回答 1

Stack Overflow用户

发布于 2021-03-07 13:18:23

进一步搜索..我捕获了B (wlan0)中的数据包,因为我编辑了数据包的源mac到我的ubuntu wlan mac地址...但是和以前一样,我不能用C语言捕获数据包...This is captured packets in B

即使重放的数据包也没有通过iptables...

我解决了

我不得不把dmac改成C的mac地址……我太傻了……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66507657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档