【发布时间】:2011-07-31 21:46:25
【问题描述】:
我一直在使用 tcpdump(版本 4.1.1)尝试从由airmon-ng 设置的monitor mode 接口捕获无线帧。我说“尝试”是因为到目前为止还没有发生任何事情。这很奇怪:
tcpdump -i mon0
上面的命令工作正常。我看到所有的信标和探测请求以及可以想象的所有其他帧都显示在我的屏幕上。但是,当我尝试使用
将输出写入捕获文件时tcpdump -i mon0 -w captures.cap
绝对没有被捕获,包括包含实际数据的第 3 层数据包。当我杀死 tcpdump 时,它给了我
13507 packets captured
13507 packets received by filter
0 packets dropped by kernel
(在这种情况下,13507 是一个任意数字)和一个完全空的捕获文件。
但是,当我在同一界面上使用 tshark 或 wireshark 执行捕获时,帧被捕获到文件中没有任何问题。
我更喜欢使用 tcpdump 而不是 wireshark,因为它没有 GUI 的开销,并且它具有“-z”选项,允许我获取捕获文件并将其传递给复制它的 shell 脚本到我网络上的另一台计算机。 tshark 或 wireshark 没有类似的功能,我非常想避免编写程序来检查捕获文件是否存在。
我是否对 tcpdump 的工作方式存在根本性的误解,或者这里肯定发生了一些奇怪的事情?是否有更好的方法来做我正在做的事情,或者我将不得不编写自己的基于 libpcap 的捕获程序?
【问题讨论】:
标签: linux wireless wireshark libpcap tcpdump