學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

linux tshark命令詳解

時(shí)間: 佳洲1085 分享

  tshark是命令行的,命令行的有個(gè)好處,就是容易被其他程序調(diào)用。下面由學(xué)習(xí)啦小編為大家整理了linux tshark命令的相關(guān)知識(shí),希望對(duì)大家有幫助!

  linux tshark命令基本語(yǔ)法

  tshark [ -a ] ... [ -b ] ... [ -B ] [ -c ] [ -d ==, ] [ -D ] [ -f ] [ -F ] [ -h ] [ -i |- ] [ -l ] [ -L ] [ -n ] [ -N ] [ -o ] ... [ -p ] [ -q ] [ -r ] [ -R ] [ -s ] [ -S ] [ -t ad|a|r|d ] [ -T pdml|psml|ps|text ] [ -v ] [ -V ] [ -w |- ] [ -x ] [ -X ] [ -y ] [ -z ]

  根據(jù)試驗(yàn),參數(shù)的書(shū)寫(xiě)有講究。模仿tcpdump,可以把抓包過(guò)濾表達(dá)式寫(xiě)在命令的最后。一般將抓包表達(dá)式用引號(hào)quote起來(lái)(在windows上是雙引號(hào)"),一是為了視覺(jué)方便,一是為了逃避其中字符和shell語(yǔ)法的沖突(如“>”,“||”等)。抓包過(guò)濾表達(dá)式也可以寫(xiě)在-f參數(shù)的后面,注意,此時(shí)更應(yīng)該使用引號(hào)或者將-f放在最后。否則,它們會(huì)認(rèn)為-f(可省)后面的參數(shù)都是表達(dá)式的一部分,而導(dǎo)致命令格式混亂。

  linux tshark命令主要參數(shù)

  1.抓包接口類(lèi)

  -i 設(shè)置抓包的網(wǎng)絡(luò)接口,不設(shè)置則默認(rèn)為第一個(gè)非自環(huán)接口。

  -D 列出當(dāng)前存在的網(wǎng)絡(luò)接口。在不了解OS所控制的網(wǎng)絡(luò)設(shè)備時(shí),一般先用“tshark -D”查看網(wǎng)絡(luò)接口的編號(hào)以供-i參數(shù)使用。

  -f 設(shè)定抓包過(guò)濾表達(dá)式(capture filter expression)。抓包過(guò)濾表達(dá)式的寫(xiě)法雷同于tcpdump,可參考tcpdump man page的有關(guān)部分。

  -s 設(shè)置每個(gè)抓包的大小,默認(rèn)為65535,多于這個(gè)大小的數(shù)據(jù)將不會(huì)被程序記入內(nèi)存、寫(xiě)入文件。(這個(gè)參數(shù)相當(dāng)于tcpdump的-s,tcpdump默認(rèn)抓包的大小僅為68)

  -p 設(shè)置網(wǎng)絡(luò)接口以非混合模式工作,即只關(guān)心和本機(jī)有關(guān)的流量。

  -B 設(shè)置內(nèi)核緩沖區(qū)大小,僅對(duì)windows有效。

  -y 設(shè)置抓包的數(shù)據(jù)鏈路層協(xié)議,不設(shè)置則默認(rèn)為-L找到的第一個(gè)協(xié)議,局域網(wǎng)一般是EN10MB等。

  -L 列出本機(jī)支持的數(shù)據(jù)鏈路層協(xié)議,供-y參數(shù)使用。

  2.抓包停止條件

  -c 抓取的packet數(shù),在處理一定數(shù)量的packet后,停止抓取,程序退出。

  -a 設(shè)置tshark抓包停止向文件書(shū)寫(xiě)的條件,事實(shí)上是tshark在正常啟動(dòng)之后停止工作并返回的條件。條件寫(xiě)為test:value的形式,如“-a duration:5”表示tshark啟動(dòng)后在5秒內(nèi)抓包然后停止;“-a filesize:10”表示tshark在輸出文件達(dá)到10kB后停止;“-a files:n”表示tshark在寫(xiě)滿(mǎn)n個(gè)文件后停止。(windows版的tshark0.99.3用參數(shù)“-a files:n”不起作用——會(huì)有無(wú)數(shù)多個(gè)文件生成。由于-b參數(shù)有自己的files參數(shù),所謂“和-b的其它參數(shù)結(jié)合使用”無(wú)從說(shuō)起。這也許是一個(gè)bug,或tshark的man page的書(shū)寫(xiě)有誤。)

  3.文件輸出控制

  -b 設(shè)置ring buffer文件參數(shù)。ring buffer的文件名由-w參數(shù)決定。-b參數(shù)采用test:value的形式書(shū)寫(xiě)。“-b duration:5”表示每5秒寫(xiě)下一個(gè)ring buffer文件;“-b filesize:5”表示每達(dá)到5kB寫(xiě)下一個(gè)ring buffer文件;“-b files:7”表示ring buffer文件最多7個(gè),周而復(fù)始地使用,如果這個(gè)參數(shù)不設(shè)定,tshark會(huì)將磁盤(pán)寫(xiě)滿(mǎn)為止。

  4.文件輸入

  -r 設(shè)置tshark分析的輸入文件。tshark既可以抓取分析即時(shí)的網(wǎng)絡(luò)流量,又可以分析dump在文件中的數(shù)據(jù)。-r不能是命名管道和標(biāo)準(zhǔn)輸入。

  5.處理類(lèi)

  -R 設(shè)置讀取(顯示)過(guò)濾表達(dá)式(read filter expression)。不符合此表達(dá)式的流量同樣不會(huì)被寫(xiě)入文件。注意,讀取(顯示)過(guò)濾表達(dá)式的語(yǔ)法和底層相關(guān)的抓包過(guò)濾表達(dá)式語(yǔ)法不相同,它的語(yǔ)法表達(dá)要豐富得多。類(lèi)似于抓包過(guò)濾表達(dá)式,在命令行使用時(shí)最好將它們quote起來(lái)。

  -n 禁止所有地址名字解析(默認(rèn)為允許所有)。

  -N 啟用某一層的地址名字解析。“m”代表MAC層,“n”代表網(wǎng)絡(luò)層,“t”代表傳輸層,“C”代表當(dāng)前異步DNS查找。如果-n和-N參數(shù)同時(shí)存在,-n將被忽略。如果-n和-N參數(shù)都不寫(xiě),則默認(rèn)打開(kāi)所有地址名字解析。

  -d 將指定的數(shù)據(jù)按有關(guān)協(xié)議解包輸出。如要將tcp 8888端口的流量按http解包,應(yīng)該寫(xiě)為“-d tcp.port==8888,http”。注意選擇子和解包協(xié)議之間不能留空格。

  6.輸出類(lèi)

  -w 設(shè)置raw數(shù)據(jù)的輸出文件。這個(gè)參數(shù)不設(shè)置,tshark將會(huì)把解碼結(jié)果輸出到stdout。“-w-”表示把raw輸出到stdout。如果要把解碼結(jié)果輸出到文件,使用重定向“>”而不要-w參數(shù)。

  -F 設(shè)置輸出raw數(shù)據(jù)的格式,默認(rèn)為libpcap。“tshark -F”會(huì)列出所有支持的raw格式。

  -V 設(shè)置將解碼結(jié)果的細(xì)節(jié)輸出,否則解碼結(jié)果僅顯示一個(gè)packet一行的summary。

  -x 設(shè)置在解碼輸出結(jié)果中,每個(gè)packet后面以HEX dump的方式顯示具體數(shù)據(jù)。

  -T 設(shè)置解碼結(jié)果輸出的格式,包括text,ps,psml和pdml,默認(rèn)為text。

  -t 設(shè)置解碼結(jié)果的時(shí)間格式。“ad”表示帶日期的絕對(duì)時(shí)間,“a”表示不帶日期的絕對(duì)時(shí)間,“r”表示從第一個(gè)包到現(xiàn)在的相對(duì)時(shí)間,“d”表示兩個(gè)相鄰包之間的增量時(shí)間(delta)。

  -S 在向raw文件輸出的同時(shí),將解碼結(jié)果打印到控制臺(tái)。

  -l 在處理每個(gè)包時(shí)即時(shí)刷新輸出。

  -X 擴(kuò)展項(xiàng)。

  -q 設(shè)置安靜的stdout輸出(例如做統(tǒng)計(jì)時(shí))

  -z 設(shè)置統(tǒng)計(jì)參數(shù)。

  7.其它

  -h 顯示命令行幫助。

  -v 顯示tshark的版本信息。

  -o 重載選項(xiàng)。

  tcpdump -i moca0 -w /tmp/dhcp.pcap

3584112