天天看點

tcpdump工具的使用方法與常見選項

Linux作為網絡伺服器,特别是作為路由器和網關時,資料的采集和分析是不可少的。

TcpDump是Linux中強大的網絡資料采集分析工具之一。

TcpDump可以将網絡中傳送的資料包完全截獲下來提供分析。它支援針對網絡層、協定、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的資訊。

常用選項

常用選項 具體含義
-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(簡單網絡管理協定)

常用的執行個體

1、預設啟動-tcpdump

普通情況下,直接啟動tcpdump将監視第一個網絡接口上所有流過的資料包:

tcpdump工具的使用方法與常見選項

2、監視指定網絡接口的資料包(-i)

舉例:tcpdump抓取所有通過eth0的包

指令:tcpdump -i eth0

tcpdump工具的使用方法與常見選項

注意:如果不指定網卡,預設tcpdump隻會監視第一個網絡接口,一般是eth0。

3、抓取指定數目的包(-c)

舉例:隻針對eth0網口抓5個包。

指令:tcpdump -c 5 -i eth0

tcpdump工具的使用方法與常見選項

4、将抓到的包寫入檔案中(-w)

舉例:将抓包記錄到一個指定的檔案中

指令:tcpdump -w tcpdump.pcap -i eth0

tcpdump工具的使用方法與常見選項

5、讀取tcpdump儲存檔案(-r)

對于儲存的抓封包件,可以使用-r選項進行讀取。

舉例:tcpdump -r tcpdump.pcap

tcpdump工具的使用方法與常見選項

6、抓包時不進行域名解析(-n)

預設情況下,tcpdump抓包結果中将進行域名解析,顯示的是域名位址,而不是IP位址,而使用-n選項,可以指定顯示IP位址。

tcpdump工具的使用方法與常見選項

7、增加抓包時間戳(-tttt)

使用-tttt選項,抓包結果将包含抓包日期。

舉例:tcpdump -n -tttt -i eth0

tcpdump工具的使用方法與常見選項

不顯示時間戳(-t)

tcpdump工具的使用方法與常見選項

8、指定抓包協定類型

tcpdump支援指定協定類型有:ip,ip6,arp,tcp,udp,wlan等。

tcp ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾資料報的類型

舉例:抓取arp協定的包。

指令:tcpdump arp -i eth0

tcpdump工具的使用方法與常見選項

9、監視指定主機的資料包

例如:截獲所有210.27.48.1 的主機收到的和發出的所有的資料包

指令:tcpdump host 210.27.48.1

tcpdump工具的使用方法與常見選項

10、監視指定主機和端口的資料包

舉例:如果想要擷取主機210.27.48.1接收或發出的telnet包,使用如下指令