1、抓所有網卡數據包,保存到指定路徑
tcpdump -i any -w /oemdata/123.pcap&
一、tcpdump簡介
tcpdump可以將網絡中傳送的數據包完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來去掉無用的信息。
它是一個運行在命令行下的抓包工具,適用于大多數的類Unix系統操作系統(如linux,BSD等)。類Unix系統的 tcpdump 需要使用libpcap這個捕捉數據的庫,就像 windows下的WinPcap一樣。
二、tcpdump基本命令詳解
-a 將網絡地址和廣播地址轉變成名字;
-d 將匹配信息包的代碼以人們能夠理解的匯編格式給出;
-dd 將匹配信息包的代碼以c語言程序段的格式給出;
-ddd 將匹配信息包的代碼以十進制的形式給出;
-e 在輸出行打印出數據鏈路層的頭部信息,包括源mac和目的mac,以及網絡層的協議;
-f 將外部的Internet地址以數字的形式打印出來;
-l 使標準輸出變為緩沖行形式;
-n 指定將每個監聽到數據包中的域名轉換成IP地址后顯示,不把網絡地址轉換成名字;
-nn 指定將每個監聽到的數據包中的域名轉換成IP、端口從應用名稱轉換成端口號后顯示;
-t 在輸出的每一行不打印時間戳;
-v 輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;
-vv 輸出詳細的報文信息;
-c 在收到指定的包的數目后,tcpdump就會停止;
-F 從指定的文件中讀取表達式,忽略其它的表達式;
-i 指定監聽的網絡接口;
-p 將網卡設置為非混雜模式,不能與host或broadcast一起使用
-q 快速輸出,僅列出少數的傳輸協議信息;
-S 用絕對而非相對數值列出TCP關聯數;
-r 從指定的文件中讀取包(這些包一般通過-w選項產生);
-w 直接將包寫入文件中,并不分析和打印出來;
-T 將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單網絡管理協議);
-X 告訴tcpdump命令,需要把協議頭和包內容都原原本本的顯示出來(tcpdump會以16進制和ASCII的形式顯示),這在進行協議分析時是絕對的利器;
三、tcpdump過濾命令詳解
過濾表達式大致可以分成三種,分別是“類型”、“方向”和“協議”,這三種類型的搭配組合就構成了過濾表達式。
類型的關鍵字:主要包括host,net,port。
例如:host 192.168.11.11,指定主機 192.168.11.11;net 192.168.1.0 指明192.168.1.0是一個網絡地址;port 21 指明端口號是21。
如果沒有指定類型,缺省的類型是host。
方向的關鍵字:主要包括src, dst ,dst or src,dst and src。
例如:src 192.168.11.11 ,指明數據包中源地址是192.168.11.11;dst net 192.168.1.0指明目的網絡地址是 192.168.1.0。
如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。
協議的關鍵字:主要包括 ether,ip,arp,rarp,tcp,udp等協議。
如果沒有指定任何協議,則tcpdump將會監聽所有協議的數據包。
除了這三種類型的關鍵字外,其他重要的關鍵字如下:
gateway,broadcast,less,greater;
還有三種邏輯運算:非運算是 'not ’ ‘! ‘;與運算是’and’ ‘&&’;或運算是’or’ ‘||’。
四、tcpdump使用實例
在rmnet_data1網卡上監聽與主機157.122.73.15之間的通信,結果保存在/oemdata/1234.pcap文件。
tcpdump -i rmnet_data1 host 157.122.73.15 -w /oemdata/1234.pcap&