tcpdump网络抓包循环写入文件(man tcpdump基础讲解)

本文主要讲解如何通过man找到tcpdump所需的参数,并给出少量例子,具体的大家可以通过man查找。由于自己也是最近才看tcpdump,如果有什么问题,欢迎指出~。

最近项目中需要远程抓包,由于数据量比较大,防止将整个硬盘都写满了,需要循环写入功能(如共写20个文件,写完第20个后再从第1个开始写)。网上查了tcpdump的讲解的文章,可能是我搜索的关键字有问题,找到的都是类似的那几篇,没有我需要的,没办法还是自己看一下man tcpdump中的内容(虽然一开始看起来有点难,但这个是开发者写的,内容全,可结合网络上的资料一起学习)。

tcpdump man讲解

首先在终端命令行输入以下指令进入man说明文档

man tcpdump

可以看到有很多全是英文的界面(英文学习还是挺重要的。。。)

SYNOPSIS(概要)

这部分讲了tcpdump使用的参数列表,tcpdump命令的基本形式如下:

tcpdump [options] [expression]

其实expression也是option的一个,但相对特殊,所以把它分开了

DESCRIPTION(描述)

这部分简要讲了tcpdump的主要功能以及几个重要的参数。这部分写的比较全,有些可能是我们用不到的,我的总结如下(去掉了不需要的):

  • expression是个布尔表达式
  • -w参数:可以将结果保存到文件,用于之后的数据分析(我用的是wireshark进行数据分析)
  • -r参数:可以从文件读取,默认不加-r参数时是从网络获取的
  • -c参数:收到指定packets后就结束,不加时会一直接收,直到Ctrl+C关闭tcpdump

OPTIONS(选项)

这部分就是具体支持的参数了,如:

  • -i参数:指定抓包的网口
  • -C参数:指定了抓包文件的大小(单位1,000,000字节)。当文件写满后会在新打开一个文件,文件名是在-w参数指定的名字后增加后缀1,2,3……。当执行以下命令后,会生成t.pcap,t.pcap1,t.pcap2……
sudo tcpdump -i eth0 -C 1 -w t.pcap
  • -W参数:与-C参数一起使用时,可以达到循环写入文件的作用。当执行以下命令后,会生成a.pcap00,a.pcap01……
sudo tcpdump -i eth0 -C 5 -W 20  -w a.pcap
  • expression:表达式为真的包才会被抓取,无表达式时抓取所有包。以下指令表达式会只抓取源ip地址为192.168.123.120,且目的端口为9999的数据包。
sudo tcpdump -i eth0 -C 5 -W 20 -w a.pcap src host 192.168.123.120 and dst port 9999

 

你可能感兴趣的:(linux,linux,运维)