Tcpdump工具是Unix和linux系統抓網絡數據庫包最有效的工具,windows上類似的工具是wireshark。 tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。另外tcpdump可以導入的文件中,可以進一步使用wireshark和java代碼進一步統計過濾分析。該命令需要root權限,命令會自動把網卡設置為混雜(promiscuous)狀態
1,Tcpdump常用命令:
監聽某個網卡
tcpdump -i bond0
顯示和某主機192.168.0.1通信的數據包
tcpdump host 192.168.0.1
源地址和目的地址,特殊端口的數據包
tcpdump src 192.168.1.100 and dst192.168.1.2 and port ftp
查看udp數據包
tcpdump udp
查看數據包的內容
tcpdump -A
相關數據包寫入某文件
tcpdump -w /tmp/tcpdump.cap
2,TCPDUMP應用案例
tcpdump不僅可以處理日常網絡相關問題問題,還可用於分析數據庫問題,用於數據庫調優
案例1:客戶端(192.168.15.14)突然不能訪問sql server數據庫(192.168.15.14)
1,windows端使用wireshark抓到的報文,通過報文顯示,SQLSERVER服務器端已經收到了ack請求,並把確認了相關請求(ACK=1),但是客戶端都沒有到確認請求
10:51:21.102439 IP (tos 0x10, ttl 60, id 45670, offset 0, flags [DF], length:44) yytlc.50162 > 192.168.15.14.ms-sql-s: S [tcp sum ok]616881461:616881461(0) win 65535 <mss 1460>
10:51:23.750271 IP (tos 0x10, ttl 60, id 45768, offset 0, flags [DF], length:44) yytlc.50162 > 192.168.15.14.ms-sql-s: S [tcp sum ok]616881461:616881461(0) win 65535 <mss 1460>
10:51:29.943904 IP (tos 0x10, ttl 60, id 45971, offset 0, flags [none], length:44) yytlc.50162 > 192.168.15.14.ms-sql-s: S [tcp sum ok]616881461:616881461(0) win 65535 <mss 1460>
10:51:42.045897 IP (tos 0x10, ttl 60, id 46849, offset 0, flags [none], length:44) yytlc.50162 > 192.168.15.14.ms-sql-s: S [tcp sum ok]616881461:616881461(0) win 65535 <mss 1460>
14309 23.459236000 192.168.1.219 192.168.15.14 TCP 60 50162 > ms-sql-s [SYN] Seq=0 Win=65535Len=0 MSS=1460
14310 23.459330000 192.168.15.14 192.168.1.219 TCP 58 ms-sql-s > 50162 [SYN, ACK] Seq=0 Ack=1Win=8192 Len=0 MSS=1460
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-11/93200p2.htm