centos 使用tcpdump抓包

  tcpdump -i bond0 -C 500 -w ./142_1710.cap

  tcpdump -nnvv -i eth0 host 192.168.1.100 -c 100 (抓对端的包,测试B到A的数据是否到达,应该在A端执行命令,host_ip是B的ip:192.168.1.100)

  /sbin/tcpdump -i bond0 -nnvv '(tcp port 22) and host 192.168.1.100 and (192.168.2.2 or 192.168.2.3 or 192.168.2.4)' -G 3600 -w `hostname -i`_%Y%m%d_%H%M%S.pcap

-i 指定 网卡

-w 保存到指定文件

-C file-size (nt: 此选项用于配合-w file 选项使用)

-c n 后面跟一个整数n,代表个数,收到n个包之后,就停止进行倾倒操作。

  该选项使得tcpdump 在把原始数据包直接保存到文件中之前, 检查此文件大小是否超过file-size. 


如果超过了, 将关闭此文件,另创一个文件继续用于原始数据包的记录. 新创建的文件名与-w 选项指定的文件名一致, 但文件名后多了一个数字.


该数字会从1开始随着新创建文件的增多而增加.


file-size的单位是百万字节(nt: 这里指1,000,000个字节,并非1,048,576个字节, 后者是以1024字节为1k, 1024k字节为1M计算所得, 即1M=1024 * 1024 = 1,048,576)

-n 不解析主机名,抓到的包里面直接是ip地址

-v 显示详细结果

-G 每隔多少秒轮询另外一个文件(比如我举得例子是3600 ,也就是每隔3600s,就自动分割保存到另外一个文件中),必须结合 -w参数使用,而且-w后面跟的文件名,一定要用时间戳,如果指定固定的文件名,每隔3600s,就会覆盖你指定的文件内容

and 多个过滤条件,多个条件最好是用单引号引用起来,括号的优先级较高

or 或者的关系

host 抓取指定ip的包

tcp 指定抓取的协议,如果需要指定端口,后跟port + 端口号

我举得例子的意思是抓取 主机192.168.1.100通过tcp 22端口和 192.168.2.2/3/4 任意一台的包,此处没有指定src dst,只要是通过 192.168.1.100 tcp 22端口的这三个主机的包都会抓到,如果指定源目的主机,就会限制方向





参考文档
https://www.cnblogs.com/ct20150811/p/9431976.html