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的緊急指針