linux tshark命令詳解
tshark是命令行的,命令行的有個好處,就是容易被其他程序調用。下面由學習啦小編為大家整理了linux tshark命令的相關知識,希望對大家有幫助!
linux tshark命令基本語法
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,可以把抓包過濾表達式寫在命令的最后。一般將抓包表達式用引號quote起來(在windows上是雙引號"),一是為了視覺方便,一是為了逃避其中字符和shell語法的沖突(如“>”,“||”等)。抓包過濾表達式也可以寫在-f參數的后面,注意,此時更應該使用引號或者將-f放在最后。否則,它們會認為-f(可省)后面的參數都是表達式的一部分,而導致命令格式混亂。
linux tshark命令主要參數
1.抓包接口類
-i 設置抓包的網絡接口,不設置則默認為第一個非自環(huán)接口。
-D 列出當前存在的網絡接口。在不了解OS所控制的網絡設備時,一般先用“tshark -D”查看網絡接口的編號以供-i參數使用。
-f 設定抓包過濾表達式(capture filter expression)。抓包過濾表達式的寫法雷同于tcpdump,可參考tcpdump man page的有關部分。
-s 設置每個抓包的大小,默認為65535,多于這個大小的數據將不會被程序記入內存、寫入文件。(這個參數相當于tcpdump的-s,tcpdump默認抓包的大小僅為68)
-p 設置網絡接口以非混合模式工作,即只關心和本機有關的流量。
-B 設置內核緩沖區(qū)大小,僅對windows有效。
-y 設置抓包的數據鏈路層協(xié)議,不設置則默認為-L找到的第一個協(xié)議,局域網一般是EN10MB等。
-L 列出本機支持的數據鏈路層協(xié)議,供-y參數使用。
2.抓包停止條件
-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的書寫有誤。)
3.文件輸出控制
-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會將磁盤寫滿為止。
4.文件輸入
-r 設置tshark分析的輸入文件。tshark既可以抓取分析即時的網絡流量,又可以分析dump在文件中的數據。-r不能是命名管道和標準輸入。
5.處理類
-R 設置讀取(顯示)過濾表達式(read filter expression)。不符合此表達式的流量同樣不會被寫入文件。注意,讀取(顯示)過濾表達式的語法和底層相關的抓包過濾表達式語法不相同,它的語法表達要豐富得多。類似于抓包過濾表達式,在命令行使用時最好將它們quote起來。
-n 禁止所有地址名字解析(默認為允許所有)。
-N 啟用某一層的地址名字解析。“m”代表MAC層,“n”代表網絡層,“t”代表傳輸層,“C”代表當前異步DNS查找。如果-n和-N參數同時存在,-n將被忽略。如果-n和-N參數都不寫,則默認打開所有地址名字解析。
-d 將指定的數據按有關協(xié)議解包輸出。如要將tcp 8888端口的流量按http解包,應該寫為“-d tcp.port==8888,http”。注意選擇子和解包協(xié)議之間不能留空格。
6.輸出類
-w 設置raw數據的輸出文件。這個參數不設置,tshark將會把解碼結果輸出到stdout。“-w-”表示把raw輸出到stdout。如果要把解碼結果輸出到文件,使用重定向“>”而不要-w參數。
-F 設置輸出raw數據的格式,默認為libpcap。“tshark -F”會列出所有支持的raw格式。
-V 設置將解碼結果的細節(jié)輸出,否則解碼結果僅顯示一個packet一行的summary。
-x 設置在解碼輸出結果中,每個packet后面以HEX dump的方式顯示具體數據。
-T 設置解碼結果輸出的格式,包括text,ps,psml和pdml,默認為text。
-t 設置解碼結果的時間格式。“ad”表示帶日期的絕對時間,“a”表示不帶日期的絕對時間,“r”表示從第一個包到現(xiàn)在的相對時間,“d”表示兩個相鄰包之間的增量時間(delta)。
-S 在向raw文件輸出的同時,將解碼結果打印到控制臺。
-l 在處理每個包時即時刷新輸出。
-X 擴展項。
-q 設置安靜的stdout輸出(例如做統(tǒng)計時)
-z 設置統(tǒng)計參數。
7.其它
-h 顯示命令行幫助。
-v 顯示tshark的版本信息。
-o 重載選項。
tcpdump -i moca0 -w /tmp/dhcp.pcap