tcpdump抓包工具的使用說明
tcpdump是一個用於截取網絡分組,並輸出分組內容的工具。憑藉強大的功能和靈活的截取策略,使其成爲類UNIX系統下用於網絡分析和問題排查的首選工具
tcpdump 支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息
1.看是否安裝:which tcpdump
yum install -y tcpdump
2. 列出抓包的接口 :
tcpdump -D (可以看出我的機器所有可以抓包的網絡接口)
3特殊接口 any 可用於抓取所有活動的網絡接口的數據包。我們就用如下命令先對 any 接口進行抓包:
tcpdump -i any
4. -c 選項可以用於限制 tcpdump 抓包的數量:
tcpdump -i any -c 5 (抓取少量包進行分析時需要這樣)
5。上邊的示例默認將ip地址和端口號解析爲對應的接口名以及服務協議名稱,而在通常的網絡故障排查中使用ip地址和端口號更加利於分析問題:用-n顯示ip地址
,-nn顯示端口號。:
tcpdump -i any -c5 -nn
6. 理解抓取的報文:
第一個字段:抓取數據的時間 ip是網絡層協議類型 192.168.43.ssh是源ip和協議(如果用-nn)顯示的就是端口號,後邊跟着的是目的ip和端口後邊是TCP報文標記段
接下來是該數據包中數據的序列號。對於抓取的第一個數據包,該字段值是一個絕對數字,後續包使用相對數值,以便更容易查詢跟蹤。例如此處 seq 330576:330864代表該數據包包含該數據流的第 330576 到 330864 字節。
接下來是 ack 值:ack 1。該數據包是數據發送方,ack 值爲 1
接下來字段是接收窗口大小 win 309,它表示接收緩衝區中可用的字節數
最後,length 372 代表數據包有效載荷字節長度。
7. 指定抓取包的時間戳,使用選項-tttt。
tcpdump -c 10 -tttt -i eno16777736
8.把抓取的數據包存取到文件,使用-w選項。
tcpdump -c 10 -tttt -n -i eno16777736 -wtcpdump.pcap
9.讀取抓到的數據包(不能用vi讀取,只能用tcpdump讀)
Tcpdump -r a.pcap