2009年2月18日

Linux 環境下,利用Wireshark或Tcpdump擷取封包

在這邊我們利用 Wireshark 跟 Tcpdump 兩種方式來抓封包,觀看問題

法1: 使用 Wireshark的文字版 tshark

語法 tshark -i -f
Ex. 抓預設 eth0 的 80 Port 的封包
# tshark -i eth0 -f "tcp port 80"

Ex. 看 eth1 並標準化時間,然後只抓有關於 203.67.21.33 並儲存在 /tmp/test.pcap ,同時也即時show在螢幕上
# tshark -i eth1 -t ad host 203.67.21.33 -w /tmp/test.cap -S

Ex. 讀取封包
#tshark -r /tmp/test.cap

Ex. 讀取並過濾封包,只要看 sip 號碼是 070123456 的並存檔為 070123456.cap
tshark -r dhcp_0120_1737_1807.cap.gz -R "sip contains 070123456" -w 070123456.cap


此外wireshark有內建許多統計功能,只要使用 -z 選項配合相關的參數使用,例如要看packet summary,只要使用 tshark -z io,stat,1 -q -n -i eth0,然後再搭配shell與RRD等,就可以畫出統計圖表。

法2: 使用 Tcpdump

Ex.抓封包
# tcpdump -i eth0 -w abc.cap

Ex. 抓封包,分割每個儲存的封包(size 1500bytes)
# tcpdump -i eth0 -s 1500 -w a.cap

Ex. 讀封包
# tcpdump -r abc.cap

P.S 大部分抓封包都需切換成 Root 權限才能使用

沒有留言: