tcpdump 詳解(乾貨)

經常使用命令

1. tcpdump -i eth0 ; 監聽網卡
2. tcpdump host 210.27.48.1 ; 收到或發出的數據包
3. tcpdump -i eth0 src host www.baidu.com
4. tcpdup -i eth0 dst host www.baidu.com
5. tcpdump -i eth0 net 192.149
6. tcpdump -i eho0 ether src 9a:e3:a3:d3:d3:d2 抓取MAC地址的包
-c 1000 指定抓1000個包
-w /file/test.cap 保存起來,用wireshark分析
-e 在輸出行打印出數據鏈路層的頭部信息。
-s 限制包的大小長度,默認96個節點,-s 0 不作限制
-n 不作將IP和端口解析成主機名與服務名,好比3306表明mysql
-vv 輸出詳細的報文信息。

報文解析

通常是用-X
好比如下命令
tcpdump -i lo0 port 3306 -s 0 -X -c 4   下面是在MAC下的輸出結果:
09:06:15.104493 IP localhost.mysql > localhost.63988: Flags [.], ack 2240182754, win 12759, length 0
	0x0000:  4500 0028 5ded 0000 4006 0000 7f00 0001  E..(]...@.......
	0x0010:  7f00 0001 0cea f9f4 521e 0ca5 8586 79e2  ........R.....y.
	0x0020:  5010 31d7 fe1c 0000                      P.1.....
09:06:15.104557 IP localhost.63988 > localhost.mysql: Flags [.], ack 1, win 12756, options [nop,nop,TS val 848191995 ecr 848090015], length 0
	0x0000:  4500 0034 0000 4000 4006 0000 7f00 0001  E..4..@.@.......
	0x0010:  7f00 0001 f9f4 0cea 8586 79e2 521e 0ca6  ..........y.R...
	0x0020:  8010 31d4 fe28 0000 0101 080a 328e 61fb  ..1..(......2.a.
	0x0030:  328c d39f                                2...
09:06:16.106248 IP localhost.mysql > localhost.63988: Flags [.], ack 1, win 12759, length 0
	0x0000:  4500 0028 daa4 0000 4006 0000 7f00 0001  E..(....@.......
	0x0010:  7f00 0001 0cea f9f4 521e 0ca5 8586 79e2  ........R.....y.
	0x0020:  5010 31d7 fe1c 0000                      P.1.....
09:06:16.106305 IP localhost.63988 > localhost.mysql: Flags [.], ack 1, win 12756, options [nop,nop,TS val 848192996 ecr 848090015], length 0
	0x0000:  4500 0034 0000 4000 4006 0000 7f00 0001  E..4..@.@.......
	0x0010:  7f00 0001 f9f4 0cea 8586 79e2 521e 0ca6  ..........y.R...
	0x0020:  8010 31d4 fe28 0000 0101 080a 328e 65e4  ..1..(......2.e.
	0x0030:  328c d39f

時間戳104493 分析:mysql

4500 0028  這個是IP報文頭的第1-4字節,4 表明IP4,5表明首部長是20字節,IP的首度長每加1表明加一行,一行等於4個字節,00表明8位服務類型,28表明總長度,這裏是40,減掉首度長度20,那麼IP的內容只有20字節正好等於TCP的首度長度。說明TCP不包含數據
5ded 0000 5ded表明16位標識,惟一值,0000 表明3位標與13偏移,這裏不偏移。
4006 0000 40表明8位TTL,這裏是64,06表明協議,6表示TCP,17表UDP 1 ICMP 2IGMP,0000表明首部校驗和。
7f00 0001 表明IP源址,這裏是127.0.0.1
7f00 0001 表明目的IP地址,這裏是127.0.0.1
0cea f9f4 0cea 表明TCP的源端口,這裏是3306,f9f4 表明目的端口,這裏是63988
521e 0ca5 這個表明TCP的32位序號
8586 79e2 這個表明TCP的確認序號
5010 31d7  5表明TCP首部長度,10的二進制是 00010000,後面6位分別是URG,ACK,PSH,RST,SYN,FIN 這裏只有ACK標誌,31d7表明16窗口大小,這裏是12759。
fe1c 0000 fe1c表明16檢驗和,0000表明TCP的緊急指針
相關文章
相關標籤/搜索