tcpdump:无法在数据包套接字上创建 rx 环:无法分配内存

tcpdump:无法在数据包套接字上创建 rx 环:无法分配内存

在出现此错误之前,我一直在使用 tcpdump,没有任何问题。一旦我的服务器受到攻击,我就会使用以下两个命令及其变体,这样如果数据包速率很高,数据包就会自动被转储。

tcpdump -i eth0 -p -nn -s0 -c 2000 -w $dumpdir/dump.`date +"%Y%m%d-%H%M%S"`.cap
tcpdump -nn -s0 -c 2000 -w $dumpdir/dump.`date +"%Y%m%d-%H%M%S"`.cap

当我受到攻击时,控制台中立即出现以下错误:

tcpdump: can't create rx ring on packet socket: Cannot allocate memory

手动使用命令是可行的,所以我猜测在发生攻击时某些东西会过载。不过这是我的 RAM 使用情况:

root@x:~# free -m
             total       used       free     shared    buffers     cached
Mem:          2004       1255        749          0          1         29
-/+ buffers/cache:       1225        779
Swap:         2047       1095        952

目前,这一数字比该命令生效时的水平要低得多。

那么有人能回答这个问题吗?

答案1

这可能是由于系统内存不足造成的。我注意到当内存量较大时,它可以正常工作。

相关内容