tcpdump 必須使用 root 的身份執行
[root@linux ~]# tcpdump [-nn] [-i 接口] [-w 儲存檔名] [-c 次數] [-Ae][-qX] [-r 檔案] [所欲擷取的數據內容] 參數:
-nn:直接以 IP 及 port number 顯示,而非主機名與服務名稱
-i :後面接要『監聽』的網絡接口,例如 eth0, lo, ppp0 等等的界面;
-w :如果你要將監聽所得的封包數據儲存下來,用這個參數就對了!後面接檔名 -c :監聽的封包數,如果沒有這個參數, tcpdump 會持續不斷的監聽, 直到使用者輸入 [ctrl]-c 爲止。
-A :封包的內容以 ASCII 顯示,通常用來捉取 WWW 的網頁封包資料。 -e :使用資料連接層 (OSI 第二層) 的 MAC 封包數據來顯示; -q :僅列出較爲簡短的封包信息,每一行的內容比較精簡
-X :可以列出十六進制 (hex) 以及 ASCII 的封包內容,對於監聽封包內容很有用 -r :從後面接的檔案將封包數據讀出來。那個『檔案』是已經存在的檔案, 並且這個『檔案』是由 -w 所製作出來的。
所欲擷取的數據內容:我們可以專門針對某些通訊協議或者是 IP 來源進行封包擷取, 那就可以簡化輸出的結果,並取得最有用的信息。常見的表示方法有: 'host foo', 'host 127.0.0.1' :針對單部主機來進行封包擷取 'net 192.168' :針對某個網域來進行封包的擷取;
'src host 127.0.0.1' 'dst net 192.168':同時加上來源(src)或目標(dst)限制 'tcp port 21':還可以針對通訊協議偵測,如 tcp, udp, arp, ether 等 還可以利用 and 與 or 來進行封包數據的整合顯示呢
只監聽80端口
[root@linux ~]# tcpdump -nn port 80
只監聽一臺主機
[root@linux ~]# tcpdump –nn host 121.9.240.130
監聽端口
#tcpdump port 9995
3.2 指定保存抓包結果的文件
tcpdump -i eth2 –w mstu2ether2.cap
3.3 抓完整的RTP包
tcpdump -i eth2 –w mstu2ether2.cap –s 0
“-s 0”指定抓的是完整的數據包,否則以64字節截斷。對於MSTU上的RTP抓包,這個參數會保留所有TS數據包,故重要。