參數
抓包參數
-c 指定抓包的數量
-i 指定抓取的接口,默認為第一個網絡接口
-n 不做主機名解析
-P:指定要抓取的包是流入還是流出的包儡遮”杀遥可以給定的值為"in"蹂随、"out"和"inout",默認為"inout"
輸出參數
-e: 輸出的每行包括源和目的mac地址
-q: 簡短打印
-X:輸出包的頭部數據岳锁,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部數據咳燕,會以16進制和ASCII兩種方式同時輸出,更詳細迟郎。
-v:當分析和打印的時候聪蘸,產生詳細的輸出
-vv:產生比-v更詳細的輸出表制。
-vvv:產生比-vv更詳細的輸出
其他功能參數
-D 列出可用于抓包的接口
-w:將抓包數據輸出到文件中而不是標準輸出
-r:從給定的數據包文件中讀取數據么介,使用"-"表示從標準輸入中讀取
表達式
表達式是一個正則表達式,tcpdump利用它作為報文的過濾條件壤短,滿足該條件的才會被捕獲
格式:proto dir type
類型type選項包含:host net port
方向dir包含:src dst
協議proto選項包含:ip慨仿、arp、rarp帘撰、tcp、udp摧找、icmp等
高級使用
AND: and or &&
OR: or or ||
except: not or !
格式
tcpdump [協議類型] [源或目標] [主機名稱或IP] [or/and/not/!條件組合] [源或目標] [主機名或IP] [or/and/not/!條件組合] [端口] [端口號]
常用例子
捕獲所有流量
tcpdump -i any
捕獲指定網卡的流量
tcpdump -i eth0
使用源和目的過濾
tcpdump src {source ip}
tcpdump dst {dest ip}
tcpdump host 192.168.1.100 //無論源或目的都可以
過濾某個子網的數據包
tcpdump net 1.2.3.0/24
過濾指定端口相關的流量
tcpdump port {port}
tcpdump src port {port} -> 只顯示發(fā)出
tcpdump portrange 22-125
過濾指定協議的流量
tcpdump tcp
基于包大小過濾流量
tcpdump less 32
tcpdump grater 64
tcpdump <=128
使用端口范圍過濾
tcpdump portrange 21-23
捕獲主機A,B之間的報文
tcpdump -i any tcp port xxx and host A and B
過濾TCP flag
過濾SYN
tcpdump -c 2 net 193.0.0.0/8 and "tcp[13] & 2 != 0"
過濾ACK
tcpdump -c 2 net 193.0.0.0/8 and "tcp[13] & 16!=0"
過濾RST
tcpdump "tcp[13] & 4!=0"
過濾FIN
tcpdump "tcp[13] & 1!=0"