实时嗅探数据包

实时嗅探数据包

我一直在使用 tcpdump,它很好,但它存在问题这里。其他程序(如 hexinject、tcpflow 和 tracedump)都使用 pcap,因此它们在显示数据包之前会延迟一点。

我也用过原始套接字这不会滞后,但我无法使用原始套接字获取端口号。

我查看了 tcpdump 的文档,似乎有--immediate-mode。我试图让 tcpdump 停止延迟发送其数据包。

我当前的版本是:

  • tcpdump 版本 4.6.2

  • libpcap 版本 1.6.2

有tcpdump的补丁吗像这样或者另一个不延迟的cli?

答案1

有tcpdump的补丁吗像这样

是的,有,就像那个补丁一样,添加了一个标志来打开立即模式......

...除了它不是 BPF 特定的(因此它不限于 *BSD、OS X 和 Solaris 11),并且使用--immediate-mode而不是-b,并且它已经在标准 tcpdump 4.7.x 版本中,所以如果您有 tcpdump 4.7 .x 或更高版本,您不需要应用补丁。

您正在寻找什么样的补丁?不需要最新版本的 libpcap 和 API 来打开即时模式?如果是这样,要么该补丁在某些操作系统上不起作用,要么必须执行与操作系统相关的操作(不幸的是,您无法在 Linux 上执行一些简单的 ioctl,因此可能无法一种关闭操作系统缓冲的依赖于操作系统的方法)。

另一方面,您可以尝试将超时减少到 1/10 秒(在pcap_open_live()或中使用 100 而不是 1000 pcap_set_timeout()),甚至 1/100 秒(在pcap_open_live()或中使用 10 而不是 1000 pcap_set_timeout())。

相关内容