簡(jiǎn)介
用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者的定義對(duì)網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具。
tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析。
它支持針對(duì)網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過濾,并提供and、or、not等邏輯語(yǔ)句來幫助你去掉無(wú)用的信息。
舉例說明
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項(xiàng)等都要放到第一個(gè)參數(shù)的位置,用來過濾數(shù)據(jù)報(bào)的類型
(2)-i eth1 : 只抓經(jīng)過接口eth1的包
(3)-t : 不顯示時(shí)間戳
(4)-s 0 : 抓取數(shù)據(jù)包時(shí)默認(rèn)抓取長(zhǎng)度為68字節(jié)。加上-S 0 后可以抓到完整的數(shù)據(jù)包
(5)-c 100 : 只抓取100個(gè)數(shù)據(jù)包
(6)dst port ! 22 : 不抓取目標(biāo)端口是22的數(shù)據(jù)包
(7)src net 192.168.1.0/24 : 數(shù)據(jù)包的源網(wǎng)絡(luò)地址為192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
截獲主機(jī)hostname發(fā)送的所有數(shù)據(jù)
tcpdump -i eth0 src host hostname
監(jiān)視所有送到主機(jī)hostname的數(shù)據(jù)包
tcpdump -i eth0 dst host hostname
打印所有進(jìn)入或離開192.168.0.10的數(shù)據(jù)包.
tcpdump host 192.168.0.10
抓全包
tcpdump -vv -i any -s 0 -w /tmp/fil1.pcap
常見參數(shù)
其他還有很多很多參數(shù),下面都是常用的
-A 以ASCII碼方式顯示每一個(gè)數(shù)據(jù)包(不會(huì)顯示數(shù)據(jù)包中鏈路層頭部信息).
-c count tcpdump將在接受到count個(gè)數(shù)據(jù)包后退出.
-e 每行的打印輸出中將包括數(shù)據(jù)包的數(shù)據(jù)鏈路層頭部信息
-F file
使用file 文件作為過濾條件表達(dá)式的輸入, 此時(shí)命令行上的輸入將被忽略.
-i interface
指定tcpdump 需要監(jiān)聽的接口. 如果沒有指定, tcpdump 會(huì)從系統(tǒng)接口列表中搜尋編號(hào)最小的已配置好的接口
-i any 監(jiān)聽所有網(wǎng)卡接口
-L 列出指定網(wǎng)絡(luò)接口所支持的數(shù)據(jù)鏈路層的類型后退出.(nt: 指定接口通過-i 來指定)
-n 不對(duì)地址(比如, 主機(jī)地址, 端口號(hào))進(jìn)行數(shù)字表示到名字表示的轉(zhuǎn)換.
-q 快速
-s snaplen
設(shè)置tcpdump的數(shù)據(jù)包抓取長(zhǎng)度為snaplen, 如果不設(shè)置默認(rèn)將會(huì)是68字節(jié),
把snaplen 設(shè)置為0 意味著讓tcpdump自動(dòng)選擇合適的長(zhǎng)度來抓取數(shù)據(jù)包.
-t 在每行輸出中不打印時(shí)間戳
-v 當(dāng)分析和打印的時(shí)候, 產(chǎn)生詳細(xì)的輸出. 比如, 包的生存時(shí)間, 標(biāo)識(shí), 總長(zhǎng)度以及IP包的一些選項(xiàng). 這也會(huì)打開一些附加的包完整性檢測(cè), 比如對(duì)IP或ICMP包頭部的校驗(yàn)和.
-vv 產(chǎn)生比-v更詳細(xì)的輸出.
-vvv 產(chǎn)生比-vv更詳細(xì)的輸出.
-w 把包數(shù)據(jù)直接寫入文件而不進(jìn)行分析和打印輸出.
-r file
從文件file 中讀取包數(shù)據(jù). 如果file 字段為 '-' 符號(hào), 則tcpdump 會(huì)從標(biāo)準(zhǔn)輸入中讀取包數(shù)據(jù).