PacketFu在Ubuntu 14.04上的线程内捕获

时间:2014-07-31 07:49:30

标签: ruby ubuntu debian pcap

我使用ruby packetfu库来捕获数据包的这个小代码:

require 'packetfu'

Thread.new {
   cap = ::PacketFu::Capture.new :iface => 'eth2', :promisc => true, :start => true, :filter => 'arp or icmp'
   cap.stream.each do |p|
       pkt = ::PacketFu::Packet.parse(p)
       puts pkt.peek
   end
}

sleep 120

此代码在Debian 7上运行完美,而在Ubuntu 14.04上无法捕获任何数据包,或者没有我预期的数据包。

我真的不明白最新情况。任何人都有想法或指向Debian和Ubuntu ruby​​堆栈之间或pcap库或其他任何区别的任何区别?

在两个系统上我都安装了相同的软件包:

apt-get install ruby ruby-dev libpcap-dev
gem install pcaprub
gem install packetfu

在Debian上我有ruby 1.9.3p194而在Ubuntu上我有ruby 1.9.3p484。 在MacOS上,它在Debian上使用ruby 1.9.3p545。

由于

1 个答案:

答案 0 :(得分:1)

在一些谷歌搜索结束后成为ubuntu 14.04中附带的libpcap-dev 1.5.3软件包中的pcap错误。

从先前版本安装libpcap-dev 1.4.0解决了这个问题。

我在这里找到了一个参考:http://redmine.named-data.net/issues/1511