tcpdump的使用以及引數詳解

2022-06-10 07:24:10 字數 3295 閱讀 6458

平時分析客戶端和伺服器網路互動的問題時,很多情況下需要在客戶端和伺服器抓包分析報文

一般win下抓包使用wireshark即可,但是linux下就需要用到tcpdump了,下面是一些對於tcpdump的使用說明。

tcpdump可以將網路傳送的資料報的"頭"截獲下來提供分析。

它支援針對網路層,協議,主機,網路或埠的過濾,並提供and,or,not等邏輯語句幫助你過濾無用資訊。

一. 基本使用

關鍵字使型別:

第一種是關於型別的關鍵字,主要包括

host, net, port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主機,net 202.0.0.0 指明 202.0.0.0是乙個網路位址,port 23 指明埠號是23。如果沒有指定型別,預設的型別是host.

第二種是確定傳輸方向的關鍵字,主要包括

src , dst , dst or src, dst and src,這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.48.2 ,指明ip包中源位址是210.27.48.2 , dst net 202.0.0.0 指明目的網路位址是202.0.0.0 。如果沒有指明方向關鍵字,則預設是src or dst關鍵字。

第三種是協議的關鍵字,主要包括

fddi, ip, arp, rarp, tcp, udp等型別。fddi指明是在fddi(分布式光纖資料介面網路)上的特定 的網路協議,實際上它是"ether"的別名,fddi和ether具有類似的源位址和目的位址,所以可以將fddi協議包當作ether的包進行處理 和 分析。其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的資訊包。

tcpdump

–i eth0 -vnn -w /tmp/fil1 -c 100

把抓取的資料報記錄存到/tmp/fill檔案中,當抓取100個資料報後就退出程式。

tcpdump

i eth0 -vnn -r /tmp/fil1 tcp

從/tmp/fill記錄中讀取tcp協議的資料報

tcpdump

i eth0 -vnn -r /tmp/fil1 host 10.10.10.58

從/tmp/fill記錄中讀取包含10.10.10.58的資料報

二. 引數詳解:

-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

一起使用

-p

指定要抓取的包是流入還是流出的包。可以給定的值為

"in"

、"out"

和"inout"

,預設為

"inout"

-r

從指定的檔案中讀取包

(這些包一般通過

-w選項產生

)-w

直接將包寫入檔案中,並不分析和列印出來

-t

將監聽到的包直接解釋為指定的型別的報文,常見的型別有

rpc

(遠端過程呼叫)和

snmp

(簡單網路管理協議)

-x需要把協議頭和包內容都原原本本的顯示出來(

tcpdump

會以16

進製和ascii

的形式顯示),這在進行協議分析時是絕對的利器。

-xx當分析和列印時

,tcpdump會列印每個包的頭部資料

, 同時會以

16進製制和

ascii

碼形式列印出每個包的資料

,

其中包括資料鏈路層的頭部

.這對於分析一些新協議的資料報很方便. 

CMFCColorButton的使用以及重繪

cmfccolorbutton是visual studio 2008 sp1版本以上提供的顏色採集器。系統環境 windows 7 程式設計環境 visual studio 2008 sp1 下面介紹下使用步驟 1.新建基於對話方塊的工程,名稱為mycolorbuttondemo 2.拖動乙個按鈕到...

NSSortDescriptor使用以及陣列排序

nssortdescriptor 指定用於物件陣列排序的物件的屬性。物件可能是字典,這種情況就是對字典陣列排序 如果是employee物件需要按照name來排序,就生成下面的descriptor nssortdescriptor descriptor nssortdescriptor sortdes...

linux shutdown命令以及引數詳解

在說shutdown命令之前 先說一下sync命令 sync 將記憶體中尚未寫入硬碟的資料寫入硬碟 因為linux為了保證資料讀寫速度,把常用的資料放在記憶體中,不會立即寫入硬碟,如果有不當關機,這些資料就會丟失 所以在執行shutdown reboot之類的命令之前,應當多執行幾次sync命令來保...