天天看點

tcpdump抓包并儲存成cap檔案

首選介紹一下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

繼續閱讀