首選介紹一下tcpdump的常用參數
tcpdump采用指令行方式,它的指令格式為:
tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 檔案名 ]
[ -i 網絡接口 ] [ -r 檔案名] [ -s snaplen ]
[ -T 類型 ] [ -w 檔案名 ] [表達式 ]
1. tcpdump的選項介紹
-a 将網絡位址和廣播位址轉變成名字;
-d 将比對資訊包的代碼以人們能夠了解的彙編格式給出;
-dd 将比對資訊包的代碼以c語言程式段的格式給出;
-ddd 将比對資訊包的代碼以十進制的形式給出;
-e 在輸出行列印出資料鍊路層的頭部資訊;
-f 将外部的Internet位址以數字的形式列印出來;
-l 使标準輸出變為緩沖行形式;
-n 不把網絡位址轉換成名字;
-t 在輸出的每一行不列印時間戳;
-v 輸出一個稍微詳細的資訊,例如在ip包中可以包括ttl和服務類型的資訊;
-vv 輸出詳細的封包資訊;
-c 在收到指定的包的數目後,tcpdump就會停止;
-F 從指定的檔案中讀取表達式,忽略其它的表達式;
-i 指定監聽的網絡接口;
-r 從指定的檔案中讀取包(這些包一般通過-w選項産生);
-w 直接将包寫入檔案中,并不分析和列印出來;
-T 将監聽到的包直接解釋為指定的類型的封包,常見的類型有rpc(遠端過程
調用)和snmp(簡單網絡管理協定;)
當網絡出現故障時,由于直接用tcpdump抓包分析有點困難,而且當網絡中資料比較多時更不容易分析,使用tcpdump的-w參數+ethereal分析會很好的解決這個問題,具體參數如下:
tcpdump -i eth1 -c 2000 -w eth1.cap
-i eth1 隻抓eth1口的資料
-c 2000代表資料包的個數,也就是隻抓2000個資料包
-w eth1.cap 儲存成cap檔案,友善用ethereal分析
抓完資料包後ftp到你的FTP伺服器,put一下,然後用ethereal軟體打開就可以很直覺的分析了
注:有時将.cap檔案上傳到FTP伺服器後,發現用ethreal打開時提示資料包大于65535個,這是你在ftp上傳或者下載下傳的時候沒有用bin的模式上傳的原因。
另:有的網站提示在tcpdump中用-s 0指令,例如 tcpdump -i eth1 -c 2000 -s0 -w eth1.cap,可實際運作該指令時系統卻提示無效的參數,去掉-s 0參數即可
例子:
[root@localhost cdr]# tcpdump host 58.240.72.195 -s 60000 -w x.cap
本文轉自gaodi2002 51CTO部落格,原文連結:http://blog.51cto.com/gaodi2002/1618253