tcpdump 命令行抓包工具

爲了防止無良網站的爬蟲抓取文章,特此標識,轉載請註明文章出處。LaplaceDemon/SJQ。html

http://www.cnblogs.com/shijiaqi1066/p/3898248.html網絡

 

 

 

概述

tcpdump命令是Linux中的截包命令工具,強大且易於使用。tcpdump基於底層libpcap庫開發,運行須要root權限less

 

基本使用與命令選項

例:截獲主機收到和發出的全部數據包。ssh

命令:tcpdumptcp

wps_clip_image-10938

說明:工具

tcpdump截取包默認顯示數據包的頭部。網站

基礎格式:時間 數據包類型 源IP 端口/協議 > 目標IP 端口/協議 協議詳細信息spa

 

按下Ctrl+C會終止tcpdump命令。且會在結尾處生成統計信息。code

wps_clip_image-6466

 

 

選項查看htm

命令:tcpdump --h

wps_clip_image-26739

tcpdump version 4.1-PRE-CVS_2012_03_26  表示工具版本。

libpcap version 1.4.0    表示libpcap的版本。

 

選項:

-a  將網絡地址和廣播地址轉變成名字;

-c  在收到指定的包的數目後,tcpdump就會中止;

-d  將匹配信息包的代碼以人們可以理解的彙編格式給出;以可閱讀的格式輸出。

-dd  將匹配信息包的代碼以c語言程序段的格式給出;

-ddd  將匹配信息包的代碼以十進制的形式給出;

-e  在輸出行打印出數據鏈路層的頭部信息;

-f  將外部的Internet地址以數字的形式打印出來;

-l  使標準輸出變爲緩衝行形式;

-n  直接顯示IP地址,不現實名稱;

-nn  端口名稱顯示爲數字形式,不現實名稱;

-t  在輸出的每一行不打印時間戳;

-v  輸出一個稍微詳細的信息,例如在ip包中能夠包括ttl和服務類型的信息;

-vv  輸出詳細的報文信息;

-F  從指定的文件中讀取表達式,忽略其它的表達式;

-i  指定監聽的網絡接口;

-r  從指定的文件中讀取包(這些包通常經過-w選項產生);

-w  直接將包寫入文件中,並不分析和打印出來;

-T  將監聽到的包直接解釋爲指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單 網絡管理協議;)

 

 

 

指定抓包數量 -c

指定抓取2個數據包。

命令:tcpdump -c 2

wps_clip_image-3758

說明:

最後會自動生成統計信息。

 

將抓包信息寫入文件 -w

使用-w選項指定記錄文件。

命令:tcpdump -c 10 -w tcpdump_test.log

wps_clip_image-29699

說明:

保存的文件不是文本格式,不能直接查看。tcpdump保存的文件的格式是幾乎全部主流的抓包工具軟件均可以讀取。因此能夠使用更易讀的圖形界面工具來查看記錄文件。

 

讀取記錄文件 -r

使用-r選項讀取文件。

命令:tcpdump -r tcpdump_test.log

wps_clip_image-16804

 

打印出全部可工做的接口 -D

命令:tcpdump -D

wps_clip_image-3795

其中網卡爲eth0與eth1。

 

指定監控的網卡 -i

命令:tcpdump -i eth0

 

顯示更詳細的數據包信息 -v  -vv

選項-v,-vv能夠顯示更詳細的抓包信息。

wps_clip_image-14398

 

 

不使用域名反解 -n

使用-n後,tcpdump會直接顯示IP地址,不會顯示域名(與netstat命令類似)。

 

增長抓包時間戳 -tttt選項

使用-tttt選項,抓包結果中將包含抓包日期:

命令:tcpdump -tttt

wps_clip_image-12169

 

 

 

條件過濾

過濾:指定須要抓取的協議

tcpdump能夠只抓某種協議的包,支持指定如下協議:ip,ip6,arp,tcp,udp,wlan等。

命令:

tcpdump udp

tcpdump icmp

tcpdump tcp

tcpdump arp

 

過濾:指定協議的端口號

使用port參數,用於指定端口號。

命令:tcpdump tcp port 80

 

使用portrange參數,用於指定端口範圍。

命令:tcpdump tcp portrange 1-1024

 

過濾:指定源與目標

src 表示源。

dst 表示目標。

命令:

tcpdump src port 8080

tcpdump dst port 80

 

過濾:指定特定主機的消息包

使用host指定須要監聽的主機。

命令:tcpdump host 192.168.1.113

注意:若使用了host參數使用了計算機名或域名。例tcpdump host shi-pc ,則沒法再使用-n選項。

 

過濾:指定數據包大小

使用greater(大於)less(小於)能夠指定數據包大小的範圍。

例:只抓取大於1000字節的數據包。

命令:tcpdump greater 1000

例:只抓取小於10字節的數據包。

命令:tcpdump less 10

 

 

 

查看數據包完整內容

tcpdump默認不顯示數據包的詳細內容。

 

方法一:使用-A參數能以ASCII碼顯示數據包。

例:只抓取1個數據包,並顯示其內容。

命令:tcpdump -c 1 -A

wps_clip_image-15285

 

 

方法二:使用-X參數能16進制數與ASCII碼共同顯示數據包。

例:只抓取1個數據包,並顯示其內容。

命令:tcpdump -c 1 -X

wps_clip_image-6904

 

 

 

邏輯表達式

使用基本邏輯組合拼裝出更精細的過濾條件。

邏輯與關係,使用and。

命令:

tcpdump tcp and host 192.168.1.112

tcpdump tcp and src 192.168.1.112 and port 8080

 

邏輯或關係,使用or。

命令:

tcpdump host 192.168.1.112 or 192.168.1.113

 

邏輯非關係,使用not,也能夠使用 ! 。

若使用 ! 必須與其後面的字符隔開一個空格。

例:當經過ssh協議遠程使用tcpdump時,爲了不ssh的數據包的輸出,因此通常須要禁止ssh數據包的輸出。

命令:

tcpdump not tcp port 22

tcpdump ! tcp port 22

 

括號

括號須要使用在引號內,或轉意使用。不然會報錯。

例:抓取非22端口,且主機爲192.168.1.112 和 192.168.1.113的TCP數據包。

命令:

tcpdump not tcp port 22 and host \( 192.168.1.112 or 192.168.1.113\)

tcpdump "not tcp port 22 and host (192.168.1.112 or 192.168.1.113)"

tcpdump not tcp port 22 and host "(192.168.1.112 or 192.168.1.113)"

 

 

 

 

爲了防止無良網站的爬蟲抓取文章,特此標識,轉載請註明文章出處。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3898248.html

相關文章
相關標籤/搜索