tcpdump命令总结
1、tcpdump常用參數說明
?-i參數。使用-i參數指定需要抓包的網卡。如果未指定的話,tcpdump會根據搜索到的系統中狀態為UP的最小數字的網卡確定,一般情況下是eth0。使用-i參數通過指定需要抓包的網卡,可以有效的減少抓取到的數據包的數量,增加抓包的針對性,便于后續的分析工作。
?-nnn參數。使用-nnn參數禁用tcpdump展示時把IP、端口等轉換為域名、端口對應的知名服務名稱。這樣看起來更加清晰。
?-s參數。使用-s參數,指定抓包的包大小。使用-s 0指定數據包大小為262144字節,可以使得抓到的數據包不被截斷,完整反映數據包的內容。
?-c參數。使用-c參數,指定抓包的數量。
?-w參數。使用-w參數指定抓包文件保存到文件,以便后續使用Wireshark等工具進行分析。
2、常用過濾規則
?host a.b.c.d:指定僅抓取本機和某主機a.b.c.d的數據通信。
?tcp port x:指定僅抓取TCP協議目的端口或者源端口為x的數據通信。
?icmp:指定僅抓取ICMP協議的數據通信。
?!:反向匹配,例如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協議的數據通信。
3、實例:
下面的例子全是以抓取eth0接口為例,如果不加”-i eth0”是表示抓取所有的接口包括lo。
1、抓取包含10.10.10.122的數據包
# tcpdump -i eth0 -vnn host 10.10.10.1222、抓取包含10.10.10.0/24網段的數據包
# tcpdump -i eth0 -vnn net 10.10.10.0/243、抓取包含端口22的數據包
# tcpdump -i eth0 -vnn port 224、抓取udp協議的數據包
# tcpdump -i eth0 -vnn udp5、抓取icmp協議的數據包
# tcpdump -i eth0 -vnn icmp6、抓取arp協議的數據包
# tcpdump -i eth0 -vnn arp7、抓取ip協議的數據包
# tcpdump -i eth0 -vnn ip8、抓取源ip是10.10.10.122數據包。
# tcpdump -i eth0 -vnn src host 10.10.10.1229、抓取目的ip是10.10.10.122數據包
# tcpdump -i eth0 -vnn dst host 10.10.10.12210、抓取源端口是22的數據包
# tcpdump -i eth0 -vnn src port 2211、抓取源ip是10.10.10.253且目的ip是22的數據包
# tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 2212、抓取源ip是10.10.10.122或者包含端口是22的數據包
# tcpdump -i eth0 -vnn src host 10.10.10.122 or port 2213、抓取源ip是10.10.10.122且端口不是22的數據包
[root@ ftp]# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 2214、抓取源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 \)15、抓取源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 '16、把抓取的數據包記錄存到/tmp/fill文件中,當抓取100個數據包后就退出程序。
# tcpdump –i eth0 -vnn -w /tmp/fil1 -c 10017、從/tmp/fill記錄中讀取tcp協議的數據包
# tcpdump –i eth0 -vnn -r /tmp/fil1 tcp18、從/tmp/fill記錄中讀取包含10.10.10.58的數據包
# tcpdump –i eth0 -vnn -r /tmp/fil1 host 10.10.10.58總結
以上是生活随笔為你收集整理的tcpdump命令总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: curl与tcpdump命令
- 下一篇: Objective-C 中的类和对象