2014-02-16 109 views
2

当运行tcpdump的不提供任何接口tcpdump的抛出PKTAP错误

tcpdump -nS

我得到tcpdump: cannot use data link type PKTAP错误,所以我尝试在命令中提供的接口选项

tcpdump -i eth0甚至eth1

然后我得到以下错误

tcpdump: eth1: No such device exists

(BIOCSETIF failed: Device not configured)

我甚至尝试在互联网上查找,但我没有得到任何解决方案...

任何帮助?

+0

这大概是OS X(可能是小牛队)。这是OS X附带的tcpdump,还是您从源代码构建tcpdump?如果你从源代码构建它,那么'tcpdump -h'输出什么? – 2014-02-16 23:05:26

+0

是的,它是来自Mac OSX的tcpdump,这就是当我输入'tcpdump -h'时得到的结果' 'tcpdump版本4.3.0 - Apple版本56 libpcap版本1.5.3' – user3143451

+0

我想这是问题操作系统本身,因为当我手动安装TCPDUMP分开它工作得很好... 为什么PKTAP问题正在发生的任何原因... – user3143451

回答

2

我不能说你的问题与PKTAP,但我可以说“没有这样的设备存在” - eth0是一个Linux主机,而MacOS不是Linux。你几乎肯定希望en0,en1等。“ifconfig -a”是你的朋友,或者如果你安装了它,“tshark -D”。

+1

或'tcpdump -D'。 (“'-D'”最初是一个WinDump,除了tcpdump以外; tcpdump从WinDump中选取它,TShark从tcpdump中选取它。) – 2014-11-04 11:03:46

0

为什么PKTAP问题的任何原因发生

它可能发生,因为你安装了自己的libpcap的,不知道的DLT_PKTAP链路层包头类型的版本,以及苹果的tcpdump是莫名其妙使用你的版本,而不是自己的版本(苹果的版本确实知道),因此,失败的原因是,当它的tcpdump版本运行时没有参数-i,它使用OS机制捕获所有设备,机制提供DLT_PKTAP headers和的数据包链路层报头类型。