
品牌網(wǎng)站建設(shè):TcpDump作為Linux默認(rèn)分發(fā)的工具,簡便好用
更強(qiáng)大的是TcpDump的表達(dá)式語法。利用表達(dá)式可以高效地過濾出真正想要捕獲的
流量。
表達(dá)式分成三類:type、dir和proto。type包括host、net和port,其中net使用cidr
格式,即127.0.0.1/32這樣的寫法;dir是direction的縮寫,包括src、dst、src or dst和src
and dst; proto是協(xié)議。
這里給一個簡單示例,獲取本機(jī)發(fā)往114.114.114.114的53端口的流量,命令如下。
此外,還有一些額外的過濾器。比如端口段portrange,包大小less(<)和greater(>=)等。
tcpdump>32
還有表達(dá)式操作符and(&&)、or(ll)和not(!)。
這里給一個簡單示例,獲取本地網(wǎng)絡(luò)發(fā)往192.168.0.2的非ping流量的全部內(nèi)容,命
令如下。
鬻- -tCEiifayAXIP -nv\jrXSs 1514.麟、i籬鬻鬻黼≥囊蒸纂黎繁黎
最后,還有優(yōu)先級。優(yōu)先級和操作符在編程上總是一起出現(xiàn)的,TcpDump表達(dá)式也不
例外。
這里給一個簡單示例,獲取從192.168.0.2發(fā)往遠(yuǎn)端3389或者22端口的流量,命令
如下。
TcpDump還可以針對連接的不同狀態(tài)(tcp flags)進(jìn)行專門的過濾。最常見的需求就
是過濾SYN和RST兩個狀態(tài)的情況。RST的查看命令如下。
tcpdump 'tcp{13:].一&4¨i1-01j__。 _ ?
SYN的查看命令如下。
tcpdump "tcp[13Ji 這里的“tcp[13]”指的是在tcp header中,偏移量為13的位置的數(shù)字。不過這個寫法
不太便于記憶。所以TcpDump提供了另一種方便記憶的寫法。
i tcpdLimp:≯tep [TtcpfYagsY謄裝jtcp二syn建立jo≥_、 +j≯一
最后,TcpDump的用法遠(yuǎn)遠(yuǎn)不止這些,實際運維工作中甚至可以通過TcpDump來過
濾Oracle的SQL做檢查分析等。讀者千萬記住在使用的時候要多多參照man文檔。
1.3.6 Wireshark
TcpDump作為Linux默認(rèn)分發(fā)的工具,簡便好用,但對普通需求場景也不是特別易用
——不管是HEX還是ASCII格式,可讀性都不是特別強(qiáng)。所以,很多時候,為了方便解
讀,可能會采取更簡單的做法,即通過“tcpdump -s0 -w”保存好全部數(shù)據(jù)包,然后交給
Wireshark讀取查看。
Wireshark原名Ethereal,2006年后才改叫這個名字,和TcpDump -樣使用Libpcap
庫,不過它帶有一個GTK+的圖形界面。