1. 程式人生 > >【Linux 命令】 tcpdump

【Linux 命令】 tcpdump

文章來源:tcpdump命令


1:語法 tcpdump [options] [expression]
2:功能 tcpdump輸出特定network interface上滿足expression條件的的包的內容。 可以用-w選項將包輸入到檔案。 也可以用-r引數指定已儲存的包檔案,不管如何只有滿足expression條件的才會被處理。
若沒有用-c引數指定捕包的個數,則會不停的捕包,直到用SIGINT中斷(也就是CTRL+C)。

當tcpdump完成捕包後會報告一些計數:
  1. 47 packets captured            : tcpdump收到並處理的包的個數
  2. 88 packets received by filter  :取決於特定的作業系統,
  3. 17 packets dropped by kernel   :丟掉的包

3:輸出格式 (1)Link level headers
如果-e選項各處了,則輸出該格式。在乙太網中,輸出源和目的MAC/協議/包長度。 在FDDI網路中,輸出frame control域/源和目的地址/包長度
(2)arp/arpa包
4:選項

  1. -A               以ASCII的方式列印packets
  2. -b               以ASDOT記號輸出BGP包的AS號,
  3. -c count         捕到count個包後退出
  4. -e               以mac地址的形式輸出
  5. -i interface     監聽指定的埠,值為any表示捕全部interfaces的包
  6. -K               不檢查IP, TCP或UDP的checksums
  7. -n               不將主機地址和埠轉換到相應的名稱
  8. -N               不列印主機的域名
  9. -p               不將interface設定成promiscuous模式
  10. -q               列印較少的協議資訊,因此輸出較短
  11. -r file          從檔案中讀包
  12. -t               不輸出時間戳
  13. -tt              輸出未格式化的時間戳
  14. -U               在-w引數指定時,每寫一個包後,立即重新整理快取區
  15. -v               輸出詳細的資訊
  16. -vv              更加詳細
  17. -x               將包的資料以十六進位制的形式輸出
  18. -xx              包含mac頭的資訊
  19. -X               輸出十六進位制和對應的ASCII
  20. -XX              包含MAC頭的資訊
  21. -y datalinktype  僅捕捉資料鏈路層為datalinktype的型別的資料
  22. expression       僅dump滿足表示式的包

5:expression expression由一個或多個primitives組成, primitives由一個id (名字或數字)前有一個或多個qualifier組成 有三種類型的qualifier: (1)type:指定id的型別,可能的type有:host, net, port, portrange。預設的host。 (2)dir:指定id之間的特定的傳遞方向,有:src, dst, src or dst, src and dst, addr1, addr2, addr3, addr4。預設為src or dst (3)proto:指定特定的協議:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp and udp
利用and, or和not可以組成更復雜的primitives