TCPDump使用方法小結

在進行網絡測試的時候,我們經常需要進行抓包的工作,當然有許多測試工具可以使用,比如sniffer, ethreal等.但最爲方便和簡單得就非TCPDump莫屬. Linux的發行版裏基本都包括了這個工具. TCPDump將網絡接口設置成混雜模式以便捕獲到達的每一個數據包.下面給出TCPDump的部分常用選項:

 

-i <interface> 指定監聽的網絡接口

 

-v指定詳細模式輸出詳細的報文信息

 

-vv指定更詳細模式輸出更詳細的報文信息

 

-x指定以16進制數格式顯示數據包

 

-X規定以ASCII碼格式顯示輸出

 

-n規定在捕獲過程中不需向DNS查詢IP地址

 

-F <file> 從指定文件中讀取表達式

 

-D顯示可用網絡接口

 

-s <length> 設置捕獲數據包的長度

 

TCPDump的表達式:

 

默認情況下TCPDump將捕獲所有到達網絡的數據包.這並不是我們想要的,因此就必須通過表達式來限制不必要的流量,只輸出我們需要監聽的數據包.

 

1.類型限定詞

 

類型限定詞有: host, port和net. host用來指定主機或目的地址,port指定端口,net可以用來指定某一子網. 如:

 

tcpdump 'port 80' 監聽80端口

 

tcpdump 'net 192.168.1' 監聽子網192.168.1.0

 

tcpdump 'net 192.168.1.0/24'

 

2.邏輯運算符

 

邏輯運算符有AND,OR和NOT. ()可將多個表達式組合起來.

 

tcpdump 'port 80 and (host 192.168.1.10 or host 192.168.1.11)'

 

監聽主機192.168.1.10 或192.168.1.11的80端口.

 

3.傳輸方向限定詞

 

關鍵詞src指定源地址,dst指定目的地址

 

tcpdump 'port 80 and (src 192.168.1.10 or src 192.168.1.11)'

 

tcpdump 'dst port 25'

 

4.協議限定詞

 

用來捕獲特定協議的數據包有: ether(Ethernet), TCP,UDP,ICMP,IP,ip6(IPv6),ARP,rarp(reverse ARP)等.

 

5.原語

 

原語主要有: 算術運算符(+,-,*,/,>,<,>=,<=,!=等), broadcast, gateway, greater, less.

 

broadcast捕獲廣播數據包, greater和less相當於>=和<=.

 

小例子:

 

//本機20000端口通訊數據抓包

 

tcpdump -s 0 -i lo port 20000 -w /tmp/20000.pcap

 

//10.8.2.181:7001端口通訊數據抓包

 

tcpdump -i eth0 -s 0 host 10.8.2.181 and port 7001 -w /tmp/syrk.pcap

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