首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环tcpdump输出

循环tcpdump输出
EN

Network Engineering用户
提问于 2015-09-01 14:20:52
回答 2查看 2K关注 0票数 5

我有外部硬件,可以通过指定的端口连续地发送UDP数据段。我想继续将最后几个接收到的数据包存储在一个文件中(也可以是基于时间的)。

如果我将tcpdump-G-C结合使用,则会创建一个新文件,或者在达到限制后覆盖旧文件。然而,这不是我所需要的。我希望有一个连续旋转的文件:当一个新的包进来时,最老的包应该被移除,以便为新的包腾出空间。

通过这种方式,我知道我总是(当然,在缓冲区填充之后)有一个足够大的样本(而不是0到N个数据包/字节/秒之间的随机大小)。

经过一些网络搜索后,我发现曾经有一个名为pcapture的工具,它使用循环缓冲区来实现类似的功能,但是它的寿命很短,甚至在Linux下也不支持。

用现代工具实现这种循环性的最佳方法是什么?

EN

回答 2

Network Engineering用户

发布于 2016-06-28 06:16:00

考虑一下,在磁盘上的文件中创建一个循环缓冲区非常复杂,根本不适合典型的磁盘I/O,唯一的方法就是找到一种将固定长度的条目写入文件的方法,这听起来不太适合数据包跟踪。

正如上面所建议的,我将使用tshark中的ringbuffer功能来创建几个文件,然后再使用捕获。如果您指定创建N个文件(在我看来,5到10个文件是合理的),并告诉tshark在固定的T时间之后旋转,那么您将有一个合理数量的日志文件,这保证了它们不会随着时间的推移而累积,并且可以方便地访问(N-1)*TN*T分钟之间的数据包。

根据tshark手册,您需要像这样使用-b选项来获取6个文件,每个文件值2分钟(注意,必须指定两次-b )。

代码语言:javascript
复制
-b duration:120 -b files:6

如果您需要一次查看整个捕获,则可以使用mergecap实用程序将N个日志文件合并为一个大文件,以便在Wireshark中使用。

票数 4
EN

Network Engineering用户

发布于 2015-09-01 15:09:04

支持循环测井和循环缓冲的wireshark。如果您想要为端口生成一个新文件的跟踪行,那么您将使文件大小设置变得非常小。不确定支持文件的最小大小是多少。必须将wireshark设置为只捕获所需的端口。那部分并不难。

我想这可以通过一些实验来完成。这篇文章的主题也太过了。

www.wireshark.org。大多数linux存储库都有wireshark可供下载。

如果它是一个无头服务器,那么使用正确的参数来调整开始配置将需要更多的工作。

祝好运。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/21077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档