-nn:表示不解析域名,直接顯示IP,在netstat命令中,也有這個選項;
-X:同時使用hex和ascii顯示報文內(nèi)容;
-S:顯示絕對的序列號(sequence number),而不是相對編號;
-i:指定監(jiān)聽的網(wǎng)卡,如果為-i any則表示監(jiān)聽所有的網(wǎng)卡;
-v,-vv,-vvv:顯示更多的詳細(xì)信息;
-c number:表示截取number個報文,然后結(jié)束;
-w:將監(jiān)聽到的數(shù)據(jù)包寫入文件中保存,而并不分析和打印出來;
-A:只使用ascii打印報文的全部數(shù)據(jù),不要和-X選項一起使用。截取HTTP請求的時候可以用sudo tcpdump -nSA port 80

雖然tcpdump命令的選項特別多,但是常用的選項也就上面那幾個,我這里將更多的把注意力放在使用實例上,通過使用實例來學(xué)習(xí)tcpdump這個命令。

過濾器

先進(jìn)行使用實例詳解時,有必要先掌握tcpdump一些基本的使用理論知識,先來說說過濾器。

在服務(wù)器上的網(wǎng)絡(luò)報文是異常的多,很多時候我們只關(guān)注和具體問題有關(guān)的數(shù)據(jù)報文,而這些有用的報文只占到很小的一部分,為了不讓我們在報文的海洋里迷失自己,我們就非常有必要學(xué)習(xí)一下tcpdump提供的靈活而且功能強(qiáng)大的過濾器。

過濾器也可以簡單地分為三類:type,dir和proto。

type:主要用來區(qū)分過濾報文源類型,主要由host主機(jī)報文,net網(wǎng)段報文和port指定端口的報文組成;

dir:只過濾報文的源地址和目的地址,主要包括src源地址和dst目的地址;

proto:只過濾報文的協(xié)議類型,支持tcp,udp和icmp等;使用的時候可以省略proto關(guān)鍵字:

tcpdump -i eth1 arptcpdump -i eth1 iptcpdump -i eth1 tcptcpdump -i eth1 udptcpdump -i eth1 icmp

在我們使用tcpdump命令時是離不開這些過濾器的。

條件組合

在茫茫網(wǎng)絡(luò)中,想要找到那個你想要的網(wǎng)絡(luò)包,還是有一定難度的。為了抓住那個我們想要的網(wǎng)絡(luò)包,在我們抓包命令中,包含越多的限制條件,抓的無關(guān)包就會越少,所以在進(jìn)行抓包時,我們可以使用“與”(and、&&)、“或”(or、||)和“非”(not、!)來將多個條件組合起來。這對我們需要基于某些條件來分析網(wǎng)絡(luò)包是非常有用的。

使用實例

命令:tcpdump -i eth1

說明:監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包

命令:tcpdump host 210.27.48.3

說明:截獲210.27.48.3主機(jī)收到的和發(fā)出的所有數(shù)據(jù)包

命令:tcpdump host 210.27.48.4 and (210.27.48.5 or 210.27.48.6)

說明:截獲210.27.48.3主機(jī)和210.27.48.5或者210.27.48.6主機(jī)進(jìn)行通信的所有數(shù)據(jù)包

命令:tcpdump net 192.168.1.0/24

說明:截獲192.168.1.0/24整個網(wǎng)絡(luò)的數(shù)據(jù)包

命令:tcpdump -i eth0 src host 210.27.48.3

說明:監(jiān)視eth0網(wǎng)卡上源地址是210.27.48.3的所有網(wǎng)絡(luò)包

命令:tcpdump -i eth0 dst host 210.27.48.3

說明:監(jiān)視eth0網(wǎng)卡上目的地址是210.27.48.3的所有網(wǎng)絡(luò)包

命令:tcpdump tcp port 23 and host 210.27.48.3

說明:獲取主機(jī)210.27.48.3上端口為23的應(yīng)用發(fā)出和接收的所有TCP協(xié)議包

命令:tcpdump udp port 123

說明:獲取本機(jī)123端口發(fā)出和接收的所有UDP協(xié)議包

命令:tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24

說明:截獲源主地址為10.126.1.222,目的地址是10.126.1.0/24整個網(wǎng)絡(luò)

命令:tcpdump -i eth0 -s0 -G 60 -Z root -w %Y_%m%d_%H%M_%S.pcap

說明:抓取報文后按照指定時間間隔保存;-G選項后面接時間,單位為秒;上述命令就是每隔60秒生存一個文件

命令:tcpdump -i eth0 -s0 -C 1 -Z root -w eth0Packet.pcap

說明:抓取報文后按照指定報文大小保存;-C選項后接文件大小,單位為MB;上述命令就是每抓包文件達(dá)到1MB時就使用一個新的文件保存新抓的報文

上面說到tcpdump抓包后生成對應(yīng)的文件,那這個文件如何進(jìn)行分析呢?是的,有這么樣一個叫做“Wireshark”的軟件,可以非常完美的和tcpdump進(jìn)行結(jié)合,提供可視化的分析界面;有興趣的話可以去學(xué)習(xí)一下。

贊(4)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-62778877-8306;郵箱:fanjiao@west.cn。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明出處:西部數(shù)碼知識庫 » Linux中的tcpdump命令示例詳解

登錄

找回密碼

注冊