tcpdump 命令列抓包工具

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   strong   

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

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

 

 

 

概述

tcpdump命令是Linux中的截包命令工具,強大且便於使用。tcpdump基於底層libpcap庫開發,運行需要root許可權。

 

基本使用與命令選項

例:截獲主機收到和發出的所有資料包。

命令:tcpdump

說明:

tcpdump截取包預設顯示資料包的頭部。

基礎格式:時間 資料包類型 源IP 連接埠/協議 > 目標IP 連接埠/協議 協議詳細資料

 

按下Ctrl+C會終止tcpdump命令。且會在結尾處產生統計資訊。

 

 

選項查看

命令:tcpdump --h

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

說明:

最後會自動產生統計資訊。

 

將抓包資訊寫入檔案 -w

使用-w選項指定記錄檔案。

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

說明:

儲存的檔案不是文字格式設定,不能直接查看。tcpdump儲存的檔案的格式是幾乎所有主流的抓包工具軟體都可以讀取。所以可以使用更易讀的圖形介面工具來查看記錄檔案。

 

讀取記錄檔案 -r

使用-r選項讀取檔案。

命令:tcpdump -r tcpdump_test.log

 

列印出所有可工作的介面 -D

命令:tcpdump -D

其中網卡為eth0與eth1。

 

指定監控的網卡 -i

命令:tcpdump -i eth0

 

顯示更詳細的資料包資訊 -v  -vv

選項-v,-vv可以顯示更詳細的抓包資訊。

 

 

不使用網域名稱反解 -n

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

 

增加抓包時間戳記 -tttt選項

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

命令:tcpdump -tttt

 

 

 

條件過濾

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

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

 

 

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

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

命令:tcpdump -c 1 -X

 

 

 

邏輯運算式

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

邏輯與關係,使用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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.