tshark功能詳解

2021-10-25 08:37:43 字數 2977 閱讀 5925

基本語法: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 ]

根據試驗,引數的書寫有講究。模仿tcpdump,可以把抓包過濾表示式寫在命令的最後,在試用的時候可以在影象化介面上將命令輸出正確後在tshark下引用。。一般將抓包表示式用引號quote起來(在windows上是雙引號"),一是為了視覺方便,一是為了逃避其中字元和shell語法的衝突(如「>」,「||」等)。抓包過濾表示式也可以寫在-f引數的後面,注意,此時更應該使用引號或者將-f放在最後。否則,它們會認為-f(可省)後面的引數都是表示式的一部分,而導致命令格式混亂。

主要引數分類含義權作解說如下:

抓包介面類

• -i 設定抓包的網路介面,不設定則預設為第乙個非自環介面。

• -d 列出當前存在的網路介面。在不了解os所控制的網路裝置時,一般先用「tshark -d」檢視網路介面的編號以供-i引數使用。

• -f 設定抓包過濾表示式(capture filter expression)。抓包過濾表示式的寫法類似於tcpdump,可參考tcpdump man page的有關部分。

• -s 設定每個抓包的大小,預設為65535,多於這個大小的資料將不會被程式記入記憶體、寫入檔案。(這個引數相當於tcpdump的-s,tcpdump預設抓包的大小僅為68)

• -p 設定網路介面以非混合模式工作,即只關心和本機有關的流量。

• -b 設定核心緩衝區大小,僅對windows有效。

• -y 設定抓包的資料鏈路層協議,不設定則預設為-l找到的第乙個協議,區域網一般是en10mb等。

• -l 列出本機支援的資料鏈路層協議,供-y引數使用。

抓包停止條件

• -c 抓取的packet數,在處理一定數量的packet後,停止抓取,程式退出。

• -a 設定tshark抓包停止向檔案書寫的條件,事實上是tshark在正常啟動之後停止工作並返回的條件。條件寫為test:value的形式,如「-a duration:5」表示tshark啟動後在5秒內抓包然後停止;「-a filesize:10」表示tshark在輸出檔案達到10kb後停止;「-a files:n」表示tshark在寫滿n個檔案後停止。(windows版的tshark0.99.3用引數「-a files:n」不起作用——會有無數多個檔案生成。由於-b引數有自己的files引數,所謂「和-b的其它引數結合使用」無從說起。這也許是乙個bug,或tshark的man page的書寫有誤。)

檔案輸出控制

• -b 設定ring buffer檔案引數。ring buffer的檔名由-w引數決定。-b引數採用test:value的形式書寫。「-b duration:5」表示每5秒寫下乙個ring buffer檔案;「-b filesize:5」表示每達到5kb寫下乙個ring buffer檔案;「-b files:7」表示ring buffer檔案最多7個,周而復始地使用,如果這個引數不設定,tshark會將磁碟寫滿為止。

檔案輸入

• -r 設定tshark分析的輸入檔案。tshark既可以抓取分析即時的網路流量,又可以分析dump在檔案中的資料。-r不能是命名管道和標準輸入。

處理類• -r 設定讀取(顯示)過濾表示式(read filter expression)。不符合此表示式的流量同樣不會被寫入檔案。注意,讀取(顯示)過濾表示式的語法和底層相關的抓包過濾表示式語法不相同,它的語法表達要豐富得多,請參考和類似於抓包過濾表示式,在命令列使用時最好將它們quote起來。

• -n 禁止所有位址名字解析(預設為允許所有)。

• -n 啟用某一層的位址名字解析。「m」代表mac層,「n」代表網路層,「t」代表傳輸層,「c」代表當前非同步dns查詢。如果-n和-n引數同時存在,-n將被忽略。如果-n和-n引數都不寫,則預設開啟所有位址名字解析。

• -d 將指定的資料按有關協議解包輸出。如要將tcp 8888埠的流量按http解包,應該寫為「-d tcp.port==8888,http」。注意選擇子和解包協議之間不能留空格。

輸出類• -w 設定raw資料的輸出檔案。這個引數不設定,tshark將會把解碼結果輸出到stdout。「-w-」表示把raw輸出到stdout。如果要把解碼結果輸出到檔案,使用重定向「>」而不要-w引數。

• -f 設定輸出raw資料的格式,預設為libpcap。「tshark -f」會列出所有支援的raw格式。

• -v 設定將解碼結果的細節輸出,否則解碼結果僅顯示乙個packet一行的summary。

• -x 設定在解碼輸出結果中,每個packet後面以hex dump的方式顯示具體資料。

• -t 設定解碼結果輸出的格式,包括text,ps,psml和pdml,預設為text。

• -t 設定解碼結果的時間格式。「ad」表示帶日期的絕對時間,「a」表示不帶日期的絕對時間,「r」表示從第乙個包到現在的相對時間,「d」表示兩個相鄰包之間的增量時間(delta)。

• -s 在向raw檔案輸出的同時,將解碼結果列印到控制台。

• -l 在處理每個包時即時重新整理輸出。

• -x 擴充套件項。

• -q 設定安靜的stdout輸出(例如做統計時)

• -z 設定統計引數。

其它• -h 顯示命令列幫助。

• -v 顯示tshark的版本資訊。

• -o 過載選項。

在即時抓包模式(-r未設定)時的各引數功能一覽:

在檔案讀取分析模式時的各引數功能一覽:

tshark 實踐記錄

專案需要 臨時研究了一下,因為主業不是這個,所以在這裡記錄一下,以便於需要的人參考 udp tcptshark v r 輸入檔案 如 pcap 輸出檔案 txt 該例項列出了 幀數 幀時間 幀長度 協議型別 源ip 目的ip udp源埠 tcp源埠 tshark n t a 2 r tcp udp ...

tshark簡單使用 wireshark

ethereal 是乙個很流行的開源sniffer,支援包括solaris在內的很多平台。2006年初,主導ethereal原始碼的大牛geraldcombs跳槽到了cace公司。原來 ethereal 的商標就不能用了。偉大的開源專案如果因此而over,不免同好者唏噓。怎麼辦?combs等人只得捨...

tshark簡單應用指令

tshark i 1 w usr tmp icmp.cap f icmp b duration 3 測試每三秒捕獲icmp網路包 過濾icmp且ip是10.166.253.92 ps ef grep tshark grep w 10.166.253.92 awk 管道輸出上面指令的具體程序id ki...