tcpdump經常使用參數說明

(一)、學習tcpdump的5個參數 初次使用tcpdump時,使用tcpdump -h命令能夠看到它有數十個參數。html

根據咱們在運維工做中的經驗,掌握tcpdump如下5個參數便可知足大部分的工做須要了。運維

❶-i參數。使用-i參數指定須要抓包的網卡。若是未指定的話,tcpdump會根據搜索到的系統中狀態爲UP的最小數字的網卡肯定,通常狀況下是eth0。使用-i參數經過指定須要抓包的網卡,能夠有效的減小抓取到的數據包的數量,增長抓包的針對性,便於後續的分析工做。tcp

❷-nnn參數。使用-nnn參數禁用tcpdump展現時把IP、端口等轉換爲域名、端口對應的知名服務名稱。這樣看起來更加清晰。工具

❸-s參數。使用-s參數,指定抓包的包大小。使用-s 0指定數據包大小爲262144字節,可使得抓到的數據包不被截斷,完整反映數據包的內容。學習

❹-c參數。使用-c參數,指定抓包的數量。.net

❺-w參數。使用-w參數指定抓包文件保存到文件,以便後續使用Wireshark等工具進行分析。htm

(二)、學習tcpdump的過濾器 tcpdump提供了豐富的過濾器,以支持抓包時的精細化控制,達到減小無效信息干擾的效果。咱們經常使用的過濾器規則有下面幾個: ❶host a.b.c.d:指定僅抓取本機和某主機a.b.c.d的數據通訊。blog

❷tcp port x:指定僅抓取TCP協議目的端口或者源端口爲x的數據通訊。接口

❸icmp:指定僅抓取ICMP協議的數據通訊。ip

❹!:反向匹配,例如port ! 22,抓取非22端口的數據通訊。 以上幾種過濾器規則,可使用and或者or進行組合,例如: host a.b.c.d and tcp port x:則只抓取本機和某主機a.b.c.d之間基於TCP的目的端口或者源端口爲x的數據通訊。 tcp port x or icmp:則抓取TCP協議目的端口或者源端口爲x的數據通訊或者ICMP協議的數據通訊。

(三)、實例:

下面的例子全是以抓取eth0接口爲例,若是不加」-i eth0」是表示抓取全部的接口包括lo。
 
一、抓取包含10.10.10.122的數據包 
# tcpdump -i eth0 -vnn host 10.10.10.122
 
二、抓取包含10.10.10.0/24網段的數據包
# tcpdump -i eth0 -vnn net 10.10.10.0/24
 
三、抓取包含端口22的數據包
# tcpdump -i eth0 -vnn port 22 
 
四、抓取udp協議的數據包
# tcpdump -i eth0 -vnn  udp
 
五、抓取icmp協議的數據包
# tcpdump -i eth0 -vnn icmp
六、抓取arp協議的數據包
# tcpdump -i eth0 -vnn arp
 
七、抓取ip協議的數據包
# tcpdump -i eth0 -vnn ip
 
八、抓取源ip是10.10.10.122數據包。
# tcpdump -i eth0 -vnn src host 10.10.10.122
 
九、抓取目的ip是10.10.10.122數據包
# tcpdump -i eth0 -vnn dst host 10.10.10.122
 
十、抓取源端口是22的數據包
# tcpdump -i eth0 -vnn src port 22
 
十一、抓取源ip是10.10.10.253且目的ip是22的數據包
# tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 22
                 
十二、抓取源ip是10.10.10.122或者包含端口是22的數據包
# tcpdump -i eth0 -vnn src host 10.10.10.122 or port 22
 
1三、抓取源ip是10.10.10.122且端口不是22的數據包
[root@ ftp]# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22

1四、抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的數據包。
# tcpdump -i eth0 -vnn \( src host 10.10.10.2 and dst port 22 \) or   \( src host 10.10.10.65 and dst port 80 \)
 
1五、抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的數據包。
[root@localhost ~]# tcpdump -i  eth0 -vnn 'src host 10.10.10.59 and dst port 22' or  ' src host 10.10.10.68 and dst port 80 '
 
1六、把抓取的數據包記錄存到/tmp/fill文件中,當抓取100個數據包後就退出程序。
# tcpdump –i eth0 -vnn -w  /tmp/fil1 -c 100
 
1七、從/tmp/fill記錄中讀取tcp協議的數據包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 tcp
 
1八、從/tmp/fill記錄中讀取包含10.10.10.58的數據包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 host  10.10.10.58
 
 
相關文章
相關標籤/搜索