tcp 快速掌握tcpdump抓包

2021-10-17 21:35:46 字數 1777 閱讀 4000

一說到抓包,好像有點高深莫測,其實在工作中,大部分是應用發生異常時需要抓包,以此來分析原因,linux下一般用tcpdump命令抓包,而使用tcpdump其實常用的引數也就那麼幾個

抓包主要是看資料傳輸是否都走了正確的tcp協議,比如因為網路或者攻擊導致某些包(syn time_wait)等特別多,這個時候抓包就很容看出來

因此抓包不必記太多引數,只要能過濾到我們想要的包即可

-i 指定網路介面,例如eth0、lo、pp0等等的介面看一段直接用tcpdump命令抓包的文件

-s 將tcp的序列號以絕對值形式輸出,預設相對值

-nn 不進行埠名稱的轉換,預設轉換,比如22埠會顯示ssh

-w 儲存抓到的包,一般.cap格式

-v 輸出更詳細的報文資訊,可以多個v一起使用,如-vvvv

or|and|nor 與或非,以下引數如多個使用,則需要用到

host 指定過濾的ip,比如10.0.0.1,那麼只抓與該ip相關的包

port 指定過濾的埠

src host 指定過濾的源ip

dst host 指定過濾的目的ip

src port 指定過濾的源埠

dst port 指定過濾的目的埠

tcpdump -s -nn port 443 and host 10.88.77.15tcpdump -s -nn port 443 and host 10.88.77.15 -w /tmp/dump.wap如抓取過濾有host為10.25.137.230和埠443

15:39:07.427683 ip 10.25.137.230.20260 > 10.29.64.142.443: flags [p.], seq 1026816011:1026816267, ack 1193238686, win 115, length 256
以此行為例
ip 10.25.137.230.20260 > 10.29.64.142.443:flags [p.]flags的標記,此處為[p.],代表pst和ack(.代表ack確認)

seq 1026816011:1026816267, ack 1193238686, win 115, length 256

tcpdump的flags代表了這個資料報的用途,這些標記是tcp首部的內容

[s]:syn同步標識

[.]:.表示ack確認標識

[s.]:syn同步標識,以及確認[s]的ack

[p.]:psh,push推送,資料傳輸

[r.]:rst,連線重置

[f.]:fin結束連線

[df]:don't fragment(不要碎裂),當df=0時,表示允許分片,一般-v時才有這個標識

[fp.]:標記fin、push、ack組合,這樣做是為了提公升網路效率,減少資料來回確認等

補充: 四次揮手可能只看到3個包,因為乙個相應包被包含在[f.]包裡了。

tcp鏈結的幾種狀態 tcpdump抓包

說明 通常情況下 乙個正常的tcp連線,都會有三個階段 1 tcp三次握手 2 資料傳送 3 tcp四次揮手 裡面的幾個概念 客戶端發起乙個和服務建立tcp鏈結的請求,這裡是syn j 服務端接受到客戶端的建立請求後,返回兩個資訊 syn k ack j 1 客戶端在接受到服務端的ack資訊校驗成功...

tcpdump如何抓界麵包 tcpdump抓包命令

一.選項 tcpdump支援相當多的引數,如使用 i引數指定tcpdump監聽的網路介面,這在計算機具有多個網路介面時非常有用,使用 c引數指定要監聽的資料報數量,使用 w引數指定將監聽到的資料報寫入檔案中儲存,等等。如下 a 將網路位址和廣播位址轉變成名字 b 在資料 鏈路層上選擇協議,包括ip ...

快速上手tcpdump進行網路抓包分析

簡介 tcpdump是linux中強大的網路資料採集分析工具之一。mannal手冊的簡介 dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具,支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句進行篩選過濾。基...