標籤: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