Tcpdump例項分析

2021-07-01 20:27:37 字數 1258 閱讀 7011

常用用法

(這裡用sudo因為當前帳號無權使用tcpdump,這裡僅以乙個tcp的例子來說明)

:sudo /usr/sbin/tcpdump tcp port 80 and host 172.23.1.69 -ieth1 -n

每一行中間都有這個包所攜帶的標誌:

s=syn,發起連線標誌

p=push,傳送資料標誌

f=fin,關閉連線標誌

ack    表示確認包

rst=

reset,異常關閉連線

. 表示沒有任何標誌

常用引數:

tcp/udp/arp等:指定協議型別。

(src/dst)host:指定源端或者目的端ip。

(src/dst)port:指定源端或者目的端

-i:指定網絡卡。

-n:顯示ip,而不是主機名。

-c:指定抓多少個包後退出。

-a:以ascii方式顯示包內容,這個選項對文字格式的協議包非常有用。

-s:指定抓包顯示一行的寬度,-s0表示顯示完整的包,經常和-a一起用。

-x/-xx/-x/-xx:以十六進製制顯示包內容,幾個選項只有細微的差別,詳見man手冊。

上圖示例的過程詳解:

第 一行:17:40:10這個時間,從172.17.66.27(client)的臨時埠49376向172.23.1.66(server)的9500 監聽埠發起連線,client初始包序號為1350828479,滑動視窗大小為5840位元組(滑動視窗即tcp接收緩衝區的大小,用於tcp擁塞控 制),mss大小為1460(即可接收的最大包長度,通常為mtu減40位元組,ip頭和tcp頭各20位元組)。

第二行:server響應連線,同時帶上第乙個包的ack資訊,為client端的初始包序號加1,1350828480,即server端下次等待接受這個包序號的包,用於tcp位元組流的順序控制。server端的初始包序號為258050143,mss也是1460。

第三行:client再次確認,三次握手完成。

第四行:client發請求包,包長度91位元組。

第五行:server響應ack。

第六行:server回包,包長度21位元組。

第七行:client響應ack。

第八行:client發起關閉連線請求。

第九行:server響應ack,並且也傳送fin標誌關閉。

第十行:客戶端響應ack,關閉連線的四次握手完成。

通過這個來理解tcp協議也挺好的,連線關閉過程,位元組流順序控制,擁塞控制,tcp狀態轉換等。不過這裡就不詳述了。

tcpdump實驗分析

安裝nc工具 yum install nc 監聽本地網絡卡流量 tcpdump i lo n nn tcp port 8888 建立tcp udp連線 nc p 1234 10.96.78.213 8888 建立tcp連線 14 07 53.220954 ip 10.96.78.213.1234 1...

tcpdump抓包例項

ip過濾 tcpdump i eth1 host 192.168.1.1 tcpdump i eth1 src host 192.168.1.1 tcpdump i eth1 dst host 192.168.1.1 埠過濾 tcpdump i eth1 port 25 tcpdump i eth1...

通過例項學習 tcpdump 命令

tcpdump是乙個很常用的網路包分析工具,可以用來顯示通過網路傳輸到本系統的 tcp ip 以及其他網路的資料報。tcpdump使用 libpcap 庫來抓取網路報,這個庫在幾乎在所有的 linux unix 中都有。tcpdump可以從網絡卡或之前建立的資料報檔案中讀取內容,也可以將包寫入檔案中...