當前位置:
首頁 > 最新 > Linux 基礎教程 30-tcpdump命令-2

Linux 基礎教程 30-tcpdump命令-2

? ? 在上一節講了一些tcpdump常用功能,本期我們繼續學習tcpdump後續功能。

流量過濾

? ? tcpdump不僅支持單個過濾表達式過濾,也還支持多個過濾表達式。但需要注意的是傳入的過濾表達式如含有Shell通配符,需將過濾表達式放在單引號內,以預防Shell對其進行解釋和通配。如果需要深入學習過濾表達式,可以使用以下命令進行查看:

1、只抓取UDP數據包

tcpdump另外還支持如下的協議類型:

2、抓取固定來源的數據包

? ? 對一台主機而言,後台運行的網路有很多個,所連接的伺服器也會有很多個。那如果我們只想查看某一個伺服器和主機的數據包情況了?在tcpdump中也支持這樣的數據包抓包,但需要設置src(source)dst(destination)就可以了,同時tcpdum也支持各條件間邏輯運算,如andor等。

? ?如果tcpdump未指定dst和src,則默認全匹配,而不區分是dst還是src

3、抓取特定埠的數據包

tcpdump還支持的過濾類型如下所示:

4、抓取屬於兩台伺服器之間的數據包

常用協議數據報格式

? ? 在此對協議不做深入講解,僅列出TCP/IP的數據報格式,有興趣的話,可以自行查閱相關資料。

IP協議數據報格式如下所示:

常用協議編號如下所示:

TCP協議數據報格式如下所示:

UDP協議數據報格式如下所示:

抓包進階

? ? 在明白各常用協議的數據報格式後,我們先來看看以下幾個示例:

1、抓取本機與百度之間TCP三次握手中的第一個網路包,且排除主機為cnblogs的數據包

2、抓取IP包長度大於500的數據包

proto[expr:size]詳細解釋如下所示:

proto:就是protocol的縮寫,表示協議的名稱。可以指定的協議類型大致如下:

expr:用來指定數據包偏移量,表示從某個協議數據包的第多個位開始提取內容,默認起始位置為0

size:表示從expr之後提取多少個位元組

比較運算符:常用的比較運算符如下所示:

為了增加可讀性,TCP協議數據報頭中有6個tcpflags標誌欄位域,在tcpdump中可以用以下方式進行表達:

邏輯運算符:如果一個過濾表達式中包含多個過濾表達式,則可以使用邏輯運算符進行串聯

要詳細理解上面的這些示例,需要對常用協議的數據報格式有足夠的了解和掌握。

[參考資料]

1.計算機網路(第七版) 謝希仁


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 笑傲測試 的精彩文章:

TAG:笑傲測試 |