tcpdump簡單總結

tcpdump指令功能強大,參數繁多。本篇作一簡單的總結歸納。

 

tcpdump指令形式:
tcpdump [選項] [過濾規則]

選項包括-i -x 等,主要用來滿足不同的顯示需要
過濾規則:用於過濾目的,截留特定的數據包,使網絡分析更加精準簡便。


tcpdump的過濾規則表達式還可以指定邏輯運算關鍵字:包括非運算not (或!),與運算(and &&) ,
或運算(or ||)

通常都是需要用這些邏輯關鍵字來組合不同類型的規則表達式的。


下面直接通過例子來講解:

tcpdump -i eth1 -x -s0 host 123.23.0.46 and port 4545 and tcp  | more

---選項

-i:指定網卡端口
   如果要抓的包源地址和目的地址都是本機,要用-i lo

-x: 可以列出十六進制以及ASCII的封包內容。默認情況下是不會顯示封包內容的。

-s0:完整顯示包的內容。默認情況下tcpdump只顯示96個字節的包內容。
     其實-s是tcpdump的一個選項,-s snaplen 可以將顯示的包長度設爲snaplen

  tcpdump支持的選項還有很多,此處不一一列舉。

---規則表達式

host:
   指定類型:說明123.23.0.46是一臺主機。另外net也是用來指定類型的。

src 或dst:
   指明源地址or目的地址,可以使用組合 dst or src,  dst and src。
   缺省是dst or src

port:
   指定端口號

tcp:指定抓取包的協議,當然,你也可以指定udp 等其他協議

以上代表了tcpdump支持的四種規則類型。不同類型的規則可以使用邏輯關鍵字連接。

另外,補充一個很有用的選項功能。
-F filename:
   從filename裏面讀取規則表達式。指令中的規則表達式會被忽略。
   這樣,你就可以將規則寫在filename裏面保存下來了。


tcpdump還可以抓取特定包內容的數據包,用法是:

sudo tcpdump -Xlps0  -iany 'ip[35:2]=0x60' and dst port 10928 and 'ip[102:4]=10095530'

注意單引號''裏面的內容,ip[35:2]=0x60表示從ip層第35個字節開始取2個字節,值是0x60


有的同學用-w filename將抓包的結果存到filename裏面。這時要用tcpdump -r filename才能打開,否則會顯示亂碼。其實執行tcpdump的時候用重定向就可以了吧?



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章