一、抓包
拿到一個(gè)網(wǎng)絡(luò)包時(shí),我們總是希望它是盡可能小的。操作一個(gè)大包相當(dāng)費(fèi)時(shí),有時(shí)甚至?xí)罊C(jī)。如果讓初學(xué)者分析1GB以上的包,估計(jì)會(huì)被打擊得信心全無。所以抓包時(shí)應(yīng)該盡量只抓必要的部分。
1.只抓包頭。一般能抓到的每個(gè)包的最大長度為1514字節(jié),啟用了Jumbo Frame(巨型幀)之后可達(dá)9000字節(jié)以上,而大多數(shù)時(shí)候我們只需要IP頭或者TCP頭就足夠分析了。在Wireshark上可以這樣抓到包頭:單擊菜單欄上的Capture-->Options,然后在彈出的窗口上定義“Limit each packet to”的值。我一般設(shè)個(gè)偏大的數(shù)字:80字節(jié),也就是說每個(gè)包只抓前80字節(jié)。這樣TCP層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的信息都可以包括在內(nèi)(見圖1)。

圖1
如果問題涉及應(yīng)用層,就應(yīng)該再加上應(yīng)用層協(xié)議頭的長度。如果你像我一樣經(jīng)常忘記不同協(xié)議頭的長度,可以輸入一個(gè)大點(diǎn)的值。即便設(shè)成200字節(jié),也比1514字節(jié)小多了。
以上是使用Wireshark抓包時(shí)的建議。用tcpdump命令抓包時(shí)可以用“-s”參數(shù)達(dá)到相同效果。比如以下命令只抓eth0上每個(gè)包的前80字節(jié),并把結(jié)果存到/tmp/tcpdump.cap文件中。[root@server_1 /]# tcpdump -i eth0 -s 80 -w /tmp/tcpdump.cap
2.只抓必要的包。服務(wù)器上的網(wǎng)絡(luò)連接可能非常多,而我們只需要其中的一小部分。Wireshark的Capture Filter可以在抓包時(shí)過濾掉不需要的包。比如在成百上千的網(wǎng)絡(luò)連接中,我們只對(duì)IP為10.1.1.1的包感興趣,那就可以在Wireshark上這樣設(shè)置:單擊菜單欄上的Capture-->Options,然后在Capture Filter中輸入“host 10.1.1.1”(見圖2)。

圖2
二、個(gè)性化設(shè)置
Wireshark的默認(rèn)設(shè)置堪稱友好,每個(gè)人的愛好各不相同,根據(jù)自己的喜好自己進(jìn)行設(shè)置即可
1.我經(jīng)常需要參照服務(wù)器上的日志時(shí)間,找到發(fā)生問題時(shí)的網(wǎng)絡(luò)包。所以就把Wireshark的時(shí)間調(diào)成與服務(wù)器一樣的格式。單擊Wireshark的View-->Time Display Format-->Date and Time of Day,就可以實(shí)現(xiàn)此設(shè)置(見圖3)。

圖3

圖3
2.不同類型的網(wǎng)絡(luò)包可以自定義顏色,比如網(wǎng)絡(luò)管理員可能會(huì)把TCP/UDP等協(xié)議相關(guān)的網(wǎng)絡(luò)包設(shè)成最顯眼的顏色。而文件服務(wù)器的管理員則更關(guān)心FTP、SMB和NFS協(xié)議的顏色。我們可以通過View -->Coloring Rules來設(shè)置顏色。如果同事已經(jīng)有一套非常適合你工作內(nèi)容的配色方案,可以請(qǐng)他從Coloring Rules窗口導(dǎo)出,然后導(dǎo)入到你的Wireshark里(見圖4)。記得下次和他吃飯時(shí)主動(dòng)買單,要知道配一套養(yǎng)眼的顏色可要花不少時(shí)間。

圖4
3.更多的設(shè)置可以在Edit-->Preferences窗口中完成。這個(gè)窗口的設(shè)置精度可以達(dá)到一些協(xié)議的細(xì)節(jié)。比如在此窗口單擊Protocols-->TCP就可以看到多個(gè)TCP相關(guān)選項(xiàng),將鼠標(biāo)停在每一項(xiàng)上都會(huì)有詳細(xì)介紹。(圖5)

圖5
4.如果你在其他時(shí)區(qū)的服務(wù)器上抓包,然后下載到自己的電腦上分析,最好把自己電腦的時(shí)區(qū)設(shè)成跟抓包的服務(wù)器一樣。這樣,Wireshark顯示的時(shí)間才能匹配服務(wù)器上日志的時(shí)間。比如說,服務(wù)器的日志顯示2/13/2014 13:01:32有一個(gè)錯(cuò)誤信息。那我們要在自己電腦上調(diào)整時(shí)區(qū)之后,才能到Wireshark上檢查2/13/2014 13:01:32左右的包,否則就得先換算時(shí)間。
三、讓wireshark自動(dòng)分析
有些類型的問題,我們根本不需要研究包里的細(xì)節(jié),直接交給Wireshark分析就行了。
1.單擊Wireshark的Analyze-->Expert Info Composite,就可以在不同標(biāo)簽下看到不同級(jí)別的提示信息。比如重傳的統(tǒng)計(jì)、連接的建立和重置統(tǒng)計(jì),等等。在分析網(wǎng)絡(luò)性能和連接問題時(shí),我們經(jīng)常需要借助這個(gè)功能。圖6是TCP包的重傳統(tǒng)計(jì)。

圖6
2.單擊Statistics-->TCP Stream Graph,可以生成幾類統(tǒng)計(jì)圖。比如我曾經(jīng)用Time-Sequence Graph (Stevens)生成了圖7。

圖7
結(jié)語
以上就是關(guān)于wireshark在使用中的一些技巧,歡迎收藏!