天天看點

Linux tcpdump指令詳解實用指令執行個體

簡介

用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的資料包進行截獲的包分析工具。 tcpdump可以将網絡中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網絡層、協定、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的資訊。

預設啟動

普通情況下,直接啟動tcpdump将監視第一個網絡接口上所有流過的資料包。

監聽指定接口并且儲存成檔案

 tcpdump -i any tcp port 22 -w test.cap

同時監聽來自49830和111端口的包

tcpdump -i any -nn 'dst port 49830' or 'dst port 111'

監視指定網絡接口的資料包

如果不指定網卡,預設tcpdump隻會監視第一個網絡接口,一般是eth0,下面的例子都沒有指定網絡接口。 

監視指定主機的資料包

列印所有進入或離開sundown的資料包.

也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發出的所有的資料包

列印helios 與 hot 或者與 ace 之間通信的資料包

截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信

列印ace與任何其他主機之間通信的IP 資料包, 但不包括與helios之間的資料包.

如果想要擷取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用指令:

截獲主機hostname發送的所有資料

監視所有送到主機hostname的資料包

監視指定主機和端口的資料包

如果想要擷取主機210.27.48.1接收或發出的telnet包,使用如下指令

對本機的udp 123 端口進行監視 123 為ntp的服務端口

監視指定網絡的資料包

列印本地主機與Berkeley網絡上的主機之間的所有通信資料包(nt: ucb-ether, 此處可了解為'Berkeley網絡'的網絡位址,此表達式最原始的含義可表達為: 列印網絡位址為ucb-ether的所有資料包)

列印所有通過網關snup的ftp資料包(注意, 表達式被單引号括起來了, 這可以防止shell對其中的括号進行錯誤解析)

列印所有源位址或目标位址是本地主機的IP資料包

(如果本地網絡通過網關連到了另一網絡, 則另一網絡并不能算作本地網絡.(nt: 此句翻譯曲折,需補充).localnet 實際使用時要真正替換成本地網絡的名字)

監視指定協定的資料包

列印TCP會話中的的開始和結束資料包, 并且資料包的源或目的不是本地網絡上的主機.(nt: localnet, 實際使用時要真正替換成本地網絡的名字))

列印所有源或目的端口是80, 網絡層協定為IPv4, 并且含有資料,而不是SYN,FIN以及ACK-only等不含資料的資料包.(ipv6的版本的表達式可做練習)

(nt: 可了解為, ip[2:2]表示整個ip資料包的長度, (ip[0]&0xf)<<2)表示ip資料包標頭的長度(ip[0]&0xf代表包中的IHL域, 而此域的機關為32bit, 要換算

成位元組數需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表示tcp頭的長度, 此域的機關也是32bit, 換算成比特數為 ((tcp[12]&0xf0) >> 4) << 2, 

即 ((tcp[12]&0xf0)>>2). ((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0 表示: 整個ip資料包的長度減去ip頭的長度,再減去

tcp頭的長度不為0, 這就意味着, ip資料包中确實是有資料.對于ipv6版本隻需考慮ipv6頭中的'Payload Length' 與 'tcp頭的長度'的內插補點, 并且其中表達方式'ip[]'需換成'ip6[]'.)

列印長度超過576位元組, 并且網關位址是snup的IP資料包

列印所有IP層廣播或多點傳播的資料包, 但不是實體以太網層的廣播或多點傳播資料報

列印除'echo request'或者'echo reply'類型以外的ICMP資料包( 比如,需要列印所有非ping 程式産生的資料包時可用到此表達式 .

(nt: 'echo reuqest' 與 'echo reply' 這兩種類型的ICMP資料包通常由ping程式産生))

tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

本文轉自 轉身撞牆角 51CTO部落格,原文連結:http://blog.51cto.com/chentianwang/1787002

繼續閱讀