监控模式接口上的tcpdump - 没有捕获任何内容

我一直在使用tcpdump(版本4.1.1)尝试从airmon-ng设置的监控模式界面捕获无线帧。我说“尝试”因为到目前为止还没有发生任何事情。这很奇怪:
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的捕获程序?     
已邀请:
似乎有效地出了问题。在我的Ubuntu上,以下效果很好。
sudo tcpdump -w ./test.cap
也许你可以试试
sudo tcpdump -U -w ./test.cap
J.P     
你试过airodump-ng吗? 不确定它是否使用libpcap作为捕获库,但是使用pcap文件格式并且有许多选项用于通道选择,bssid过滤等。     

要回复问题请先登录注册