tcpdump抓包命令
简介:tcpdump是一个可以根据需求来抓取网络上传输的数据包的工具
常用的命令选项有:
-c count
// count表示数量。抓取数据包的数量达到count后结束命令,如果不使用-c 参数,会不停的抓取数据包,直到手动停止
-C file_size // -C 10:每10M保存一个包
// 抓取数据包保存到文件时,通过该命令指定文件的大小。文件达到指定大小后,会创建一个在原文件名称后面加上序号的新文件,如:dump.txt,dump.txt1。file_size的单位是b
-D // 列出服务器所有网卡。tcpdump默认监听的是编号最小的那个网卡,一般是eth0。在进行抓包时可以通过 -i 参数指定监听的网卡,any表示监听所有网卡
-s:截取报文的内容,默认截取96字节,-s0表示截取全部
-G 600:每10分钟保存一个包
-i interfaces
// 指定监听的网卡名称,any表示监听所有的网卡
-n
// 输出结果中,不把ip转换成主机名(默认显示的是主机名)
-q
// 快速输出,只输出简要的数据包信息
-r file
// 从文件中获取数据包,不再从网络获取数据包
-t
// 不输出时间戳
-w file
// 将抓取的数据包保存到文件,-r 参数可以从文件中读取数据包
-W filecount
// 指定文件的数量,当文件滚动到指定数量后会从第一个文件开始覆盖
过滤的参数规则:
-host // 过滤主机,如 tcpdump host 192.168.1.110 只抓取经过这个ip的数据包
-src // 用来过滤请求来源方的参数,如:tcpdump src host 192.168.1.110 只抓取从这个ip过来的数据包
-dst // 用来过滤请求接收方的参数,如:tcpdump dst host 192.168.1.110 只抓取发送到这个ip的数据包
-port // 过滤端口,如:tcpdump port 8080 只抓取经过8080端口的数据包
-net // 过滤网络,如:tcpdump net 192.168 只抓取经过这个网段的数据包
连接运算符
and:所有的条件都满足
or:只要满足一个条件
not:取反,也可以用!
例子:
1、抓取主机172.0.0.1的eth0网口的8080、8081端口传输的数据包并保存文件
tcpdump -i eth0 -s0 port 8080 or port 8081 host 172.0.0.1 -w 1.pcap
2、按 crtl+c 停止抓包,当前目录会生成一个1.pcap文件
3、简单查看数据包内容
tcpdump -r 1.pcap
注:一般对抓取的数据包用Wireshark工具进行分析