平時分析客戶端和伺服器網路互動的問題時,很多情況下需要在客戶端和伺服器抓包分析報文。
一般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命令來保...