【Linux 命令】 tcpdump
阿新 • • 發佈:2019-01-12
文章來源:tcpdump命令
1:語法 tcpdump [options] [expression]
2:功能 tcpdump輸出特定network interface上滿足expression條件的的包的內容。 可以用-w選項將包輸入到檔案。 也可以用-r引數指定已儲存的包檔案,不管如何只有滿足expression條件的才會被處理。
若沒有用-c引數指定捕包的個數,則會不停的捕包,直到用SIGINT中斷(也就是CTRL+C)。
當tcpdump完成捕包後會報告一些計數:
- 47 packets captured : tcpdump收到並處理的包的個數
- 88 packets received by filter :取決於特定的作業系統,
- 17 packets dropped by kernel :丟掉的包
3:輸出格式 (1)Link level headers
(2)arp/arpa包
4:選項
- -A 以ASCII的方式列印packets
- -b 以ASDOT記號輸出BGP包的AS號,
- -c count 捕到count個包後退出
- -e 以mac地址的形式輸出
- -i interface 監聽指定的埠,值為any表示捕全部interfaces的包
- -K 不檢查IP, TCP或UDP的checksums
- -n 不將主機地址和埠轉換到相應的名稱
- -N 不列印主機的域名
- -p 不將interface設定成promiscuous模式
- -q 列印較少的協議資訊,因此輸出較短
- -r file 從檔案中讀包
- -t 不輸出時間戳
- -tt 輸出未格式化的時間戳
- -U 在-w引數指定時,每寫一個包後,立即重新整理快取區
- -v 輸出詳細的資訊
- -vv 更加詳細
- -x 將包的資料以十六進位制的形式輸出
- -xx 包含mac頭的資訊
- -X 輸出十六進位制和對應的ASCII
- -XX 包含MAC頭的資訊
- -y datalinktype 僅捕捉資料鏈路層為datalinktype的型別的資料
- 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