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