tcpdump能帮助咱们捕捉并保存网络包,保存下来的网络包可用于分析网络负载状况,包可经过tcpdump命令解析,也能够保存成后缀为pcap的文件,使用wireshark等软件进行查看。linux
如下将给出9个使用tcpdump的例子,以说明tcpdump的具体使用方法。网络
1.针对特定网口抓包(-i选项)tcp
当咱们不加任何选项执行tcpdump时,tcpdump将抓取经过全部网口的包;使用-i选项,咱们能够在某个指定的网口抓包:ide
linux:/tmp/lx # tcpdump -i eth0
以上例子中,tcpdump抓取全部经过eth0的包。工具
2.抓取指定数目的包(-c选项)spa
默认状况下tcpdump将一直抓包,直到按下”ctrl+c”停止,使用-c选项咱们能够指定抓包的数量:code
linux:/tmp/lx # tcpdump -c 2 -i eth0
以上例子中,只针对eth0网口抓2个包。blog
3.将抓到包写入文件中(-w选项)ip
使用-w选项,咱们可将抓包记录到一个指定文件中,以供后续分析域名
linux:/tmp/lx # tcpdump -w 20120606.pcap -i eth0
应当保存为.pcap后缀的文件,方便咱们使用wireshark等工具读取分析。
4.读取tcpdump保存文件(-r选项)
对于保存的抓包文件,咱们能够使用-r选项进行读取:
linux:/tmp/lx # tcpdump -r 20120606.pcap
5.抓包时不进行域名解析(-n选项)
默认状况下,tcpdump抓包结果中将进行域名解析,显示的是域名地址而非ip地址,使用-n选项,可指定显示ip地址。
6.增长抓包时间戳(-tttt选项)
使用-tttt选项,抓包结果中将包含抓包日期:
linux:/tmp/lx # tcpdump -n -tttt -i eth0
7.指定抓包的协议类型
咱们能够只抓某种协议的包,tcpdump支持指定如下协议:ip,ip6,arp,tcp,udp,wlan等。如下例子只抓取arp协议的包:
linux:/tmp/lx # tcpdump -i eth0 arp
8.指定抓包端口
若是想要对某个特定的端口抓包,能够经过如下命令:
linux:/tmp/lx # tcpdump -i eth0 port 22
9.抓取特定目标ip和端口的包
网络包的内容中,包含了源ip地址、端口和目标ip、端口,咱们能够根据目标ip和端口过滤tcpdump抓包结果,如下命令说明了此用法:
linux:/tmp/lx # tcpdump -i eth0 dst 10.70.121.92 and port 22