通常,在分析客戶端和服務器之間的網(wǎng)絡交互時,很多情況下需要捕獲數(shù)據(jù)包,分析客戶端和服務器之間的消息。
Win中一般可以用WireShark來捕獲包,但是Linux中需要tcpdump。以下是使用tcpdump的一些說明。
Tcpdump可以截取網(wǎng)絡傳輸?shù)臄?shù)據(jù)包的“頭”進行分析。
它支持對網(wǎng)絡層、協(xié)議、主機、網(wǎng)絡或端口進行過濾,并提供邏輯語句(如和、或)來幫助您過濾無用信息。
一、基本用途
關鍵字構(gòu)成類型:
第一個是關于類型的關鍵詞,主要包括主機、網(wǎng)絡和端口。例如,主機210.27.48.2表示210.27.48.2是主機,網(wǎng)絡202.0.0.0表示202.0.0是網(wǎng)絡地址,端口23表示端口號為23。如果未指定類型,默認類型為主機。
第二,決定傳播方向的關鍵詞主要有src、dst、dst或src、dst、src,它們表示傳播方向。例如,src 210.27.48.2表示ip數(shù)據(jù)包中的源地址是210.27.48.2,dstnet202.0.0.0表示目的網(wǎng)絡地址是202.0.0.0。如果沒有方向關鍵字,默認為src或dst關鍵字。
第三是協(xié)議的關鍵詞,主要包括fddi、ip、arp、rarp、tcp、udp等類型。Fddi是指fddi(分布式光纖數(shù)據(jù)接口網(wǎng)絡)上的特定網(wǎng)絡協(xié)議。其實是“以太”的別名。fddi和ether具有相似的源地址和目的地址,因此FDDI協(xié)議數(shù)據(jù)包可以作為ether數(shù)據(jù)包進行處理和分析。其他關鍵字表示受監(jiān)控數(shù)據(jù)包的協(xié)議內(nèi)容。如果沒有指定協(xié)議,tcpdump將偵聽所有協(xié)議的數(shù)據(jù)包。
違約
工具
監(jiān)控流經(jīng)第一個網(wǎng)絡節(jié)點的所有數(shù)據(jù)包。
監(jiān)控指定的網(wǎng)絡接口
tcpdump -i etp
監(jiān)控指定主機的數(shù)據(jù)包
tcpdump主機cas1
監(jiān)控進出cas1的所有數(shù)據(jù)包
tcpdump主機10.10.10.1
當然也可以指定IP
tcpdump -i eth0 src主機cas1
攔截主機cas1發(fā)送的所有數(shù)據(jù)
tcpdump -i eth0 dst主機cas1
監(jiān)控發(fā)送到主機cas1的所有數(shù)據(jù)
指定端口
tcpdump tcp端口23和主機cas1
獲取與主機cas1交互的所有telnet數(shù)據(jù)包
tcpdump udp端口123
監(jiān)控本機UDP的ntp服務端口
tcpdump -i eth0 -vnn src主機10.10.10.122而非端口22
獲取源ip為10.10.10.122且端口不是22的數(shù)據(jù)包
tcpdump -i eth0 -vnn ( src主機10.10.10.2和dst端口22)或(src主機10.10.10.65和dst端口80)
tcpdump -i eth0 -vnn 'src主機10.10.10.2和dst端口22 '或' src主機10.10.10.65和dst端口80 '
抓取源ip為10.10.10.2,目的端口為22,或者源ip為10.10.10.65,目的端口為80的數(shù)據(jù)包。
指定一個網(wǎng)段
tcpdump-I et h0-vnn net 10 . 10 . 10 . 0/24
獲取包含10.10.10.0網(wǎng)段的數(shù)據(jù)包
抓取icmp協(xié)議數(shù)據(jù)包
tcpdump -i eth0 -vnn icmp
獲取消息并將其保存到文件中
tcpdump–I eth 0-vnn-w/tmp/fil 1-c 100
將捕獲的數(shù)據(jù)包記錄保存在/tmp/fill文件中,捕獲100個數(shù)據(jù)包后退出程序。
TCP dump–I eth 0-vnn-r/tmp/fil 1 TCP
從/tmp/fill記錄中讀取tcp數(shù)據(jù)包
tcpdump–I eth 0-vnn-r/tmp/fil 1主機10.10.10.58
從/tmp/fill記錄中讀取包含10.10.10.58的數(shù)據(jù)包
二.參數(shù)的詳細說明:
[構(gòu)成動植物的古名或拉丁化的現(xiàn)代名]
將網(wǎng)絡地址和廣播地址轉(zhuǎn)換成名稱
-d
匹配包的代碼以人們能夠理解的匯編格式給出
-dd
匹配信息包的代碼以C語言程序段的形式給出
-ddd
以十進制形式給出匹配包的代碼
-e
在輸出行打印數(shù)據(jù)鏈路層的報頭信息,包括源mac和目的mac,以及網(wǎng)絡層的協(xié)議
-f
以數(shù)字的形式打印出外部互聯(lián)網(wǎng)地址
-l
制作標準輸出緩沖線形式
同-EN
指定將每個被監(jiān)控數(shù)據(jù)包中的域名轉(zhuǎn)換為IP地址后顯示,網(wǎng)絡地址不轉(zhuǎn)換為名稱
-nn
指定將每個受監(jiān)控數(shù)據(jù)包中的域名轉(zhuǎn)換為IP,并將端口從應用程序名稱轉(zhuǎn)換為端口號后顯示
相當于-ED
不要在輸出的每一行打印時間戳
-v
輸出一個稍微詳細的信息,例如,ttl和服務類型信息可以包含在ip包中
-vv
輸出詳細的消息信息
-c
Tcpdump在收到指定數(shù)量的數(shù)據(jù)包后停止
-F
從指定文件中讀取表達式,忽略其他表達式
[構(gòu)成來自拉丁語、結(jié)尾為-us的名詞的復數(shù)]
指定要監(jiān)聽的網(wǎng)絡接口
-p
將網(wǎng)卡設置為非混雜模式,不能用于主機或廣播
-P
指定要抓取的包是傳入包還是傳出包。可以給出的值有“in”、“out”和“inout”,默認值為“inout”。
-r
從指定文件中讀取包(這些包通常由-w選項生成)
-w
把包直接寫到文件里,不要分析打印出來
相當于-ED
被監(jiān)控的數(shù)據(jù)包被直接解釋為指定類型的消息,常見類型有rpc(遠程過程調(diào)用)和snmp(簡單網(wǎng)絡管理協(xié)議)
[加在以-u結(jié)尾的法語詞源的名詞之后構(gòu)成復數(shù)]
需要按原樣顯示協(xié)議頭和包內(nèi)容(tcpdump會以十六進制和ASCII顯示),這是協(xié)議分析中的絕對工具。
-XX
tcpdump在分析和打印時,會打印出每個數(shù)據(jù)包的報頭數(shù)據(jù),同時會以十六進制和ASCII碼打印出每個數(shù)據(jù)包的數(shù)據(jù),包括數(shù)據(jù)鏈路層的報頭,對于分析一些新的協(xié)議數(shù)據(jù)包非常方便。
1.《tcpip詳解 tcpdump的使用以及參數(shù)詳解》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《tcpip詳解 tcpdump的使用以及參數(shù)詳解》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/jiaoyu/1077131.html