tcpdump抓包的同时保存成文件

在LINUX下演示tcpdump抓包时,发现无法实现又显示当前抓到的包,又把文件保存起来的方式。找了一下国内的解决方法,怎么也找不到,用bing去国外一找第一个就是:
https://stackoverflow.com/questions/25603831/how-can-i-have-tcpdump-write-to-file-and-standard-output-the-appropriate-data
我根据实际情况调整如下:

tcpdump arp -v -U -w - | tee arp.pcap | tcpdump -r -

另一个会话 ping 一个同网段中不存在的IP,这里就可以看出一个个包显示出来。Ctrl+C中止后,就可以看到arp.pcap的文件。

这个命令很烧脑,分步解释一下:
tcpdump arp 是指抓 arp 类型的包。
-v 是显示详细情况,但在 -w 的参数影响下,只显示 got 5 这样的内容了。
-U 文件及时写入,而不是缓存一些后再写
(用 -l 也可以实现相同效果,但两者还是)
-w 把抓到的内容写到文件中,其中后面跟的文件是一个“减号”!即标准输入/输出。这种用法我没碰过。

然后用 tee 把标准输出保存成文件
然后继续用 tcpdump -r 把标准输入解析显示出来。

现在看到关键是 tee,我反过来,在百度搜索 tcpdump tee,虽然出现了好几条,甚至man tcpdump中就自带示例了。

tcpdump arp -l | tee arp.pcap

这个一点也不费解。但抓到的包是文本的,丢失了原始的二进制信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值