1.抓包另存为文件
tcpdump -i xgbe0 -s 0 -w /tmp/tmp.pcap
-s 设置数据报截取长度,默认68字节,去掉这个限制加上-s 0即可
2.抓包可视化ascii显示
tcpdump -i xgbe0 -s 0 -A
tcpdump -i xgbe0 -s 0 -X
此处结合grep命令会很强大,比如要抓某一类http 请求的包
tcpdump -i xgbe0 -s 0 -X | grep ulog
3.限定来源ip,抓取目标ip是10.98.34.67的包
tcpdump -i xgbe0 -s 0 dst host 10.98.34.67
第一种是关于类型的关键字,主要包括host,net,port,例如 host 210.27.48.2, 指明 210.27.48.2是一台主机,net 202.0.0.0指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。
第二种是确定传输方向的关键字,主要包括src,dst,dst or src,dst and src, 这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是 210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明 方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI (分布式光纤数据接口网络)上的特定的网络协议,实际上它是”ether”的别名,fddi和ether 具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。 其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump 将会 监听所有协议的信息包。
tcpdump -i eth1 -s 0 | grep -v relay | grep -v -P 'ns\d' | grep -v matrix | grep -v img1 | grep -v noah | grep -v afs | grep -v '10.36.5.250' | grep -v 'zk01' | grep -v bvc | grep -v 'inf-ssl'