linux – 监控模式接口上的tcpdump – 没有捕获

我一直在使用tcpdump(版本4.1.1)尝试从airmon-ng设置的monitor mode接口捕获无线帧.我说“尝试”因为到目前为止没有发生任何事情.这很奇怪:

tcpdump -i mon0

上面的命令工作正常.我看到所有的信标和探测请求以及屏幕上可以显示的所有其他帧.但是,当我尝试使用输出将输出写入捕获文件时

tcpdump -i mon0 -w captures.cap

绝对没有被捕获,包括包含实际数据的第3层数据包.当我杀死tcpdump时,它给了我

捕获了13507个数据包
过滤器收到13507个数据包
内核丢弃0个数据包

(13507在这种情况下是任意数字)和完全空的捕获文件.

但是,当我在同一界面上使用tshark或wireshark执行捕获时,帧会被捕获到文件而没有任何问题.

我更喜欢使用tcpdump而不是wireshark,因为它没有GUI的开销,它有“-z”选项,它允许我获取捕获文件并将其传递给shell脚本,将其复制到另一台计算机在我的网络上. tshark或wireshark没有类似的功能,我非常希望避免编写程序来检查捕获文件是否存在.

我对tcpdump的工作方式有一个根本的误解,或者这里肯定有什么奇怪的事情发生?是否有更好的方法来做我正在做的事情,或者我将不得不编写自己的基于libpcap的捕获程序?

解决方法:

似乎有效地出了问题.在我的Ubuntu上,以下效果很好.

sudo tcpdump -w ./test.cap

也许你可以试试

sudo tcpdump -U -w ./test.cap

J.P

上一篇:Linux-tcpdump


下一篇:tcpdump的使用以及参数详解