日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Wireshark使用教程用户手册

發布時間:2024/8/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Wireshark使用教程用户手册 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第 1 章 介紹
1.1. 什么是Wireshark
Wireshark 是網絡包分析工具。網絡包分析工具的主要作用是嘗試捕獲網絡包, 并嘗試顯示包的盡可能詳細的情況。
你可以把網絡包分析工具當成是一種用來測量有什么東西從網線上進出的測量工具,就好像使電工用來測量進入電信的電量的電度表一樣。(當然比那個更高級)
過去的此類工具要么是過于昂貴,要么是屬于某人私有,或者是二者兼顧。 Wireshark出現以后,這種現狀得以改變。
Wireshark可能算得上是今天能使用的最好的開元網絡分析軟件。
1.1.1. 主要應用
下面是Wireshark一些應用的舉例:
? 網絡管理員用來解決網絡問題
? 網絡安全工程師用來檢測安全隱患
? 開發人員用來測試協議執行情況
? 用來學習網絡協議
除了上面提到的,Wireshark還可以用在其它許多場合
1.1.2. 特性
? 支持UNIX和Windows平臺
? 在接口實時捕捉包
? 能詳細顯示包的詳細協議信息
? 可以打開/保存捕捉的包
? 可以導入導出其他捕捉程序支持的包數據格式
? 可以通過多種方式過濾包
? 多種方式查找包
? 通過過濾以多種色彩顯示包
? 創建多種統計分析
? …還有許多
不管怎么說,要想真正了解它的強大,您還得使用它才行
圖 1.1. Wireshark捕捉包并允許您檢視其內

1.1.3. 捕捉多種網絡接口
Wireshark 可以捕捉多種網絡接口類型的包,哪怕是無線局域網接口。想了解支持的所有網絡接口類型, 可以在我們的網站上找到http://wiki.wireshark.org/CaptureSetup/NetworkMedia.
1.1.4. 支持多種其它程序捕捉的文件
Wireshark可以打開多種網絡分析軟件捕捉的包,詳見???
1.1.5. 支持多格式輸出
Wieshark可以將捕捉文件輸出為多種其他捕捉軟件支持的格式,詳見???
1.1.6. 對多種協議解碼提供支持
可以支持許多協議的解碼(在Wireshark中可能被稱為解剖)???
1.1.7. 開源軟件
Wireshark是開源軟件項目,用GPL協議發行。您可以免費在 任意數量的機器上使用它,不用擔心授權和付費問題,所有的源代碼在GPL框架下都可以免費使用。因為以上原因,人們可以很容易在Wireshark上添加新的協議,或者將其作為插件整合到您的程序里,這種應用十分廣泛。
1.1.8. Wireshark不能做的事
Wireshark不能提供如下功能
? Wireshark不是入侵檢測系統。如果他/她在您的網絡做了一些他/她們不被允許的奇怪的事情,Wireshark不會警告您。但是如果發生了奇怪的事情,Wireshark可能對察看發生了什么會有所幫助。 [3]
? Wireshark不會處理網絡事務,它僅僅是“測量”(監視)網絡。Wireshark不會發送網絡包或做其它交互性的事情(名稱解析除外,但您也可以禁止解析)。
1.2. 系通需求
想要安裝運行Wireshark需要具備的軟硬件條件…
1.2.1. 一般說明
? 給出的值只是最小需求,在大多數網絡中可以正常使用,但不排除某些情況下不能使用。 [4]
? 在繁忙的網絡中捕捉包將很容塞滿您的硬盤!舉個簡單的例子:在100MBIT/s全雙工以太網中捕捉數據將會產生750MByties/min的數據!在此類網絡中擁有高速的CPU,大量的內存和足夠的磁盤空間是十分有必要的。
? 如果Wireshark運行時內存不足將會導致異常終止??梢栽趆ttp://wiki.wireshark.org/KnownBugs/OutOfMemory察看詳細介紹以及解決辦法。
? Wireshark作為對處理器時間敏感任務,在多處理器/多線程系統環境工作不會比單獨處理器有更快的速度,例如過濾包就是在一個處理器下線程運行,除了以下情況例外:在捕捉包時“實時更新包列表”,此時捕捉包將會運行在一個處理下,顯示包將會運行在另一個處理器下。此時多處理或許會有所幫助。[5]
1.2.2. Microsoft Windows
? Windows 2000,XP Home版,XP Pro版,XP Tablet PC,XP Media Center, Server 2003 or Vista(推薦在XP下使用)
? 32-bit奔騰處理器或同等規格的處理器(建議頻率:400MHz或更高),64-bit處理器在WoW64仿真環境下-見一般說明
? 128MB系統內存(建議256Mbytes或更高)
? 75MB可用磁盤空間(如果想保存捕捉文件,需要更多空間) 800600(建議12801024或更高)分辨率最少65536(16bit)色,(256色舊設備安裝時需要選擇”legacy GTK1”)
? 網卡需求:
o 以太網:windows支持的任何以太網卡都可以
o 無線局域網卡:見MicroLogix support list, 不捕捉802.11包頭和無數據楨。
o 其它接口見:http://wiki.wireshark.org/CaptureSetup/NetworkMedia
說明
? 基于以下三點原因,將不會對舊版Windows提供支持:沒有任何開發人員正在使用那些操作系統, 這將使支持變得更加困難,Wireshark運行所依賴的庫文件(如GTK,WinPCap等)也放棄對它們的支持。 同樣,微軟也放棄了對它們的技術支持。
? Windows 95,98和ME不能運行Wireshark。已知的最后一個可以運行在以上平臺的版本是Ethereal0.99.0(需要安裝WinPCap3.1),你依然可以使用從: http://ethereal.com/download.html獲得。順便提一下:微軟于2006年1月11日停止對98/ME支持。
? Windows NT 4.0今后將無法運行Wireshark.最有一個已知版本是Wireshark0.99.4(需安裝自帶的WinPCap3.1),你依然可以從:http://prdownloads.sourceforge.net/wireshark/wireshark-setup-0.99.4.exe得到它。順便提一下:微軟于2005年12月31日停止對NT 4.0的支持。
? Windows CE 及嵌入版windows(NT/XP)不被支持。
? 64-bit處理器運行Wireshark需要在32bit仿真環境下(稱作WoW64),最低需要安裝WinPCap4.0。
? 支持多顯示(不知道是顯示其還是監視器)安裝,但會遇到一些不可預料的問題。
1.2.3. Unix/Linux
Wireshark目前可以運行在許多UNIX平臺,系統可以對照上面Windows下的指標。 二進制包最少在以下平臺可用:
? APPle Mac OSX
? Debian GNU/Linux
? FreeBSD
? NetBSD
? OpenPKG
? Red Hat Fedora/Enterprise Linux
? rPath Linux
? Sun Solaris/i386
? Sun Solaris/Sparc
如果二進制包在您的平臺無法使用,你可以下載源文件并嘗試編譯它。 希望您能發送郵件到wireshark-dev[AT]wireshark.org .分享您的經驗。
1.3. 從哪里可以得到Wireshark
你可以從我們的網站下載最新版本的Wireshark http://www.wireshark.org/download.html.網站上您可以選擇適合您的鏡像站點。
Wireshark通常在4-8周內發布一次新版本
如果您想獲得Wireshark發布的消息通知,你可以訂閱Wireshark-announce郵件列表。詳見第 1.6.4 節 “郵件列表”
1.4. Wiresahrk簡史[6]
1997年以后,Gerald Combs 需要一個工具追蹤網絡問題并想學習網絡知識。所以他開始開發Ethereal (Wireshark項目以前的名稱) 以解決以上的兩個需要。
Ethereal是第一版,經過數次開發,停頓,1998年,經過這么長的時間,補丁,Bug報告,以及許多的鼓勵,0.2.0版誕生了。Ethereal就是以這種方式成功的。
此后不久,Gilbert Ramirez發現它的潛力,并為其提供了底層分析
1998年10月,Guy Harris正尋找一種比TcpView更好的工具,他開始為Ethereal進行改進,并提供分析。
998年以后,正在進行TCP/IP教學的Richard Sharpe 關注了它在這些課程中的作用。并開始研究該軟件是否他所需要的協議。如果不行,新協議支持應該很方便被添加。所以他開始從事Ethereal的分析及改進。
從那以后,幫助Ethereal的人越來越多,他們的開始幾乎都是由于一些尚不被Ethereal支持的協議。所以他們拷貝了已有的解析器,并為團隊提供了改進回饋。
2006年項目Moved House(這句不知道怎么翻譯)并重新命名為:Wireshark.
1.5. Wireshark開發維護
Wireshark最初由Gerald Combs開發。目前由Wireshark team進行進一步開發和維護。Wireshark team是一個由修補bug提高Wireshark功能的獨立成員組成的松散組織。
有大量的成員為Wireshark提供協議分析。同時我們也希望這些活動能持續機芯。通過查看Wireshark幫助菜單下的About,你可以找到為Wireshark提供代碼的人員名單,或者你也可以通過Wireshark 網站的authors頁面找到。
Wireshark 是開源軟件項目,發布遵循GNU General Public Licence (GPL協議),所有源代碼可以在GPL框架下免費使用。歡迎您修改Wireshark以便適合您的需要,如果您可以提供您的改進給Wireshark team ,我們將不勝感激。
為Wireshark Team 提供您的改進建議,有以下益處:
? 如果其他人發現您提供的改進十分有用會肯定它們的價值,您將會得知你曾像Wireshark team 一樣幫助過他人
? The developers of Wireshark might improve your changes even more, as there’s always room for improvement. Or they may implement some advanced things on top of your code, which can be useful for yourself too.
? The maintainers and developers of Wireshark will maintain your code as well, fixing it when API changes or other changes are made, and generally keeping it in tune with what is happening with Wireshark. So if Wireshark is updated (which is done often), you can get a new Wireshark version from the website and your changes will already be included without any effort for you.
Wireshar 源代碼和二進制kits (二進制工具包? )可以根據自己的平臺對應下載,網站是:http://www.wireshark.org/download.html.
1.6. 匯報問題和獲得幫助
如果您在使用中碰到了問題,或者您需要Wireshark的幫助,有以下幾種可能讓您有興趣的方法(當然,還包括這本書)。
1.6.1. 網站
通過訪問http://www.wireshark.org你將會發現關于Wireshark許多有用的信息。
1.6.2. 百科全書
Wireshark Wiki (http://wiki.wireshark.org)提供廣泛的跟Wireshark以及捕捉包有關信息。你將會發現一些沒有被包括在本書內信息,例如:wiki上有解釋如何在交換網絡捕捉包,同時我們正努力建立協議參考,等等。
最好的事情是,如果對某些知識有獨到見解(比如您精通某種協議),您可以通過瀏覽器編輯它。
1.6.3. FAQ
最經常被問到的問題“Frequently Asked Questions”提供一個經常被問到的問題以及答案的列表。
Read The FAQ
在您發送任何郵件到郵件列表之前,確信您已經閱讀了FAQ,因為這里面很可能已經提供了您想問的問題,答案。這將大大節約您的時間(記住,有很多人提交了大量的郵件)。
1.6.4. 郵件列表
下面的幾個幾個郵件列表,分別屬于不同的主題:
Wireshark-users
這是一個Wireshark用戶的列表,大家提交關于安裝和使用Wireshark的問題,其它人(非常有用)提供的答案。(譯者注:其他人當然也是指用戶?)
wireshark-announce
這是一個關于程序發布信息的列表,通常每4-8周出現一次。
wireshark-dev
這是一個關于Wireshark開發的郵件列表,如果開始開發協議分析,可以從加入該列表
你可以通過網站http://www.wireshark.org訂閱每個郵件列表.簡單點擊網站左手邊的郵件列表鏈接就可以。郵件同樣在網站上可以看到存檔。
提示
你可以搜索存檔看看有沒有人問過跟你一樣的問題,或許您的問題已經有了答案。這樣您就不必提交郵件以等待別人答復您了。
1.6.5. 報告問題
注意
在您提交任何問題之前,請確定您安裝的是最新版本的Wireshark。
當您提交問題的時候,如果您提供如下信息將會對解決問題很有幫助。

  • Wireshark的版本,及其依賴的庫的版本,如GTK+,等等。你可以通過Wireshark –v命令獲得版本號。(估計是UNIX/Linux平臺)。

  • 運行Wireshark的平臺信息。

  • 關于問題的詳細描述。

  • 如果您得到錯誤或者警告信息,拷貝錯誤信息的文本(以及在此之前或之后的文本,如果有的話),這樣其他人可能會發現發生問題的地方。請不要發送諸如:“I got a warning while doing x” [7],因為這樣看起來不是個好主意。
    不要發送大文件
    不要發送過大的文件(>100KB)到郵件列表,在郵件中附加一個能提供足夠數據的記事本就可以。大文件會讓很多郵件列表里的那些對您的問題不感興趣的用戶感到惱怒。如果需要,你可以單獨發送那些數據給對您問題真正感興趣,要求您發送數據的人。
    不要發送機密信息!
    如果您發送捕捉數據到郵件列表,請確定它們不包含敏感或者機密信息,比如密碼或者諸如此類的。
    1.6.6. 在UNIX/Linux平臺追蹤軟件錯誤
    如果您發送捕捉數據到郵件列表,請確定它們不包含敏感或者機密信息,比如密碼或者諸如此類的。
    你可以通過如下命令獲得追蹤信息:
    $ gdb whereis wireshark | cut -f2 -d: | cut -d' ' -f2 core >&bt.txt
    backtrace
    ^D
    $

    注意
    在逐字輸入第一行的字符![8]

    注意
    追蹤是一個GDB命令。你可以在輸完第一上以后輸入它,但是會沒有相應,^D命令(CTL+D)將會退出GDB命令。以上命令讓你在當前目錄得到一個名為bt.txt的文本文件,它包含您的bug報告。
    注意
    如果您缺少GDB,您必須檢查您的操作系統的調試器。
    你可以發送追蹤郵件到wireshark-dev[AT]wireshark.org郵件列表
    1.6.7. 在Windows平臺追蹤軟件錯誤
    Windows下無法包含符號文件(.pdb),它們非常大。因此不太可能創建十分有意義的追蹤文件。你將匯報軟件錯誤就像前面描述的其他問題一樣。(這句不盡人意)


  • [3] 譯者注:因為不是入侵檢測之用,所以不會將入侵檢測和普通通信區別對待,但是都會體現在網絡包里面,如果您有足夠的經驗,或許能通過監視網絡包發現入侵檢測
    [4] 譯者注:原文 “The values below are the minimum requirements and only “rules of thumb” for use on a moderately used network”,其中”rules of thumb”中譯名應該是拇指規則,但網上關于拇指規則解釋莫衷一是,大致意思是說:大多數情況下適用,但并非所有情況。這里翻譯的有點別扭
    [5] 譯者注:我對這句話的理解是,正如播放電影一樣,高性能的處理器只會增強顯示效果,您并不需要將原來30分鐘的影片10分鐘之內看完。當然,對減少延時還是有作用的。但是感覺這句有點閱讀困難,可能翻譯的有點問題.
    [6] 本段因為有很多協議,程序開發方面的術語,翻譯得比較糟糕
    [7] 譯者注:那句話的意思是,我在XX時碰到一個警告信息
    [8] 譯者注:原文是:“Type the characters in the first line verbatim! Those are back-tics there!”,Those are back-tics there!不知道是什么意思,back-tics=后勤抽搐?熟悉Linux的或許知道
    ?
    第 2 章 編譯/安裝Wireshark
    2.1. 須知
    萬事皆有開頭,Wireshark也同樣如此。要想使用Wireshark,你必須:
    ? 獲得一個適合您操作系統的二進制包,或者
    ? 獲得源文件為您的操作系統編譯。
    目前,只有兩到三種Linux發行版可以傳送Wireshark,而且通常傳輸的都是過時的版本。至今尚未有UNIX版本可以傳輸Wireshark . Windows的任何版本都不能傳輸Wireshark.基于以上原因,你需要知道從哪能得到最新版本的Wireshark以及如何安裝它。
    本章節向您展示如何獲得源文件和二進制包,如何根據你的需要編譯Wireshark源文件。
    以下是通常的步驟:

  • 下載需要的相關包,例如:源文件或者二進制發行版。

  • 將源文件編譯成二進制包(如果您下載的是源文件的話)。這樣做做可以整合編譯和/或安裝其他需要的包。

  • 安裝二進制包到最終目標位置。
    2.2. 獲得源
    你可以從Wireshark網站http://www.wireshark.org.同時獲取源文件和二進制發行版。選擇您需要下載的鏈接,然后選擇源文件或二進制發行包所在的鏡像站點(盡可能離你近一點的站點)。
    下載所有需要的文件 !
    一般來說,除非您已經下載Wireshark,如果您想編譯Wireshark源文件,您可能需要下載多個包。這些在后面章節會提到。
    注意
    當你發現在網站上有多個二進制發行版可用,您應該選擇適合您平臺的版本,他們同時通常會有多個版本緊跟在當前版本后面,那些通常時擁有那些平臺的用戶編譯的。
    基于以上原因,您可能想自己下載源文件自己編譯,因為這樣相對方便一點。
    2.3. 在UNIX下安裝之前
    在編譯或者安裝二進制發行版之前,您必須確定已經安裝如下包:

  • GTK+, The GIMP Tool Kit.
    您將會同樣需要Glib.它們都可以從www.gtk.org獲得。

  • Libpcap , Wireshark用來捕捉包的工具
    您可以從www.tcpdump.org獲得。
    根據您操作系統的不同,您或許能夠安裝二進制包,如RPMs.或許您需要獲得源文件并編譯它。
    如果您已經下載了GTK+源文件,例 2.1 “從源文件編譯GTK+”提供的指令對您編譯有所幫助。
    例 2.1. 從源文件編譯GTK+
    gzip -dc gtk±1.2.10.tar.gz | tar xvf -

    ./configure

    make install

    注意
    您可能需要修改例 2.1 “從源文件編譯GTK+”中提供的版本號成對應您下載的GTK+版本。如果GTK的目錄發生變更,您同樣需要修改它。,tar xvf 顯示您需要修改的目錄。
    注意
    如果您使用Linux,或者安裝了GUN tar,您可以使用tar zxvfgtk±1.2.10.tar.gz命令。同樣也可能使用gunzip –c或者gzcat而不是許多UNIX中的gzip –dc
    注意
    如果您在windows中下載了gtk+ 或者其他文件。您的文件可能名稱為:gtk±1_2_8_tar.gz
    如果在執行例 2.1 “從源文件編譯GTK+”中的指令時有錯誤發生的話,你可以咨詢GTK+網站。
    如果您已經下載了libpcap源,一般指令如例 2.2 “編譯、安裝libpcap” 顯示的那樣會幫您完成編譯。同樣,如果您的操作系統不支持tcpdump,您可以從tcpdump網站下載安裝它。
    例 2.2. 編譯、安裝libpcap
    gzip -dc libpcap-0.9.4.tar.Z | tar xvf -

    cd libpcap-0.9.4
    ./configure

    make

    make install

    注意
    Libpcap的目錄需要根據您的版本進行修改。tar xvf命令顯示您解壓縮的目錄。
    RedHat 6.x及其以上版本環境下(包括基于它的發行版,如Mandrake),您可以直接運行RPM安裝所有的包。大多數情況下的Linux需要安裝GTK+和Glib.反過來說,你可能需要安裝所有包的定制版。安裝命令可以參考例 2.3 “在RedHat Linux 6.2或者基于該版本得發行版下安裝需要的RPM包”。如果您還沒有安裝,您可能需要安裝需要的RPMs。
    例 2.3. 在RedHat Linux 6.2或者基于該版本得發行版下安裝需要的RPM包
    cd /mnt/cdrom/RedHat/RPMS
    rpm -ivh glib-1.2.6-3.i386.rpm
    rpm -ivh glib-devel-1.2.6-3.i386.rpm
    rpm -ivh gtk±1.2.6-7.i386.rpm
    rpm -ivh gtk±devel-1.2.6-7.i386.rpm
    rpm -ivh libpcap-0.4-19.i386.rpm

    注意
    如果您使用RedHat 6.2之后的版本,需要的RMPs包可能已經變化。您需要使用正確的RMPs包。
    在Debian下您可以使用apt-ge命令。apt-get 將會為您完成所有的操作。參見例 2.4 “在Deban下安裝Deb”
    例 2.4. 在Deban下安裝Deb
    apt-get install wireshark-dev

  • 2.4. 在UNIX下編譯Wireshark
    如果在Unix操作系統下可以用如下步驟編譯Wireshark源代碼:

  • 如果使用Linux則解壓gzip’d tar文件,如果您使用UNIX,則解壓GUN tar文件。對于Linux命令如下:
    tar zxvf wireshark-0.99.5-tar.gz
    對于 UNIX版本,命令如下
    gzip -d wireshark-0.99.5-tar.gz
    tar xvf wireshark-0.99.5-tar
    注意
    使用管道命令行 gzip –dc Wireshark-0.99.5-tar.gz|tar xvf 同樣可以[9]

    注意
    如果您在Windows下下載了Wireshark,你會發現文件名中的那些點變成了下劃線。

  • 將當前目錄設置成源文件的目錄。

  • 配置您的源文件以編譯成適合您的Unix的版本。命令如下:
    ./configure
    如果找個步驟提示錯誤,您需要修正錯誤,然后重新configure.解決編譯錯誤可以參考第 2.6 節 “解決UNIX下安裝過程中的問題 ”

  • 使用make命令將源文件編譯成二進制包,例如:
    make

  • 安裝您編譯好的二進制包到最終目標,使用如下命令:
    make install
    一旦您使用make install安裝了Wireshark,您就可以通過輸入Wireshark命令來運行它了。
    2.5. 在UNIX下安裝二進制包
    一般來說,在您的UNIX下安裝二進制發行包使用的方式根據您的UNIX的版本類型而各有不同。例如AIX下,您可以使用smit安裝,Tru64 UNIX您可以使用 setld 命令。
    2.5.1. 在Linux或類似環境下安裝RPM包
    使用如下命令安裝Wireshark RPM包
    rpm -ivh wireshark-0.99.5.i386.rpm
    如果因為缺少Wireshark依賴的軟件而導致安裝錯誤,請先安裝依賴的軟件,然后再嘗試安裝。REDHAT下依賴的軟件請參考例 2.3 “在RedHat Linux 6.2或者基于該版本得發行版下安裝需要的RPM包”
    2.5.2. 在Debian環境下安裝Deb包
    使用下列命令在Debian下安裝Wireshark
    apt-get install Wireshark
    apt-get 會為您完成所有的相關操作
    2.5.3. 在Gentoo Linux環境下安裝Portage
    使用如下命令在Gentoo Linux下安裝wireshark以及所有的需要的附加文件
    USE=“adns gtk ipv6 portaudio snmp ssl kerberos threads selinux” emerge wireshark
    2.5.4. 在FreeBSD環境下安裝包
    使用如下命令在FreeBSD下安裝Wireshark
    pkg_add -r wireshark
    pkg_add會為您完成所有的相關操作
    2.6. 解決UNIX下安裝過程中的問題 [10]
    安裝過程中可能會遇到一些錯誤信息。這里給出一些錯誤的解決辦法:
    如果configure那一步發生錯誤。你需要找出錯誤的原因,您可以檢查日志文件config.log(在源文件目錄下),看看都發生了哪些錯誤。有價值的信息通常在最后幾行。
    一般原因是因為您缺少GTK+環境,或者您的GTK+版本過低。configure錯誤的另一個原因是因為因為缺少libpcap(這就是前面提到的捕捉包的工具)。
    另外一個常見問題是很多用戶抱怨最后編譯、鏈接過程需要等待太長時間。這通常是因為使用老式的sed命令(比如solaris下傳輸)。自從libtool腳本使用sed命令建立最終鏈接命令,常常會導致不可知的錯誤。您可以通過下載最新版本的sed解決該問題http://directory.fsf.org/GNU/sed.html.
    如果您無法檢測出錯誤原因。發送郵件到wireshark-dev說明您的問題。當然,郵件里要附上config.log以及其他您認為對解決問題有幫助的東西,例如make過程的追蹤。
    2.7. 在Windows下編譯源
    在Windows平臺下,我們建議最好是使用二進制包直接安裝,除非您是從事Wireshark開發的。 如果想了解關于Windows下編譯安裝Wireshark,請查看我們的開發WIKI網站http://wiki.wireshark.org/Development來了解最新的開發方面的文檔。
    2.8. 在Windows下安裝Wireshark
    本節將探討在Windows下安裝Wireshark二進制包。
    2.8.1. 安裝Wireshark
    您獲得的Wireshark二進制安裝包可能名稱類似Wireshark-setup-x.y.z.exe. Wireshark安裝包包含WinPcap,所以您不需要單獨下載安裝它。
    您只需要在http://www.wireshark.org/download.html#releases下載Wireshark安裝包并執行它即可。除了普通的安裝之外,還有幾個組件供挑選安裝。
    提示:盡量保持默認設置
    如果您不了解設置的作用的話。
    選擇組件[11]
    Wireshark(包括GTK1和GTK2接口無法同時安裝):
    如果您使用GTK2的GUI界面遇到問題可以嘗試GTK1,在Windows下256色(8bit)顯示模式無法運行GTK2.但是某些高級分析統計功能在GTK1下可能無法實現。
    ? Wireshark GTK1-Wireshark 是一個GUI網絡分析工具
    ? Wireshark GTK2-Wireshark 是一個GUI網絡分析工具(建議使用GTK2 GUI模組工具)
    ? GTK-Wimp-GTKWimp是詩歌GTK2窗口模擬(看起來感覺像原生windows32程序,推薦使用)
    ? TSshark-TShark 是一個命令行的網絡分析工具
    插件/擴展(Wireshark,TShark分析引擎):
    ? Dissector Plugins-分析插件:帶有擴展分析的插件
    ? Tree Statistics Plugins-樹狀統計插件:統計工具擴展
    ? Mate - Meta Analysis and Tracing Engine (experimental):可配置的顯示過濾引擎,參考http://wiki.wireshark.org/Mate.
    ? SNMP MIBs: SNMP,MIBS的詳細分析。
    Tools/工具(處理捕捉文件的附加命令行工具
    User’s Guide-用戶手冊-本地安裝的用戶手冊。如果不安裝用戶手冊,幫助菜單的大部分按鈕的結果可能就是訪問internet.
    ? Editcap - Editcap is a program that reads a capture file and writes some or all of the packets into another capture file. /Editcap是一個讀取捕捉文件的程序,還可以將一個捕捉文件力的部分或所有信息寫入另一個捕捉文件。(文件合并or插入?)
    ? Text2Pcap - Text2pcap is a program that reads in an ASCII hex dump and writes the data into a libpcap-style capture file./Tex2pcap是一個讀取ASCII hex,寫入數據到libpcap個文件的程序。
    ? Mergecap - Mergecap is a program that combines multiple saved capture files into a single output file. / Mergecap是一個可以將多個播捉文件合并為一個的程序。
    ? Capinfos - Capinfos is a program that provides information on capture files. /Capinfos是一個顯示捕捉文件信息的程序。
    “Additional Tasks”頁
    ? Start Menu Shortcuts-開始菜單快捷方式-增加一些快捷方式到開始菜單
    ? Desktop Icon-桌面圖標-增加Wireshark圖標到桌面
    ? Quick Launch Icon-快速啟動圖標-增加一個Wireshark圖標到快速啟動工具欄
    ? Associate file extensions to Wireshark-Wireshark文件關聯-將捕捉包默認打開方式關聯到Wireshark
    Install WinPcap?”頁
    Wireshark安裝包里包含了最新版的WinPcap安裝包。
    如果您沒有安裝WinPcap 。您將無法捕捉網絡流量。但是您還是可以打開以保存的捕捉包文件。
    ? Currently installed WinPcap version-當前安裝的WinPcap版本
    ? Install WinPcap x.x -如果當前安裝的版本低于Wireshark自帶的,該選項將會是默認值。
    ? Start WinPcap service “NPF” at startup -將WinPcap的服務NPF在啟動時運行-這樣其它非管理員用戶就同樣可以捕捉包了。
    更多關于WinPcap的信息:
    ? Wireshark 相關http://wiki.wireshark.org/WinPcap
    ? WinPcap官方網站:http://www.winpcap.org
    安裝命令選項
    您可以直接在命令行運行安裝包,不加任何參數,這樣會顯示常用的參數以供交互安裝。 在個別應用中,可以選擇一些參數定制安裝:
    ? /NCRC 禁止CRC校檢
    ? /S 靜默模式安裝或卸載Wireshark.注意:靜默模式安裝時不會安裝WinPcap!
    ? /desktopicon 安裝桌面圖標,/desktopicon=yes表示安裝圖標,反之則不是,適合靜默模式。
    ? /quicklaunchicon 將圖標安裝到快速啟動工具欄,=yes-安裝到工具欄,=no-不安裝,不填按默認設置。
    ? /D 設置默認安裝目錄($INSTDIR),首選安裝目錄和安裝目錄注冊表鍵值,該選項必須設置到最后。即使路徑包含空格
    例 2.5.
    wireshark-setup-0.99.5.exe /NCRC /S /desktopicon=yes /quicklaunchicon=no /D=C:\Program Files\Foo

  • 2.8.2. 手動安裝WinPcap
    注意
    事先聲明,Wireshark安裝時會謹慎對待WinPcap的安裝,所以您通常不必擔心WinPcap。
    下面的WinPcap僅適合您需要嘗試未包括在Wireshark內的不同版本WinPcap。例如一個新版本的WinPcap發布了,您需要安裝它。
    單獨的WinPcap版本(包括alpha or beta版)可以在下面地址下載到
    ? WinPcap官方網站:http://www.winpcap.org
    ? Wiretapped.net 鏡像站點: http://www.mirrors.wiretapped.net/security/packet-capture/winpcap
    在下載頁面您將會發現WinPcap的安裝包名稱通常類似于”auto-installer”。它們可以在NT4.0/2000/XP/vista下安裝。
    2.8.3. 更新Wireshark
    有時候您可能想將您的WinPcap更新到最新版本,如果您訂閱了Wireshark通知郵件,您將會獲得Wireshark新版本發布的通知,見第 1.6.4 節 “郵件列表”

    新版誕生通常需要8-12周。更新Wireshark就是安裝一下新版本。下載并安裝它就可以。更新通常不需要重新啟動,也不會更改過去的默認設置
    2.8.4. 更新WinPcap
    WinPcap的更新不是十分頻繁,通常一年左右。新版本出現的時候您會收到WinPcap的通知。更新WinPcap后需要重新啟動。
    警告
    在安裝新版WinPcap之前,如果您已經安裝了舊版WinPcap,您必須先卸載它。最近版本的WinPcap安裝時會自己卸載舊版。
    2.8.5. 卸載Wireshark
    你可以用常見方式卸載Wireshark,使用添加/刪除程序,選擇”Wireshark”選項開始卸載即可。
    Wireshark卸載過程中會提供一些選項供您選擇卸載哪些部分,默認是卸載核心組件,但保留個人設置和WinPcap.
    WinPcap默認不會被卸載,因為其他類似Wireshark的程序有可能同樣適用WinPcap
    2.8.6. 卸載WinPcap
    你可以單獨卸載WinPcap,在添加/刪除程序選擇”WinPcap”卸載它。
    注意
    卸載WinPcap之后您將不能使用Wireshark捕捉包。
    在卸載完成之后最好重新啟動計算機。


    [9] 譯者注:看到別人翻譯Pipelin之類的,似乎就是叫管道,不知道是否準確
    [10] 譯者注:本人不熟悉UNIX/LINUX,這一段翻譯的有點云里霧里,可能大家通過這部分想安裝Wireshark會適得其反,那就對不住了。下面個人說一下UNIX/LINUX下安裝方法。 UNIX/LINUX下安裝時,有兩種安裝方式,1是下載源碼包自己編譯,這種方式的好處是因為下載源碼包是單一的,可以自行加以修改,編譯就是適合自己平臺的了。 2、是利用已經做好的發行包直接安裝,這種方法的好處是只要下載到跟自己平臺對應的就可以,但缺點也在這里,不是每個平臺都能找到合適的。不管是編譯安裝,還是使用發行包安裝,都需要有一些有些基本基本支持。比如Linux下的GTK+支持,捕捉包時需要用的libpcap. 這一點可以參考第 2.3 節 “在UNIX下安裝之前 ”。編譯的一般步驟是解壓,編譯,安裝(tar zxvf Wireshark-0.99.5-tar.gz;make;make install).直接安裝則是根據各自平臺安裝的特點。
    [11] 涉及到過多的名次,軟件又沒有中文版,這里及以后盡量不翻譯名稱
    ?
    第 3 章 用戶界面
    3.1. 須知
    現在您已經安裝好了Wireshark,幾乎可以馬上捕捉您的一個包。緊接著的這一節我們將會介紹:
    ? Wireshark的用戶界面如何使用
    ? 如何捕捉包
    ? 如何查看包
    ? 如何過濾包
    ? ……以及其他的一些工作。
    3.2. 啟動Wireshark
    你可以使用Shell命令行或者資源管理器啟動Wireshark.
    提示
    開始Wireshark時您可以指定適當的參數。參見第 9.2 節 “從命令行啟動Wireshark”

    注意 在后面的章節中,將會出現大量的截圖,因為Wireshark運行在多個平臺 ,并且支持多個GUI Toolkit(GTK1.x/2x),您的屏幕上顯示的界面可能與截圖不盡吻合。但在功能上不會有實質性區別。盡管有這些區別,也不會導致理解上的困難。

    3.3. 主窗口
    先來看看圖 3.1 “主窗口界面”,大多數打開捕捉包以后的界面都是這樣子(如何捕捉/打開包文件隨后提到)。
    圖 3.1. 主窗口界面

    和大多數圖形界面程序一樣,Wireshark主窗口由如下部分組成:

  • 菜單(見第 3.4 節 “主菜單”)用于開始操作。
  • 主工具欄(見第 3.13 節 “"Main"工具欄”)提供快速訪問菜單中經常用到的項目的功能。
  • Fiter toolbar/過濾工具欄(見第 3.14 節 “"Filter"工具欄”)提供處理當前顯示過濾得方法。(見6.3:”瀏覽時進行過濾”)
  • Packet List面板(見第 3.15 節 “"Pcaket List"面板”)顯示打開文件的每個包的摘要。點擊面板中的單獨條目,包的其他情況將會顯示在另外兩個面板中。
  • Packet detail面板(見第 3.16 節 “"Packet Details"面板”)顯示您在Packet list面板中選擇的包德更多詳情。
  • Packet bytes面板(見第 3.17 節 “"Packet Byte"面板”)顯示您在Packet list面板選擇的包的數據,以及在Packet details面板高亮顯示的字段。
  • 狀態欄(見第 3.18 節 “狀態欄”)顯示當前程序狀態以及捕捉數據的更多詳情。
    注意
    主界面的三個面版以及各組成部分可以自定義組織方式。見第 9.5 節 “首選項”
  • 3.3.1. 主窗口概述
    Packet list和Detail 面版控制可以通過快捷鍵進行。表 3.1 “導航快捷鍵”顯示了相關的快捷鍵列表。表 3.5 “"GO"菜單項”有關于快捷鍵的更多介紹
    表 3.1. 導航快捷鍵
    快捷鍵 描述
    Tab,Shift+Tab 在兩個項目間移動,例如從一個包列表移動到下一個
    Down 移動到下一個包或者下一個詳情
    Up 移動到上一個包或者上一個詳情
    Ctrl-Down,F8 移動到下一個包,即使焦點不在Packet list面版
    Ctrl-UP,F7 移動到前一個報,即使焦點不在Packet list面版
    Left 在Pactect Detail面版,關閉被選擇的詳情樹狀分支。如果以關閉,則返回到父分支。
    Right 在Packet Detail面版,打開被選擇的樹狀分支.
    Backspace Packet Detail面版,返回到被選擇的節點的父節點
    Return,Enter Packet Detail面版,固定被選擇樹項目。

    另外,在主窗口鍵入任何字符都會填充到filter里面。
    3.4. 主菜單
    Wireshark主菜單位于Wireshark窗口的最上方。圖 3.2 “主菜單”提供了菜單的基本界面。
    圖 3.2. 主菜單

    主菜單包括以下幾個項目:
    File
    包括打開、合并捕捉文件,save/保存,Print/打印,Export/導出捕捉文件的全部或部分。以及退出Wireshark項.見第 3.5 節 “"File"菜單”
    Edit
    包括如下項目:查找包,時間參考,標記一個多個包,設置預設參數。(剪切,拷貝,粘貼不能立即執行。)見第 3.6 節 “"Edit"菜單”
    View
    控制捕捉數據的顯示方式,包括顏色,字體縮放,將包顯示在分離的窗口,展開或收縮詳情面版的地樹狀節點,……見第 3.7 節 “"View"菜單”
    GO
    包含到指定包的功能。見第 3.8 節 “"Go"菜單”
    Capture
    允許您開始或停止捕捉、編輯過濾器。見第 3.9 節 “"Capture"菜單”
    Analyze
    包含處理顯示過濾,允許或禁止分析協議,配置用戶指定解碼和追蹤TCP流等功能。見第 3.10 節 “"Analyze"菜單”
    Statistics
    包括的菜單項用戶顯示多個統計窗口,包括關于捕捉包的摘要,協議層次統計等等。見第 3.11 節 “"Statistics"菜單”
    Help
    包含一些輔助用戶的參考內容。如訪問一些基本的幫助文件,支持的協議列表,用戶手冊。在線訪問一些網站,“關于”等等。見第 3.12 節 “"Help"菜單”
    本章鏈接介紹菜單的一般情況,更詳細的介紹會出現在后續章節。
    提示
    你可以直接點擊訪問菜單項,也可以使用熱鍵,熱鍵顯示在菜單文字描述部分。例如:您可以使用CTR+K打開捕捉對話框。
    3.5. "File"菜單
    WireSharkFile菜單包含的項目如表表 3.2 “File菜單介紹”所示
    圖 3.3. File菜單

    表 3.2. File菜單介紹
    菜單項 快捷鍵 描述
    Open… Ctr+O 顯示打開文件對話框,讓您載入捕捉文件用以瀏覽。見第 5.2.1 節 “打開捕捉文件對話框”

    Open Recent 彈出一個子菜單顯示最近打開過的文件供選擇。
    Merg 顯示合并捕捉文件的對話框。讓您選擇一個文件和當前打開的文件合并。見第 5.4 節 “合并捕捉文件”

    Close Ctrl+W 關閉當前捕捉文件,如果您未保存,系統將提示您是否保存(如果您預設了禁止提示保存,將不會提示)
    Save Crl+S 保存當前捕捉文件,如果您沒有設置默認的保存文件名,Wireshark出現提示您保存文件的對話框。詳情第 5.3.1 節 “"save Capture File As/保存文件為"對話框”
    注意
    如果您已經保存文件,該選項會是灰色不可選的。
    注意
    您不能保存動態捕捉的文件。您必須結束捕捉以后才能進行保存

    Save As Shift+Ctrl+S 讓您將當前文件保存為另外一個文件面,將會出現一個另存為的對話框(參見第 5.3.1 節 “"save Capture File As/保存文件為"對話框”)

    File Set>List Files 允許您顯示文件集合的列表。將會彈出一個對話框顯示已打開文件的列表,參見第 5.5 節 “文件集合”

    File Set>Next File 如果當前載入文件是文件集合的一部分,將會跳轉到下一個文件。如果不是,將會跳轉到最后一個文件。這個文件選項將會是灰色。
    File set>Previous Files 如果當前文件是文件集合 的一部分,將會調到它所在位置的前一個文件。如果不是則跳到文件集合的第一個文件,同時變成灰色。
    Export> as “Plain Text” File… 這個菜單允許您將捕捉文件中所有的或者部分的包導出為plain ASCII text格式。它將會彈出一個Wireshark導出對話框,見第 5.6.1 節 “"Export as Plain Text File"對話框”

    Export >as “PostScript” Files 將捕捉文件的全部或部分導出為PostScrit文件。將會出現導出文件對話框。參見第 5.6.2 節 ““Export as PostScript File” 對話框”

    Export > as “CVS” (Comma Separated Values Packet Summary)File… 導出文件全部或部分摘要為.cvs格式(可用在電子表格中)。將會彈出導出對話框,見第 5.6.3 節 ““Export as CSV (Comma Separated Values) File” 對話框”。

    Export > as “PSML” File… 導出文件的全部或部分為PSML格式(包摘要標記語言)XML文件。將會彈出導出文件對話框。見第 5.6.4 節 ““Export as PSML File” 對話框”

    Export as “PDML” File… 導出文件的全部或部分為PDML(包摘要標記語言)格式的XML文件。將會彈出一個導出文件對話框,見第 5.6.5 節 ““Export as PDML File” 對話框”

    Export > Selected Packet Bytes… 導出當前在Packet byte面版選擇的字節為二進制文件。將會彈出一個導出對話框。見第 5.6.6 節 ““Export selected packet bytes” 對話框”

    Print Ctr+P 打印捕捉包的全部或部分,將會彈出打印對話框。見第 5.7 節 “打印包”

    Quit Ctrl+Q 退出Wireshark,如果未保存文件,Wireshark會提示是否保存。

    3.6. "Edit"菜單
    Wireshark的"Edit"菜單包含的項目見表 3.3 “Edit菜單項”
    圖 3.4. "Edit"菜單

    表 3.3. Edit菜單項
    菜單項 快捷鍵 描述
    Copy>As Filter Shift+Ctrl+C 使用詳情面版選擇的數據作為顯示過濾。顯示過濾將會拷貝到剪貼板。
    Find Packet… Ctr+F 打開一個對話框用來通過限制來查找包,見???
    Find Next Ctrl+N 在使用Find packet以后,使用該菜單會查找匹配規則的下一個包
    Find Previous Ctr+B 查找匹配規則的前一個包。
    Mark Packet(toggle) Ctrl+M 標記當前選擇的包。見第 6.9 節 “標記包”

    Find Next Mark Shift+Ctrl+N 查找下一個被標記的包
    Find Previous Mark Ctrl+Shift+B 查找前一個被標記的包
    Mark ALL Packets 標記所有包
    Unmark All Packet 取消所有標記
    Set Time Reference(toggle) Ctrl+T 以當前包時間作為參考,見第 6.10.1 節 “包參考時間”

    Find Next Reference 找到下一個時間參考包
    Find Previous Refrence… 找到前一個時間參考包
    Preferences… Shift+Ctrl+P 打開首選項對話框,個性化設置Wireshark的各項參數,設置后的參數將會在每次打開時發揮作用。詳見第 9.5 節 “首選項”

    3.7. "View"菜單
    表 3.4 “"View"菜單項”顯示了Wireshar View菜單的選項
    圖 3.5. "View"菜單

    表 3.4. "View"菜單項
    菜單項 快捷鍵 描述
    Main Toolbar 顯示隱藏Main toolbar(主工具欄),見第 3.13 節 “"Main"工具欄”

    Filter Toolbar 顯示或隱藏Filter Toolbar(過濾工具欄)見第 3.14 節 “"Filter"工具欄”

    Statusbar 顯示或隱藏狀態欄,見第 3.18 節 “狀態欄”

    Packet List 顯示或隱藏Packet List pane(包列表面板),見第 3.15 節 “"Pcaket List"面板”

    Packet Details 顯示或隱藏Packet details pane(包詳情面板).見第 3.16 節 “"Packet Details"面板”

    Packet Bytes 顯示或隱藏 packet Bytes pane(包字節面板),見第 3.17 節 “"Packet Byte"面板”

    Time Display Fromat>Date and Time of Day: 1970-01-01 01:02:03.123456 選擇這里告訴Wireshark將時間戳設置為絕對日期-時間格式(年月日,時分秒),見第 6.10 節 “時間顯示格式及參考時間”
    注意
    這里的字段"Time of Day",“Date and Time of Day”,“Seconds Since Beginning of Capture”,"Seconds Since Previous Captured Packet"和"Seconds Since Previous Displayed Packet"幾個選項是互斥的,換句話說,一次同時有一個被選中。

    Time Display Format>Time of Day: 01:02:03.123456 將時間設置為絕對時間-日期格式(時分秒格式),見第 6.10 節 “時間顯示格式及參考時間”

    Time Display Format > Seconds Since Beginning of Capture: 123.123456 將時間戳設置為秒格式,從捕捉開始計時,見第 6.10 節 “時間顯示格式及參考時間”

    Time Display Format > Seconds Since Previous Captured Packet: 1.123456 將時間戳設置為秒格式,從上次捕捉開始計時,見第 6.10 節 “時間顯示格式及參考時間”

    Time Display Format > Seconds Since Previous Displayed Packet: 1.123456 將時間戳設置為秒格式,從上次顯示的包開始計時,見第 6.10 節 “時間顯示格式及參考時間”

    Time Display Format > ------
    Time Display Format > Automatic (File Format Precision) 根據指定的精度選擇數據包中時間戳的顯示方式,見第 6.10 節 “時間顯示格式及參考時間”
    注意
    “Automatic”,“Seconds"和”…seconds"是互斥的

    Time Display Format > Seconds: 0 設置精度為1秒,見第 6.10 節 “時間顯示格式及參考時間”

    Time Display Format > …seconds: 0… 設置精度為1秒,0.1秒,0.01秒,百萬分之一秒等等。 見第 6.10 節 “時間顯示格式及參考時間”

    Name Resolution > Resolve Name 僅對當前選定包進行解析第 7.6 節 “名稱解析”

    Name Resolution > Enable for MAC Layer 是否解析Mac地址
    Name Resolution > Enable for Network Layer 是否解析網絡層地址(ip地址),見第 7.6 節 “名稱解析”

    Name Resolution > Enable for Transport Layer 是否解析傳輸層地址第 7.6 節 “名稱解析”

    Colorize Packet List 是否以彩色顯示包
    注意
    以彩色方式顯示包會降低捕捉再如包文件的速度

    Auto Scrooll in Live Capture 控制在實時捕捉時是否自動滾屏,如果選擇了該項,在有新數據進入時, 面板會項上滾動。您始終能看到最后的數據。反之,您無法看到滿屏以后的數據,除非您手動滾屏
    Zoom In Ctrl++ 增大字體
    Zoom Out Ctrl± 縮小字體
    Normal Size Ctrl+= 恢復正常大小
    Resiz All Columnus 恢復所有列寬
    注意
    除非數據包非常大,一般會立刻更改

    Expend Subtrees 展開子分支
    Expand All 看開所有分支,該選項會展開您選擇的包的所有分支。
    Collapse All 收縮所有包的所有分支
    Coloring Rulues… 打開一個對話框,讓您可以通過過濾表達來用不同的顏色顯示包。這項功能對定位特定類型的包非常有用。見第 9.3 節 “包色彩顯示設置”

    Show Packet in New Window 在新窗口顯示當前包,(新窗口僅包含View,Byte View兩個面板)
    Reload Ctrl+R 重新再如當前捕捉文件

    3.8. "Go"菜單
    Wireshark "GO"菜單的內容見表 3.5 “"GO"菜單項”
    圖 3.6. "GO"菜單

    表 3.5. "GO"菜單項
    菜單項 快捷鍵 描述
    Back Alt+Left 跳到最近瀏覽的包,類似于瀏覽器中的頁面歷史紀錄
    ForWard Alt+Right 跳到下一個最近瀏覽的包,跟瀏覽器類似
    Go to Packet Ctrl+G 打開一個對話框,輸入指定的包序號,然后跳轉到對應的包,見第 6.8 節 “到指定的包”

    Go to Corresponding Packet 跳轉到當前包的應答包,如果不存在,該選項為灰色
    Previous Packet Ctrl+UP 移動到包列表中的前一個包,即使包列表面板不是當前焦點,也是可用的
    Next Packet Ctrl+Down 移動到包列表中的后一個包,同上
    First Packet 移動到列表中的第一個包
    Last Packet 移動到列表中的最后一個包

    3.9. "Capture"菜單
    "Capture"菜單的各項說明見表 3.6 “"Capture"菜單項”
    圖 3.7. "Capture"菜單

    表 3.6. "Capture"菜單項
    菜單項 快捷鍵 說明
    Interface… 在彈出對話框選擇您要進行捕捉的網絡接口,見第 4.4 節 “捕捉接口對話框”

    Options… Ctrl+K 打開設置捕捉選項的對話框,(見第 4.5 節 “捕捉選項對話框”)并可以在此開始捕捉

    Start 立即開始捕捉,設置都是參照最后一次設置。
    Stop Ctrl+E 停止正在進行的捕捉,見第 4.9.1 節 “停止捕捉”

    Restart 正在進行捕捉時,停止捕捉,并按同樣的設置重新開始捕捉.僅在您認為有必要時
    Capture Filters… 打開對話框,編輯捕捉過濾設置,可以命名過濾器,保存為其他捕捉時使用見第 6.6 節 “定義,保存過濾器”

    3.10. "Analyze"菜單
    "Analyze"菜單的各項見表 3.7 “"analyze"菜單項”
    圖 3.8. "Analyze"菜單

    表 3.7. "analyze"菜單項
    菜單項 快捷鍵 說明
    Display Filters… 打開過濾器對話框編輯過濾設置,可以命名過濾設置,保存為其他地方使用,見第 6.6 節 “定義,保存過濾器”

    Apply as Filter>… 更改當前過濾顯示并立即應用。根據選擇的項,當前顯示字段會被替換成選擇在Detail面板的協議字段
    Prepare a Filter>… 更改當前顯示過濾設置,當不會立即應用。同樣根據當前選擇項,過濾字符會被替換成Detail面板選擇的協議字段
    Firewall ACL Rules 為多種不同的防火墻創建命令行ACL規則(訪問控制列表),支持Cisco IOS, Linux Netfilter (iptables), OpenBSD pf and Windows Firewall (via netsh). Rules for MAC addresses, IPv4 addresses, TCP and UDP ports, 以及 IPv4+混合端口
    以上假定規則用于外部接口
    Enable Protocols… Shift+Ctrl+R 是否允許協議分析,見第 9.4.1 節 “"Enable Protocols"對話框”

    [a] 看樣子他們有個關于這部分的章節

    3.11. "Statistics"菜單
    Wireshark "statistics"菜單項見表 3.8 “”
    圖 3.9. "Statistics"菜單

    表 3.8.
    菜單項 快捷鍵 描述
    Summary 顯示捕捉數據摘要,見第 8.2 節 “摘要窗口”

    Protocol Hierarchy 顯示協議統計分層信息,見第 8.3 節 “"Protocol Hierarchy"窗口”

    Conversations/ 顯示會話列表(兩個終端之間的通信),見???
    EndPoints 顯示端點列表(通信發起,結束地址),見第 8.4.2 節 “"Endpoints"窗口”

    IO Graphs 顯示用戶指定圖表,(如包數量-時間表)見第 8.6 節 “"IO Graphs"窗口”

    Conversation List 通過一個組合窗口,顯示會話列表,見第 8.5.3 節 “協議指定“Conversation List/會話列表”窗口”

    Endpoint List 通過一個組合窗口顯示終端列表,見第 8.4.3 節 “特定協議的"Endpoint List"窗口”

    Service Response Time 顯示一個請求及其相應之間的間隔時間,見第 8.7 節 “服務相應時間”

    ANSI 見第 8.8 節 “協議指定統計窗口”

    GSM 見第 8.8 節 “協議指定統計窗口”

    H.225… 見第 8.8 節 “協議指定統計窗口”

    ISUP Message 見第 8.8 節 “協議指定統計窗口”

    Types 見第 8.8 節 “協議指定統計窗口”

    MTP3 見第 8.8 節 “協議指定統計窗口”

    RTP 見第 8.8 節 “協議指定統計窗口”

    GSM 見第 8.8 節 “協議指定統計窗口”

    SIP 見第 8.8 節 “協議指定統計窗口”

    VOIP Calls… 見第 8.8 節 “協議指定統計窗口”

    WAP-WSP… 見第 8.8 節 “協議指定統計窗口”

    HTTP HTTP請求/相應統計,見第 8.8 節 “協議指定統計窗口”

    ISUP Messages 見第 8.8 節 “協議指定統計窗口”

    ONC-RPC Programs 見第 8.8 節 “協議指定統計窗口”

    TCP Stream Graph 見第 8.8 節 “協議指定統計窗口”

    3.12. "Help"菜單
    幫助菜單的內容見表 3.9 “”
    圖 3.10. 幫助菜單

    表 3.9.
    菜單項 快捷鍵 描述
    Contents F1 打開一個基本的幫助系統
    Supported Protocols 打開一個對話框顯示支持的協議或工具
    Manaul Pages>… 打開瀏覽器,顯示安裝在本地的手冊
    Wireshark Online> 按照選擇顯示在線資源
    About Wireshark 彈出信息窗口顯示Wireshark的一些相關信息,如插件,目錄等。

    注意 有些版本可能不支持調用WEB瀏覽器。如果是這樣,可能會隱藏此菜單。 注意 如果調用瀏覽器錯誤,檢查Wireshark首選項關于瀏覽器設置。

    3.13. "Main"工具欄
    主工具欄提供了快速訪問常見項目的功能,它是不可以自定義的,但如果您覺得屏幕屏幕過于狹小,需要更多空間來顯示數據。您可以使用瀏覽菜單隱藏它。
    在主工具欄里面的項目只有在可以使用的時候才能被選擇,如果不是可用則顯示為灰色,不可選(例如:在未載入文件時,保存文件按鈕就不可用.)
    圖 3.11.

    表 3.10. 主工具欄選項
    工具欄圖標 工具欄項 對應菜單項 描述
    接口 Capture/Interfaces… 打開接口列表對話框,見第 4.3 節 “開始捕捉”

    選項。。。 Capture/Options 打開捕捉選項對話框,見第 4.4 節 “捕捉接口對話框”Start Capture/Start 使用最后一次的捕捉設置立即開始捕捉 STOP Capture/Stop 停止當前的捕捉,見第 4.3 節 “開始捕捉”Restar Caputer/Rstart 停止當前捕捉,并立即重新開始 Open... File/Open 啟動打開文件對話框,用于載入文件,詳見第 5.2.1 節 “打開捕捉文件對話框”Save As... File/Save As... 保存當前文件為任意其他的文件,它將會彈出一個對話框,(見第 5.3.1 節 “"save Capture File As/保存文件為"對話框” 注意 如果當前文件是臨時未保存文件,圖標將會顯示為 Close File/Close 關閉當前文件。如果未保存,將會提示是否保存 Reload View/Reload 重新載入當前文件 Print File/Print 打印捕捉文件的全部或部分,將會彈出一個打印對話框(見第 5.7 節 “打印包”)Find packet... Edit/Find Packet... 打開一個對話框,查找包。見第 6.7 節 “查找包”Go Back Go/Go Back 返回歷史記錄中的上一個 Go Forward Go/Go Forward 跳轉到歷史記錄中的下一個包 Go to Packet... Go/Go to Packet... 彈出一個設置跳轉到指定的包的對話框 Go To First Packet Go/First Packet 跳轉到第一包 Go To Last Packet Go/Last Packet 跳轉到最后一個包 Colorize View/Coloreze 切換是否以彩色方式顯示包列表 Auto Scroll in Live View/Auto Scrool in Live Capture 開啟/關閉實時捕捉時自動滾動包列表 Zoom in View/Zoom In 增大字體 zoom out View/Zoom Out 縮小字體 Normal Size View/Normal Size 設置縮放大小為100% Resize Columns View/Resize Columns 重置列寬,使內容適合列寬(使包列表內的文字可以完全顯示) Capture Filters.. Capture/Capture Filters... 打開對話框,用于創建、編輯過濾器。詳見第 6.6 節 “定義,保存過濾器”Display Filters.. Analyze/ Filters... 打開對話框,用于創建、編輯過濾器。詳見第 6.6 節 “定義,保存過濾器”Coloring Rules... View/Coloring Rules... 定義以色彩方式顯示數據包的規則詳見第 9.3 節 “包色彩顯示設置”Preferences... Edit/Preferences 打開首選項對話框,詳見第 9.5 節 “首選項”Help Help/Contents 打開幫助對話框

    3.14. "Filter"工具欄
    過濾工具欄用于編輯或顯示過濾器,更多詳情見第 6.3 節 “瀏覽時過濾包”
    圖 3.12. 過濾工具欄

    表 3.11.
    工具欄圖標 工具欄項 說明
    過濾 打開構建過濾器對話框,見第 6.7 節 “查找包”[a]

    過濾輸入框 在此區域輸入或修改顯示的過濾字符,見第 6.4 節 “建立顯示過濾表達式”,在輸入過程中會進行語法檢查。如果您輸入的格式不正確,或者未輸入完成,則背景顯示為紅色。直到您輸入合法的表達式,背景會變為綠色。你可以點擊下拉列表選擇您先前鍵入的過濾字符。列表會一直保留,即使您重新啟動程序。 注意 做完修改之后,記得點擊右邊的Apply(應用)按鈕,或者回車,以使過濾生效。 注意 輸入框的內容同時也是當前過濾器的內容(當前過濾器的內容會反映在輸入框) 表達式... 標簽為表達式的按鈕打開一個對話框用以從協議字段列表中編輯過濾器,詳見第 6.5 節 ““Filter Expression/過濾表達式”對話框”清除 重置當前過濾器,清除輸入框 應用 應用當前輸入框的表達式為過濾器進行過濾 注意 在大文件里應用顯示過濾可能要很長時間

    [a] 我看到的Filter按鈕貌似沒有圖標,可能只出現在0.99.4版中

    3.15. "Pcaket List"面板
    Packet list/包列表面板顯示所有當前捕捉的包
    圖 3.13. "Packet list/包列表"面板

    列表中的每行顯示捕捉文件的一個包。如果您選擇其中一行,該包得更多情況會顯示在"Packet Detail/包詳情","Packet Byte/包字節"面板
    在分析(解剖)包時,Wireshark會將協議信息放到各個列。因為高層協議通常會覆蓋底層協議,您通常在包列表面板看到的都是每個包的最高層協議描述。
    例如:讓我們看看一個包括TCP包,IP包,和一個以太網包。在以太網(鏈路層?)包中解析的數據(比如以太網地址),在IP分析中會覆蓋為它自己的內容(比如IP地址),在TCP分析中會覆蓋IP信息。
    包列表面板有很多列可供選擇。需要顯示哪些列可以在首選項中進行設置,見第 9.5 節 “首選項”
    默認的列如下
    ? No. 包的編號,編號不會發生改變,即使進行了過濾也同樣如此
    ? Time 包的時間戳。包時間戳的格式可以自行設置,見第 6.10 節 “時間顯示格式及參考時間”
    ? Source 顯示包的源地址。
    ? Destination 顯示包的目標地址。
    ? Protocal 顯示包的協議類型的簡寫
    ? Info 包內容的附加信息
    右擊包,可以顯示對包進行相關操作的上下文菜單。見第 6.3 節 “瀏覽時過濾包”
    3.16. "Packet Details"面板
    "Packet Details/包詳情"面板顯示當前包(在包列表面板被選中的包)的詳情列表。
    圖 3.14. "Packet Details/包詳情"面板

    該面板顯示包列表面板選中包的協議及協議字段,協議及字段以樹狀方式組織。你可以展開或折疊它們。
    右擊它們會獲得相關的上下文菜單。見第 6.4 節 “建立顯示過濾表達式”
    某些協議字段會以特殊方式顯示
    ? Generated fields/衍生字段 Wireshark會將自己生成附加協議字段加上括號。衍生字段是通過該包的相關的其他包結合生成的。例如:Wireshark 在對TCP流應答序列進行分析時。將會在TCP協議中添加[SEQ/ACK analysis]字段
    ? Links/鏈接 如果Wireshark檢測到當前包與其它包的關系,將會產生一個到其它包的鏈接。鏈接字段顯示為藍色字體,并加有下劃線。雙擊它會跳轉到對應的包。
    3.17. "Packet Byte"面板
    Packet Byte/包字節 面板以16進制轉儲方式顯示當前選擇包的數據
    圖 3.15. Packet Byte/包字節面板

    通常在16進制轉儲形式中,左側顯示包數據偏移量,中間欄以16進制表示,右側顯示為對應的ASCII字符
    根據包數據的不同,有時候包字節面板可能會有多個頁面,例如:有時候Wireshark會將多個分片重組為一個,見第 7.5 節 “合并包”.這時會在面板底部出現一個附加按鈕供你選擇查看
    圖 3.16. 帶選項的"Paket Bytes/包字節"面板

    注意 附加頁面的內容可能來自多個包。

    右擊選項按鈕會顯示一個上下文菜單顯示所有可用的頁的清單。如果您的面板尺寸過小,這項功能或許有所幫助
    3.18. 狀態欄
    狀態欄用于顯示信息
    通常狀態欄的左側會顯示相關上下文信息,右側會顯示當前包數目
    圖 3.17. 初始狀態欄

    該狀態欄顯示的是沒有文件載入時的狀態,如:剛啟動Wireshark時
    圖 3.18. 載入文件后的狀態欄

    左側顯示當前捕捉文件信息,包括名稱,大小,捕捉持續時間等。
    右側顯示當前包在文件中的數量,會顯示如下值
    ? P:捕捉包的數目
    ? D:被顯示的包的數目
    ? M: 被標記的包的數目.
    圖 3.19. 已選擇協議字段的狀態欄

    如果你已經在"Packet Detail/包詳情"面板選擇了一個協議字段,將會顯示上圖
    提示
    括號內的值(如上圖的app.opcode)可以作為顯示過濾使用。它表示選擇的協議字段。

    第 4 章 實時捕捉數據包
    4.1. 介紹
    實時捕捉數據包時Wireshar的特色之一
    Wiershark捕捉引擎具備以下特點
    ? 支持多種網絡接口的捕捉(以太網,令牌環網,ATM…)
    ? 支持多種機制觸發停止捕捉,例如:捕捉文件的大小,捕捉持續時間,捕捉到包的數量…
    ? 捕捉時同時顯示包解碼詳情
    ? 設置過濾,減少捕捉到包的容量。見第 4.8 節 “捕捉時過濾”
    ? 長時間捕捉時,可以設置生成多個文件。對于特別長時間的捕捉,可以設置捕捉文件大小罰值,設置僅保留最后的N個文件等手段。見第 4.6 節 “捕捉文件格式、模式設置”
    Wireshark捕捉引擎在以下幾個方面尚有不足
    ? 從多個網絡接口同時實時捕捉,(但是您可以開始多個應用程序實體,捕捉后進行文件合并)
    ? 根據捕捉到的數據停止捕捉(或其他操作)
    4.2. 準備工作
    第一次設置Wireshark捕捉包可能會遇到一些小麻煩
    提示
    關于如何進行捕捉設置的較為全面的向導可以在:http://wiki.wireshark.org/CaptureSetup.

    這里有一些常見需要注意的地方
    ? 你必須擁有root/Administrator特權以開始捕捉[12]
    ? 必須選擇正確的網絡接口捕捉數據
    ? 如果您想捕捉某處的通信,你必須作出決定:在什么地方可以捕捉到
    ? ……以及許多
    如果你碰到設置問題,建議看看前面的那個向導,或許會有所幫助
    4.3. 開始捕捉
    可以使用下任一方式開始捕捉包
    ? 使用 打開捕捉接口對話框,瀏覽可用的本地網絡接口,見圖 4.1 ““Capture Interfaces"捕捉接口對話框”,
    選擇您需要進行捕捉的接口啟動捕捉
    ? 你也可以使用” 捕捉選項"按鈕啟動對話框開始捕捉,見圖 4.2 ““Capture Option/捕捉選項"對話框”
    ? 如果您前次捕捉時的設置和現在的要求一樣,您可以點擊” 開始捕捉"按鈕或者是菜單項立即開始本次捕捉。
    ? 如果你已經知道捕捉接口的名稱,可以使用如下命令從命令行開始捕捉:
    wireshark -i eth0 -k
    上述命令會從eht0接口開始捕捉,有關命令行的介紹參見第 9.2 節 “從命令行啟動Wireshark”
    4.4. 捕捉接口對話框
    如果您從捕捉菜單選擇"Interface…",將會彈出如圖 4.1 ““Capture Interfaces"捕捉接口對話框”所示的對話框
    警告
    打開"Capture Interfaces”/捕捉對話框時 同時正在顯示捕捉的數據,這將會大量消耗您的系統資源。盡快選擇您需要的接口以結束該對話框。避免影響系統性能
    注意
    這個對話框只顯示本地已知的網絡接口,Wireshark可能無法檢測到所有的本地接口,Wireshark不能檢測遠程可用的網絡接口,Wireshark只能使用列出可用的網絡接口
    圖 4.1. "Capture Interfaces"捕捉接口對話框

    描述
    從操作系統獲取的接口信息
    IP
    Wireshark能解析的第一個IP地址,如果接口未獲得IP地址(如,不存在可用的DHCP服務器),將會顯示"Unkow",如果有超過一個IP的,只顯示第一個(無法確定哪一個會顯示).
    Packets
    打開該窗口后,從此接口捕捉到的包的數目。如果一直沒有接收到包,則會顯示為灰度
    Packets/s
    最近一秒捕捉到包的數目。如果最近一秒沒有捕捉到包,將會是灰度顯示
    Stop
    停止當前運行的捕捉
    Capture
    從選擇的接口立即開始捕捉,使用最后一次捕捉的設置。
    Options
    打開該接口的捕捉選項對話框,見 第 4.5 節 “捕捉選項對話框”
    Details(僅Win32系統)
    打開對話框顯示接口的詳細信息
    Close
    關閉對話框
    4.5. 捕捉選項對話框
    如果您從捕捉菜單選擇"start…"按鈕(或者從主工具欄選擇對應的項目),Wireshark彈出"Capture Option/捕捉選項"對話框。如圖 4.2 “"Capture Option/捕捉選項"對話框”所示
    圖 4.2. "Capture Option/捕捉選項"對話框

    提示 如果你不了解各項設置的意義,建議保持默認。

    你可以用對話框中的如下字段進行設置
    4.5.1. 捕捉楨
    Interface
    該字段指定你想用于進行捕捉的借口。一次只能使用一個接口。這是一個下拉列表,簡單點擊右側的按鈕,選擇你想要使用的接口。默認第一是支持捕捉的non-loopback(非環回)接口,如果沒有這樣的接口,第一個將是環回接口。在某些系統中,回借口不支持捕捉包(windows平臺下的環回接口就不支持。)
    在命令行使用-i 參數可以替代該選項
    IP address
    表示選擇接口的IP地址。如果系統未指定IP地址,將會顯示為"unknown"
    Link-layer header type
    除非你有些特殊應用,盡量保持此選項默認。想了解更多詳情,見 第 4.7 節 “鏈路層包頭類型”
    Buffer size: n megabyte(s)
    輸入用于捕捉的緩層大小。該選項是設置寫入數據到磁盤前保留在核心緩存中捕捉數據的大小,如果你發現丟包。嘗試增大該值。
    注意
    該選項僅適用于Windows平臺
    Capture packets in promiscuous mode
    指定Wireshark捕捉包時,設置接口為雜收模式(有些人翻譯為混雜模式)。如果你未指定該選項,Wireshark 將只能捕捉進出你電腦的數據包(不能捕捉整個局域網段的包)[13]
    注意
    如果其他應用程序將網卡設置為雜收模式,即使不選中該選項,也會工作于雜收模式下。
    注意
    即使在雜收模式下,你也未必能夠接收到整個網段所有的網絡包。詳細解釋見http://www.wireshark.org/faq.html#promiscsniff

    Limit each packet to n bytes
    指定捕捉過程中,每個包的最大字節數。在某些地方被稱為。“snaplen”.[14]如果禁止該選項,默認值為65535,這適用于大多數協議,下面是一些大多數情況下都適用的規則(這里又出現了拇指規則,第一章,系統需求時提到過。這里權且翻譯作普適而非絕對的規則))
    ? 如果你不確定,盡量保持默認值
    ? 如果你不需要包中的所有數據。例如:如果您僅需要鏈路層、IP和TCP包頭,您可能想要選擇一個較小的快照長度。這樣只需要較少的cpu占用時間用于復制包,包需要的緩存也較少。如此在繁忙網絡中捕捉時丟失的包也可能會相應少一點。
    ? 如果你沒有捕捉包中的所有數據(適用snpaplen截斷了包),你可能會發現有時候你想要的包中的數據部分被截斷丟棄了。或者因為缺少重要的部分,想對某些包進行重組而發現失敗。
    Capture Filter
    指定捕捉過濾。捕捉過濾器將會在有第 4.8 節 “捕捉時過濾”詳細介紹,默認情況下是空的。
    同樣你也可以點擊捕捉按鈕,通過彈出的捕捉過濾對話框創建或選擇一個過濾器,詳見第 6.6 節 “定義,保存過濾器”
    4.5.2. 捉數據幀為文件。
    捕捉文件設置的使用方法的詳細介紹見第 4.6 節 “捕捉文件格式、模式設置”
    File
    指定將用于捕捉的文件名。該字段默認是空白。如果保持空白,捕捉數據將會存儲在臨時文件夾。詳見第 4.6 節 “捕捉文件格式、模式設置”
    你可以點擊右側的按鈕打開瀏覽窗口設置文件存儲位置
    Use multiple files
    如果指定條件達到臨界值,Wireshark將會自動生成一個新文件,而不是適用單獨文件。
    Next file every n megabyte(s)
    僅適用選中Use multiple files,如果捕捉文件容量達到指定值,將會生成切換到新文件
    Next file every n minutes(s)
    僅適用選中Use multiple files,如果捕捉文件持續時間達到指定值,將會切換到新文件。
    Ring buffer with n files
    僅適用選中Use multiple files,僅生成制定數目的文件。
    Stop caputure after n file(s)
    僅適用選中Use multiple files,當生成指定數目文件時,在生成下一個文件時停止捕捉(生成n個還是n+1個文件?)
    4.5.3. 停止捕捉楨
    … after n packet(s)
    在捕捉到指定數目數據包后停止捕捉
    … after n megabytes(s)
    在捕捉到指定容量的數據(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s) )后停止捕捉。如果沒有適用"user multiple files",該選項將是灰色
    … after n minute(s)
    在達到指定時間后停止捕捉
    4.5.4. 顯示楨選項
    Update list of packets in real time
    在包列表面板實時更新捕捉數據。如果未選定該選項,在Wireshark捕捉結束之前將不能顯示數據。如果選中該選項,Wireshark將生成兩個獨立的進程,通過捕捉進程傳輸數據給顯示進程。
    Automatic scrolling in live capture
    指定Wireshark在有數據進入時實時滾動包列表面板,這樣您將一直能看到最近的包。反之,則最新數據包會被放置在行末,但不會自動滾動面板。如果未設置"update list of packets in real time",該選項將是灰色不可選的。
    Hide capture info dialog
    選中該選項,將會隱藏捕捉信息對話框
    4.5.5. 名稱解析設置
    Enable MAC name resolution
    設置是否讓Wireshark翻譯MAC地址為名稱,見第 7.6 節 “名稱解析”
    Enable network name resolution
    是否允許Wireshark對網絡地址進行解析,見第 7.6 節 “名稱解析”
    4.5.6. 按鈕
    進行完上述設置以后,你可以點擊start按鈕進行捕捉,也可以點擊Cancel退出捕捉.
    開始捕捉以后,在你收集到足夠的數據時你可以停止捕捉。見第 4.9 節 “在捕捉過程中”
    4.6. 捕捉文件格式、模式設置
    在 捕捉時,libpcap 捕捉引擎(linux環境下)會抓取來自網卡的包存放在(相對來說)較小的核心緩存內。這些數據由Wireshark讀取并保存到用戶指定的捕捉文件中。
    保存包數據到捕捉文件時,可采用差異模式操作。
    提示
    處理大文件(數百兆)將會變得非常慢。如果你計劃進行長時間捕捉,或者處于一個高吞吐量的網絡中,考慮使用前面提到的"Multiple files/多文件"選項。該選項可以將捕捉包分割為多個小文件。這樣可能更適合上述環境。
    注意
    使用多文件可能會切斷上下文關聯信息。Wireshark保留載入包的上下文信息,所以它會報告上下文關聯問題(例如流問題)和關聯上下文協議信息(例如:何處數據產生建立階段,必須查找后續包)。這些信息僅能在載入文件中顯示,使用多文件模式可能會截斷這樣的上下文。如果建立連接階段已經保存在一個文件中,你想要看的在另一個文件中,你可能無法看到可用的上下文關聯信息。
    提示
    關于捕捉文件的目錄信息,可見???
    表 4.1. 捕捉文件模式選項
    "File"選項 "Use multiple files"選項 "Ring buffer with n files"選項 Mode 最終文件命名方式

        • Single temporary file etherXXXXXX (where XXXXXX 是一個獨立值)
          foo.cap - - Single named file foo.cap
          foo.cap x - Multiple files,continuous foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, …
          foo.cap x x Multiple files,ring buffer foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, …

    Single temporary file
    將會創建并使用一個臨時文件(默認選項).捕捉文件結束后,該文件可以由用戶指定文件名。
    Single named file
    使用單獨文件,如果你想放到指定目錄,選擇此模式
    Multiple files,continuous
    與single name file模式類似,不同點在于,當捕捉達到多文件切換臨界條件時之一時,會創建一個新文件用于捕捉
    Multiple files,ring buffer
    與"multiple files continuous"模式類似,不同之處在于,創建的文件數目固定。當達到ring buffer with n值時,會替換掉第一個文件開始捕捉,如此循環往復。
    該模式可以限制最大磁盤空間使用量,即使未限制捕捉數據輸入,也只能保留最后幾個捕捉數據。
    4.7. 鏈路層包頭類型
    在通常情況下,你不需要選擇鏈路層包頭類型。下面的段落描述了例外的情況,此時選擇包頭類型是有必要的,所以你需要知道怎么做:
    如果你在某種版本BSD操作系統下從某種802.11 設備(無線局域網設備)捕捉數據,可能需要在"802.11"和"Ethernet"中做出選擇?!癊thernet"將會導致捕捉到的包帶有偽以太網幀頭(不知道是不是應該叫偽首部更準確些);“802.11"將會導致他們帶有802.11幀頭。如果捕捉時的應用程序不支持"802.11幀頭”,你需要選擇"802.11”
    如果你使用Endace DAG card(某種網絡監視卡)連接到同步串口線(譯者注:E文為synchronous serial line,權且翻譯作前文吧,未接觸過此卡、未熟稔此線名稱),可能會出現"PPP over serial" 或 “Cisco HDLC”(自己google去)供選擇。根據你自己的情況選擇二者中的一個。
    如果你使用Endace DAG card(同上)連接到ATM網絡,將會提供"RFC 1483 IP-over-ATM"、“Sun raw ATM"供選擇。如果捕捉的通信是RFC 1483封裝IP(RFC 1483 LLC-encapsulated IP,不翻譯為妙),或者需要在不支持SunATM幀頭的應用程序下捕捉,選擇前者。反之選擇后者。
    如果你在以太網捕捉,將會提供"Ethernet”、“DOCSIS"供選擇,如果您是在Cisco Cable Modem Termination System(CMTS是思科同軸電纜終端調制解調系統?)下捕捉數據。它會將DOCSIS(同軸電纜數據服務接口)通信放置到以太網中,供捕捉。此時需要選擇"DOCSIS”,反之則反之。
    4.8. 捕捉時過濾
    Wireshark使用libpcap過濾語句進行捕捉過濾(what about winpcap?)。在tcpdump主頁有介紹,但這些只是過于晦澀難懂,所以這里做小幅度講解。
    提示
    你可以從http://wiki.wireshark.org/CaptureFilters找到捕捉過濾范例.

    在Wireshark捕捉選項對話(見圖 4.2 “"Capture Option/捕捉選項"對話框”)框輸入捕捉過濾字段。下面的語句有點類似于tcpdump捕捉過濾語言。在tcpdump主頁http://www.tcpdump.org/tcpdump_man.html可以看到tcpdump表達式選項介紹。
    捕捉過濾的形式為:和取值(and/or)進行進行基本單元連接,加上可選的,高有限級的not:
    [not] primitive [and|or [not] primitive …]
    例 4.1. 捕捉來自特定主機的telnet協議
    tcp port 23 and host 10.0.0.5

    本例捕捉來自或指向主機10.0.0.5的Telnet 通信,展示了如何用and連接兩個基本單元。另外一個例子例 4.2 “捕捉所有不是來自10.0.0.5的telnet 通信”展示如何捕捉所有不是來自10.0.0.5的telnet 通信。
    例 4.2. 捕捉所有不是來自10.0.0.5的telnet 通信
    tcp host 23 and not src host 10.0.0.5

    此處筆者建議增加更多范例。但是并沒有添加。
    一個基本單元通常是下面中的一個
    [src|dst] host
    此基本單元允許你過濾主機ip地址或名稱。你可以優先指定src|dst關鍵詞來指定你關注的是源地址還是目標地址。如果未指定,則指定的地址出現在源地址或目標地址中的包會被抓取。
    ether [src|dst] host
    此單元允許你過濾主機以太網地址。你可以優先指定關鍵詞src|dst在關鍵詞ether和host之間,來確定你關注的是源地址還是目標地址。如果未指定,同上。
    gateway host
    過濾通過指定host作為網關的包。這就是指那些以太網源地址或目標地址是host,但源ip地址和目標ip地址都不是host的包
    [src|dst] net [{mask}|{len }]
    通過網絡號進行過濾。你可以選擇優先指定src|dst來確定你感興趣的是源網絡還是目標網絡。如果兩個都沒指定。指定網絡出現在源還是目標網絡的都會被選擇。另外,你可以選擇子網掩碼或者CIDR(無類別域形式)。
    [tcp|udp] [src|dst] port <port]
    過濾tcp,udp及端口號。可以使用src|dst和tcp|udp關鍵詞來確定來自源還是目標,tcp協議還是udp協議。tcp|udp必須出現在src|dst之前。
    less|greater
    選擇長度符合要求的包。(大于等于或小于等于)
    ip|ether proto
    選擇有指定的協議在以太網層或是ip層的包
    ether|ip broadcast|multicast
    選擇以太網/ip層的廣播或多播
    relop
    創建一個復雜過濾表達式,來選擇包的字節或字節范圍符合要求的包。請參考http://www.tcpdump.org/tcpdump_man.html
    4.8.1. 自動過濾遠程通信
    如果Wireshark是使用遠程連接的主機運行的(例如使用SSH,X11 Window輸出,終端服務器),遠程連接必須通過網絡傳輸,會在你真正感興趣的通信中產生大量數據包(通常也是不重要的)
    想要避免這種情況,wireshark可以設置為如果發現有遠程連接(通過察看指定的環境變量),自動創建一個過濾器來匹配這種連接。以避免捕捉Wireshark捕捉遠程連接通信。
    下列環境變量可以進行分析
    SSH——CONNECTION(ssh)

    SSH_CLIENT (ssh)

    REMOTEHOST (tcsh, others?)

    DISPLAY (x11)
    [remote name]:
    SESSIONNAME (terminal server)

    4.9. 在捕捉過程中
    捕捉時,會出現下面的對話框
    圖 4.3. 捕捉信息對話框

    上述對話框會向你顯示捕捉到包的數目,捕捉持續時間。選擇的被統計的協議無法更改(什么鳥意思?)
    提示
    這個對話框可以被隱藏,在前次的捕捉選項對話框設置"Hide capture info dialog box"即可。
    4.9.1. 停止捕捉
    運行中的捕捉線程可以用下列方法停止:

  • 使用捕捉信息對話框上的" stop"按鈕停止。
    注意
    捕捉信息對話框有可能被隱藏,如果你選擇了"Hide capture info dialog"
  • 使用菜單項"Capture/ Stop"
  • 使用工具欄項" Stop"
  • 使用快捷鍵:Ctrl+E
  • 如果設置了觸發停止的條件,捕捉達到條件時會自動停止。
    4.9.2. 重新啟動捕捉
    運行中的捕捉進程可以被重新啟動。這將會移出上次捕捉的所有包。如果你捕捉到一些你不感興趣的包,你不想保留它,這個功能十分有用。
    重新啟動是一項方便的功能,類似于停止捕捉后,在很短的時間內立即開始捕捉。以下兩種方式可以實現重新啟動捕捉:
  • 使用菜單項"Capture/ Restart"
  • 使用工具欄項" Restart"

  • [12] 記得在Windows安裝那一節層提到如果作為服務啟動可以避免非管理員無法進行捕捉,不知道二者能否相互印證。
    [13] 網卡在局域網內會接到很多不屬于自己的包,默認情況下,網卡會不對這些包進行處理。貌似設置為雜收模式,Wireshak會監聽所有的包,但并不作出相應。
    [14] 粗略查了一下,未找到該詞的合適翻譯,多見于Winpcap的描述,如果把該單詞拆分,snap:單元,快照,len:長度,似乎就是單位長度,單元大小的意思。在看看該段下面第二個如果中提到的snapshot length,snaplen應該是二者的簡寫形式,快照長度
    ?
    第 5 章 文件輸入/輸出及打印
    5.1. 說明
    本章將介紹捕捉數據的輸入輸出。
    ? 打開/導入多種格式的捕捉文件
    ? 保存/導出多種格式的捕捉文件
    ? 合并捕捉文件
    ? 打印包
    5.2. 打開捕捉文件
    Wireshark可以讀取以前保存的文件。想讀取這些文件,只需選擇菜單或工具欄的:“File/ Open”。Wireshark將會 彈出打開文件對話框。詳見第 5.2.1 節 “打開捕捉文件對話框”
    如果使用拖放功能會更方便
    要打開文件,只需要從文件管理器拖動你想要打開的文件到你的Wireshark主窗口。但拖放功能不是在所有平臺都支持。
    在你載入新文件時,如果你沒有保存當前文件,Wireshark會提示你是否保存,以避免數據丟失。(你可以在首選項禁止提示保存)
    除Wireshark原生的格式(libpcap 格式,同樣被 tcpdump/Windump和 其他基于libpcap/WinPcap使用)外,Wireshark可以很好地讀取許多捕捉文件格式。支持的格式列表見第 5.2.2 節 “輸入文件格式”
    5.2.1. 打開捕捉文件對話框
    打開文件對話框可以用來查找先前保存的文件。表 5.1 “特定環境下的打開文件對話框”顯示了一些Wireshark打開文件對話框的例子。
    對話框的顯示方式取決于你的操作系統
    對話框的顯示方式取決于操作系統,以及GTK+工具集的版本。但不管怎么說,基本功能都是一樣的。
    常見對話框行為:
    ? 選擇文件和目錄
    ? 點擊Open/OK按鈕,選擇你需要的文件并打開它
    ? 點擊Cancle按鈕返回Wireshark主窗口而不載入任何文件。
    Wireshark對話框標準操作擴展
    ? 如果選中文件,可以查看文件預覽信息(例如文件大小,包個數。。。)
    ? 通過"filter:"按鈕、顯示字段指定顯示過濾器。過濾器將會在打開文件后應用。在輸入過濾字符時會進行語法檢查。如果輸入正確背景色為綠色,如果錯誤或輸入未結束,背景色為綠色。點擊filter按鈕會打開過濾對話框,用于輔助輸入顯示過濾表達式。(詳見第 6.3 節 “瀏覽時過濾包”)
    XXXX-we need a better description of these read filters(貌似說這一段需要更多的做介紹)
    ? 通過點擊復選框指定那些地址解析會被執行。詳見第 7.6 節 “名稱解析”
    在大文件中節約大量時間
    你可以在打開文件后修改顯示過濾器,和名稱解析設置。但在一些巨大的文件中進行這些操作將會占用大量的時間。在這種情況下建議在打開文件之前就進行相關過濾,解析設置。
    表 5.1. 特定環境下的打開文件對話框
    圖 5.1. Windows下的打開對話框

    Microsoft Windows(GTK2 installed)

    此對話框一般都帶有一些wireshark擴展
    此對話框的說明:
    ? 如果可用,"help"按鈕將會打開本節的用戶手冊。
    ? "Filter."按鈕 在當前版本的windows下不可用(我看了一下,的確不可用,但過濾輸入框還是可用的)
    ? 錯誤提示功能:如果Wireshark無法識別選中的捕捉文件,Open按鈕將為灰色不可用[a]

    圖 5.2. 新版GtK下的打開對話框

    Unix/Linux:GTK version >= 2.4

    這是在Gimp/GNOME桌面環境下的打開文件對話框
    對此對話框的說明。
    ? “+”按鈕可以將右側選中的目錄添加到收藏夾。成為預設目錄。
    ? "-"按鈕可以移除左側目錄列表中選中的目錄。(“Home”,“Desktop”,"Filesystem"不可以移除)
    ? 如果Wireshark不能識別選中的捕捉文件,"Open"按鈕將是灰色不可用。
    圖 5.3. 舊版GTK下的打開對話框

    Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)

    gimp/gnome桌面環境,或windows gtk1下的的。
    該對話框說明
    ? 如果未能識別不做文件,Open按鈕將為灰色不可用
    [a] 我測試了一下,無論什么文件,Wireshark都會去嘗試打開,更遑論錯誤檢查

    5.2.2. 輸入文件格式
    可以打開的捕捉文件格式列表:
    ? libpcap, tcpdump and various other tools using tcpdump’s capture format
    ? Sun snoop and atmsnoop
    ? Shomiti/Finisar Surveyor captures
    ? Novell LANalyzer captures
    ? Microsoft Network Monitor captures
    ? AIX’s iptrace captures
    ? Cinco Networks NetXray captures
    ? Network Associates Windows-based Sniffer and Sniffer Pro captures
    ? Network General/Network Associates DOS-based Sniffer (compressed or uncompressed) captures
    ? AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/PacketGrabber captures
    ? RADCOM’s WAN/LAN Analyzer captures
    ? Network Instruments Observer version 9 captures
    ? Lucent/Ascend router debug output
    ? HP-UX’s nettl
    ? Toshiba’s ISDN routers dump output
    ? ISDN4BSD i4btrace utility
    ? traces from the EyeSDN USB S0
    ? IPLog format from the Cisco Secure Intrusion Detection System
    ? pppd logs (pppdump format)
    ? the output from VMS’s TCPIPtrace/TCPtrace/UCX$TRACE utilities
    ? the text output from the DBS Etherwatch VMS utility
    ? Visual Networks’ Visual UpTime traffic capture
    ? the output from CoSine L2 debug
    ? the output from Accellent’s 5Views LAN agents
    ? Endace Measurement Systems’ ERF format captures
    ? Linux Bluez Bluetooth stack hcidump -w traces
    ? Catapult DCT2000 .out files
    不正確的包類型可能無法會導致打開錯誤。
    某些類型的捕捉包可能無法讀取。以太網環境下捕捉的大部分類型格式一般都等打開。但有些包類型(如令牌環環包),不是所有的格式都被wireshark支持。
    5.3. 保存捕捉包
    你可以通過File->Save As…菜單保存捕捉文件。在保存時可以選擇保存哪些包,以什么格式保存。
    保存可能會丟失某些有用的信息
    保存可能會少量都是某些信息。例如:已經被丟棄的包會丟失。詳見???
    5.3.1. "save Capture File As/保存文件為"對話框
    "Save Capture File As"對話框用于保存當前捕捉數據到文件。???列舉了該對話框的一些例子。
    對話框的顯示方式取決于你的操作系統
    對話框的顯示方式取決于你的操作系統和GTK+工具集版本的不同。但大部分基本功能都是一樣的。
    表 5.2. 特定環境下的"Save Capture File As"對話框
    圖 5.4. Windows下的保存為對話框

    Microsoft Windows(GTK2 installed)

    此對話框一般都帶有一些wireshark擴展
    此對話框的說明:
    ? 如果可用,"help"按鈕將會打開本節的用戶手冊。
    ? 如果你未輸入文件擴展名-例如.pcap,Wireshark會自動添加該文件格式的標準擴展名。
    圖 5.5. 新版GtK下的保存為對話框

    Unix/Linux:GTK version >= 2.4

    這是在Gimp/GNOME桌面環境下的保存文件對話框
    對此對話框的說明。
    ? "Browse for other flders"前的“+”按鈕可以讓你指定文件保存的位置。。
    圖 5.6. 舊版GTK下的保存為對話框

    Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)

    gimp/gnome桌面環境,或windows gtk1下的的。

    通過這些對話框,你可以執行如下操作:

  • 輸入你指定的文件名。
  • 選擇保存的目錄
  • 選擇保存包的范圍,見第 5.8 節 “包范圍選項”
  • 通過點擊"File type/文件類型"下拉列表指定保存文件的格式。見???
    可供選中的文件格式可能會沒有那么多
    有些類型的捕捉格式可能不可用,這取決于捕捉包的類型。
    可以直接保存為另一種格式。
    你可以以一種格式讀取捕捉文件,保存時使用另外一種格式(這句可能翻譯有誤。)
  • 點擊"Save/OK"按鈕保存。如果保存時遇到問題,會出現錯誤提示。確認那個錯誤提示以后,你可以重試。
  • 點擊"Cancel"按鈕退出而不保存捕捉包。
    5.3.2. 輸出格式
    可以將Wireshark不著的包保存為其原生格式文件(libpcap),也可以保存為其他格式供其他工具進行讀取分析。
    各文件類型之間的時間戳精度不盡相同
    將當前文件保存為其他格式可能會降低時間戳的精度,見第 7.3 節 “時間戳”
  • Wireshark可以保存為如下格式。
    ? libpcap, tcpdump and various other tools using tcpdump’s capture format (.pcap,.cap,.dmp)
    ? Accellent 5Views (.5vw)
    ? HP-UX’s nettl (.TRC0,.TRC1)
    ? Microsoft Network Monitor - NetMon (.cap)
    ? Network Associates Sniffer - DOS (.cap,.enc,.trc,fdc,.syc)
    ? Network Associates Sniffer - Windows (.cap)
    ? Network Instruments Observer version 9 (.bfr)
    ? Novell LANalyzer (.tr1)
    ? Sun snoop (.snoop,.cap)
    ? Visual Networks Visual UpTime traffic (.*)
    5.4. 合并捕捉文件
    有時候你需要將多個捕捉文件合并到一起。例如:如果你對多個接口同時進行捕捉,合并就非常有用(Wireshark實際上不能在同一個實體運行多次捕捉,需要開啟多個Wireshark實體)
    有三種方法可以合并捕捉文件:
    ? 從"File"菜單使用,menu item “Merge”(菜單項 “合并”),打開合并對話框,見第 5.4.1 節 “合并文件對話框”
    ? 使用拖放功能,將多個文件拖放到主窗口。Wireshark會創建一個臨時文件嘗試對拖放的文件按時間順序進行合并。如果你只拖放一個文件,Wireshark可能(只是)簡單地替換已經打開的文件。
    ? 使用mergecap工具。該工具是在命令行進行文件合并的。它提供了合并文件的豐富的選項設置。見???
    5.4.1. 合并文件對話框
    通過該對話框可以選擇需要合并的文件,并載入合并它們。
    首先你會被提示有一個文件未保存
    如果當前文件未保存,Wireshark會在啟動合并對話框之前提示你是否保存文件。
    此處的對話框的大多數內容與"Open Capture Files/打開捕捉文件"對話框類似,參見第 5.2.1 節 “打開捕捉文件對話框”
    合并對話框中用于合并的控制選項:
    將包插入已存在文件前
    將選擇文件內的包插入到當前已經載入文件之前
    按時間順序合并文件
    將當前選擇的文件和已載入的文件里的所有包按時間順序合并
    追加包到當前文件
    將選擇文件的包插入到當前載入文件的末尾
    表 5.3. 不同環境下的"Merge Capture File As"對話框
    圖 5.7. Windows下的"合并"對話框

    Microsoft Windows(GTK2 installed)

    此對話框一般都帶有一些wireshark擴展
    圖 5.8. 新版GtK下的合并話框

    Unix/Linux:GTK version >= 2.4

    這是在Gimp/GNOME桌面環境下的合并對話框
    圖 5.9. 舊版GTK下的合并對話框

    Unix/Linux: GTK version < 2.4 / Microsoft Windows (GTK1 installed)

    5.5. 文件集合
    在進行捕捉時(見:第 4.6 節 “捕捉文件格式、模式設置”)如果設置"Multiple Files/多文件"選項,捕捉數據會分割為多個文件,稱為文件集合.
    大量文件手動管理十分困難,Wirreshark的文件集合特性可以讓文件管理變得方便一點。
    Wireshark是如何知道一個文件所屬的文件集合t的?
    文件集合中的文件名以前綴號碼+""+號碼+""+日期時間+后綴的形式生成的。類似于:“test_00001_20060420183910.pcap”.文件集合所有的文件都有一個共同的前綴(例如前面的"test")和后綴(例如:".pcap")以及變化的中間部分。
    要查找一個文件集合的所有文件。Wireshark會掃描當前載入文件的目錄下的所有文件,找到那些和當前文件名具有相同部分(前綴和后綴)的作為文件集合。
    這個簡單的機制通常能正常運行,但也有它的弊端。如果幾次進行的捕捉具有相同的前綴和后綴,Wireshark會將它們看作同一個文件集合。如果文件被更名或者放在不同的目錄下,這樣的按文件名查找機制會無法找到文件集合的所有文件。
    使用"File"菜單項的子菜單"File Set"可以對文件集合集合進行很方便的控制。
    ? List Files 對話框顯示一個對話框列出所有被識別出來屬于當前文件集合的文件列表。
    ? Next Files 關閉當前文件,打開文件集合列表中的下一個文件。
    ? Previous Files 關閉當前文件,打開文件集合列表中的前一個文件。
    5.5.1. 文件列表對話框
    圖 5.10. 文件列表對話框

    每行包含文件集合中的一個文件的相關信息。
    ? Filename 文件名稱。如果你雙擊文件名稱(或者單擊單選鈕),當前文件會被關閉,同時載入對應的文件。
    ? Created 文件創建時間。
    ? Last Modified 最后一次修改文件的時間。
    ? size 文件的大小。
    最后一行"…indirctory:"顯示所有文件所在的目錄。
    在每次捕捉文件被打開、關閉時,對話框的內容會變化。
    Close按鈕關閉該對話框。
    5.6. 導出數據
    Wireshark支持多種方法,多種格式導出包數據,本節描述Wireshark常見的導出包數據方法。
    注意
    個別數據需要使用許多特殊方式導出,在合適的時候我們會對其進行介紹。
    XXX - add detailed descriptions of the output formats and some sample output, too./同樣需要對導出格式進行介紹,同樣也需要一些范例范例
    5.6.1. "Export as Plain Text File"對話框
    導出包數據為"plain AscⅡ "文本文本見,適合打印包數據。
    圖 5.11. "Export as Plain Text File"對話框

    ? Export to file:導出包數據為指定的文件
    ? Packet Range 參見第 5.8 節 “包范圍選項”
    ? Packet Details 參見???
    5.6.2. “Export as PostScript File” 對話框
    導出數據為PostScript格式,PostScript是一種打印格式。
    提示
    PostScribt文件可以使用ghostscrip轉換為PDF格式。例如導出文件名為foo.ps,然后調用ps2pdf foo.ps命令就可以進行轉換。
    圖 5.12. “Export as PostScript File” 對話框

    ? Export to file: 導出包數據為指定的文件
    ? Packet Range: 參見第 5.8 節 “包范圍選項”
    ? Packet Details: 參見???
    5.6.3. “Export as CSV (Comma Separated Values) File” 對話框
    注:筆者認為此處應該增加截屏,因為我的xp下界面與前圖風格迥異,這里就不提供了
    導出包的摘要為CVS格式,可以被電子表格程序使用。
    ? Export to file 導出包數據為指定的文件
    ? Packet Range 參見第 5.8 節 “包范圍選項”
    5.6.4. “Export as PSML File” 對話框
    導出包數據為PSML格式,它是一種僅包含包摘要信息的xml格式。PSML格式的說明參見:http://www.nbee.org/Docs/NetPDL/PSML.htm.
    圖 5.13. "Export as PSML File"對話框

    ? Export to file:導出包數據為指定的文件
    ? Packet Range: 參見第 5.8 節 “包范圍選項”
    上圖沒有諸如Packet details的選項,因為PSML文件格式有特殊要求,不包含這些內容。
    5.6.5. “Export as PDML File” 對話框
    導出數據包為PDML格式,PDML是包含包詳情的xml格式文件。PDML文件的說明見:http://www.nbee.org/Docs/NetPDL/PDML.htm
    注意
    PDML格式還沒有發行版,Wireshark執行PDML還處在測試階段,期望外來版本會有所變化。
    圖 5.14. "Export as PDML File"對話框

    ? Export to file:將包數據導出到
    ? Packet Range: 參見第 5.8 節 “包范圍選項”
    上述對話框里沒有諸如Packet details選項,這是由于PDML格式約定的內容決定的。
    5.6.6. “Export selected packet bytes” 對話框
    圖 5.15. “Export Selected Packet Bytes” 對話框

    ? Name: 導出數據包為文件
    ? Save in folder:導出數據包到指定目錄
    ? Browser for other folders 通過瀏覽來指定導出數據的目錄。
    5.6.7. “Export Objects” 對話框
    這個對話框是用來掃描當前打開包文件或者是正在捕捉中的包文件,將其中的對象,如HTML文檔,圖片文件,可執行文件等等任何可以通過HTTP傳輸的對象進行重組集合,讓你可以將他們保存刀磁盤。如果捕捉正在進行中,列表會在發現新對象之后的幾秒內立即更新。保存的對象不需要進行額外處理就可以被對應的查看工具打開,或者直接運行(如果它可以在Wireshark所在的平臺運行的話)。這項功能在GTK1下的Wireshark中無法使用。
    圖 5.16. "Export Objects"對話框

    各列說明
    Packet num
    包含該對象數據的包的數目,有時候多個對象可能包含在同一個包里。
    Hostname
    作為服務器相應HTTP請求發送對象的主機的主機名。
    Content Type
    對象的HTTP內容類型
    Bytes
    對象的字節數
    Filename
    URL的最后一部分(最后一個"/"之后)。通常這部分是文件名,但有時是一個又常又復雜的字符串,這通常表明該文件是一個"HTTP POST"請求。(類似于填寫表單以后通過CGI提交后跳轉頁面的URL)
    按鈕說明:
    Help
    打開本節的用戶手冊(5.6.7節?)
    Close
    關閉該對話框
    Save As
    用指定文件名保存當前選擇對象。默認文件名是filename列中顯示的對象文件名。
    Save All
    將列表中所有對象按filename列顯示名稱保存。系統會提示你選擇哪個目錄/文件夾保存他們。如果文件名在當前操作系統或者文件系統下不合法,Wireshark會提示錯誤,該對象不會被保存(但其他對象會被保存)。
    5.7. 打印包
    要打印包,選擇File菜單的"Print…"菜單項。這時會彈出如圖 5.17 “ “Print” 對話框”所示的打印對話框。
    5.7.1. 打印 對話框
    圖 5.17. “Print” 對話框

    下面的字段在打印對話可用。
    Printer
    該字段包括一對互斥的單選鈕
    Print Text
    指定包打印為plain text格式
    PostScript
    在打印過程中使用PostScrtipt打印軟件生成打印輸出。[15]
    Output to file
    打印為文件,文件名使用輸入的字段或者在瀏覽按鈕選擇。
    如果你沒有選擇Output to file:復選框,你輸入字段的地方或Browse。。按鈕都是灰色。
    Print command
    設置打印時使用的命令
    注意
    打印命令在Windows平臺不可用。
    用于打印的命令通常是lpr.You would change it to specify a particular queue if you need to print to a queue other than the default.例如:
    lpr -Pmypostscript
    如果沒有選中Output to file,該字段將是灰色不可用的。
    Packet Range
    需要要被打印的包,參見:第 5.8 節 “包范圍選項”
    Packet Format
    選擇輸出文件的格式。你可以選擇包以何種方式打印包。見圖 5.19 “"Packet Format"選項卡”
    5.8. 包范圍選項
    在前面提到的很多輸出對話框,以及其他相關的對話框(比如捕捉)都有這個"Packet Range"選項,它可以對輸出哪些包進行控制。
    圖 5.18. "Packet Range"選項卡

    如果設置Captured按鈕,所有被輸出規則選中的包都會被導出,如果設置Displayed按鈕,則只有顯示中的包被規則選中的才會導出。
    All packets
    處理所有包
    Selected packet only
    僅處理被選中的包
    Marked packets only
    處理被標記的包
    From first to last marked packet
    處理第一個被標記的包,到最后一個被標記的包的加上之間的所有包。
    Specify a packet range
    處理用戶指定范圍內的包,例如 5,50-15,20- 會處理編號為5,編號10-15之間的包(包括10,15),以及編號20到最后一個包。
    5.9. 包格式選項
    包格式選項卡在很多輸出對話框都能看到,它可以指定包的那些部分會被輸出。
    圖 5.19. "Packet Format"選項卡

    Packet summary line
    導出包的摘要行,就是"Packet List"面板的內容
    Packet Details
    導出Packet Details樹
    All collaspsed
    "Packet Details"面板在"all collapsed"狀態下的所有信息(折疊所有分支)
    As displayed
    "Packet Details"面板當前狀態下的信息
    All expanded
    "Packet Details"面板"all expanded"狀態下的信息(展開所有分支)
    Packet bytes
    導出包字節,就是"Packet Bytes"面板的內容
    Each Packet on a new page
    輸出是每個包單獨一頁(例如,如果保存/打印成text文件,會在包之間加上分節符)


    [15] 譯者注:此處需要說明的是,如果沒有打印機,或者不想打印,你應該在后面指定Output to file,指定打印輸出未知,另,out put to file輸出的后綴名是.out,如果想用acrobat導入,可以考慮將后綴名修改為.ps,這樣可以被直接識別,當然,直接把文件拖放到Acrobat Distiller也可以直接生成PDF文件。
    另:使用PostScript輸出的文件具有良好的形式,比如在頁首會加上列名,而直接打印為print text卻沒有這樣的內容。
    ?
    第 6 章 處理已經捕捉的包
    6.1. 瀏覽您捕捉的包
    在你已經捕捉完成之后,或者打開先前保存的包文件時,通過點擊包列表面版中的包,可以在包詳情面板看到關于這個包樹狀結構以及字節面版
    通過點擊左側"+"標記,你可以展開樹狀視圖的任意部分。你可以在面板點擊任意字段來選擇它。例如:在下圖圖 6.1 “Wireshark選擇了一個TCP包后的界面”顯示的就是選中TCP字段。同樣可以選擇TCP包頭的應答號(ack:190),同時會出現在下方的字節瀏覽面版中。[16]
    圖 6.1. Wireshark選擇了一個TCP包后的界面

    在Wireshark正在捕捉時,您也可以進行同樣的選擇。(前提是您在捕捉選項對話框選擇了實時更新列表(update list of packet in real time ))
    另外,您可以使用分離的窗口瀏覽單獨的數據包,見圖 6.2 “在分離窗口瀏覽包” ,想要這樣做,你只需要在選中包列表面版中您感興趣的包,菜單 Display->Show Packet in New Windows 。它可以讓你很輕松地比較兩個或多個包。
    圖 6.2. 在分離窗口瀏覽包

    6.2. 彈出菜單項
    在包列表面板,包詳情面板,包字節面板點擊右鍵,都會出現對應的上下文彈出菜單
    6.2.1. 包列表面板的彈出菜單
    圖 6.3. 包列表面板彈出菜單

    下表列出了該面版可用彈出菜單項的概述,主菜單能實現同樣功能的菜單項,以及簡短的描述。
    表 6.1. 包列表彈出菜單項
    項目 對應主菜單項 描述
    Mark Packet(toggle) Edit 標記/取消標記包
    Set Time Reference(toggle) Edit 設置/重設時間參考

    Apply as Filter Analyze 用當前選中的項作為過濾顯示
    Prepare a Filter Analyze 準備將當前選擇項作為過濾器
    Conversation Filter - 將當前選擇項的地址信息作為過濾設置。選中該選項以后,會生成一個顯示過濾,用于顯示當前包兩個地址之間的會話(不分源目標地址)。(XXX - add a new section describing this better.—作者似乎建議添加新章節詳細描述)
    STCP - 有待補充
    Follow TCP Stream Analyze 瀏覽兩個節點間的一個完整TCP流所有數據
    Follow SLL Stream Analyze 同上,將TCP替換成SSL理解

    Copy/Summary(TEXT) - 將摘要字段復制到剪貼板。(以tab分開的文本)
    Copy/Summary(CVS) - 將摘要字段復制到剪貼板,(CVS格式,逗號分開)
    Copy/As Filter - 以當前選擇項,建立一個顯示過濾器,復制到剪貼板
    Copy/Bytes(Offset Hex Text) - 以16進制轉儲格式將包字節復制到剪貼板。
    Copy/Bytes(Offset Text) - 以16進制轉儲格式將包字節復制到剪貼板。不包括文本部分。
    Copy/ Bytes (Printable Text Only) - 以ASCII碼格式將包字節復制到剪貼板,包括非打印字符。
    Copy/ Bytes (HEX Stream) - 以16進制未分段列表數字方式將包字節復制到剪貼板,(an unpunctuated list of hex digits 應該有專有名詞,有興趣的查一下)
    Copy/ Bytes (Binary Stream) - 以raw binary格式將包字節復制到剪貼板。數據在剪貼板以"MIME-type application/octet-stream"存儲,該功能在GTK+1.x環境下不支持
    Export Selected Packet Bytes… File 與文件菜單同名項目功能一樣。允許將Raw packet 字節轉換為二進制文件它

    Decode As… Analyze 在兩個解析之間建立或修改新關聯(不知所云)
    Print… File 打印包
    Show Packet in New Window View 在新窗口顯示選中的包

    6.2.2. 包詳情面板的彈出菜單
    圖 6.4. 包詳情面板彈出上下文菜單項

    下表介紹了包詳情列表菜單項的功能描述,及其他可以提供該功能的主菜單
    表 6.2. 包詳情面板彈出上下文菜檔項
    項目 對應的主菜單 描述
    Expand Subtrees View 展開當前選擇的子樹
    Expand All View 展開捕捉文件的所有包的所有子樹
    Collapse All View 關閉包中所有已展開的子樹

    Copy/Description - 復制選擇字段顯示的文本到剪貼板
    Copy/AS Filter Edit 將選擇項目作為顯示過濾內容復制到剪貼板
    Copy/Bytes(Offset Hex Text) - 將包字節以Hexdump-like格式存儲到剪貼板;類似于包列表面板中同名的命令,但是拷貝結果僅僅是樹分支中被選中部分(包字節面板中被選中字節)
    Copy/Bytes(Offset Hex) - 以Hexdump-linke格式保存到剪貼,不包括文本部分。類似于包列表命令,不同之處在于此處僅拷貝樹分支選中部分(包字節面板選中部分)
    COPY/Bytes (printable Text Only) - 以ASCII格式拷貝包字節,非打印字符除外;類似于包列表面板中同樣的命令。不同點在于此處僅拷貝選擇的樹分支(包字符被選擇部分)
    Copy/Bytes(Hex Stream) - j以unpunctuated list hex digits形式保存到剪貼板,類似于包列表面板中的命令,不同之處在于僅復制選中子樹部分(包字節面板選中部分)
    Copy/Bytes(Binary Stream) - 以raw binary格式拷貝到剪貼板;類似于包列表面板中的命令,不同之處在于僅拷貝選中部分子樹(包字節面板選中部分)。數據以MIME-type“Application/octet-stream”存儲在剪貼板.該功能在GTK+1.x下不可用
    Export Selected Packet Bytes… File 同文件菜單中的同名項一樣。導出raw packet 字節為二進制文件。

    Apply as Filter analyze 將當前選擇項作為過濾內容,并應用
    Preapare a Filter Analyze 將當前選擇項作為過濾內容,但不立即應用
    Follow TCP Stream Analyze 追蹤兩個節點見,被選擇包所屬TCP流的完整數據
    Follow SSL Stream Analyze 同上

    Wiki Protocol Page - 顯示當前選擇協議的對應WIKI網站協議參考頁
    Filter Field Reference - 顯示當前過濾器的WEB參考
    Protocol Preferences… - 如果協議字段被選中,點擊該選項,打開屬性對話框,選擇對應協議的頁面,???

    Decode As… Analyze 更改或應用兩個解析器之間的關聯(什么鳥意思?)
    Resolve Name… View 對選擇的包進行名稱解析,不是指所有的包
    Go to corresponding Packet … Go 跳到當前選擇包的相應包。

    TNND,表格讓人崩潰
    6.3. 瀏覽時過濾包
    Wireshark有兩種過濾語法:一種是捕捉包時使用,另一種是顯示包時使用。本節介紹第二種過濾語法:顯示過濾。第一種過濾語法在第 4.8 節 “捕捉時過濾”提到
    顯示過濾可以隱藏一些你不感興趣的包,讓你可以集中注意力在你感興趣的那些包上面。你可以用從以下幾個方面選擇包:
    ? 協議
    ? 預設字段
    ? 字段值
    ? 字段值比較
    ? 。。。以及許多
    根據協議類型選擇數據報,只需要在Filter框里輸入你剛興趣的協議,然后回車開始過濾。???顯示了你輸入tcp進行過濾后的圖。
    圖 6.5. 用TCP協議過濾

    或許你沒有注意到,上圖顯示的已經僅有TCP協議了(從圖中可以看到1-10號包已經被隱藏)。因為包的編號是固定不變的,所以第一個包顯示的編號是11。
    注意
    當你使用過濾時,所有的包依然保留在捕捉文件里。顯示過濾只是更改捕捉文件的顯示方式而非內容。
    你只能對Wireshark可以識別的協議進行過濾。你也可以對解析器已經添加到樹視圖的字段進行過濾,但僅限于解析器已經為字段加上了協議縮寫的。在Add Expression…對話框可以看到可用的字段列表.詳見第 6.5 節 ““Filter Expression/過濾表達式”對話框”
    例如:想要限制包列表面板僅顯示來自或指向192.168.0.1的包,可以使用ip.addr==192.168.0.
    注意
    點擊Clear可以移除過濾
    6.4. 建立顯示過濾表達式
    Wireshark提供了簡單而強大的過濾語法,你可以用它們建立復雜的過濾表達式。你可以比較包中的值,合并表達式為多個指定表達式。本節介紹了相關操作。
    提示
    你可以在Wireshark Wiki Display頁找到發現大量的顯示過濾范例。http://wiki.wireshark.org/DisplayFilters.

    6.4.1. 顯示過濾字段
    包詳情面板的每個字段都可以作為過濾使用。應用這些作為過濾將會僅顯示包含該字段的包。例如:過濾字符串:TCP將會顯示所有包含TCP協議的包。
    通過"Help/Support Protocals"/幫助/協議支持菜單項訪問"Display Filter Fields/顯示過濾字段"可以查看完整完整的過濾字段列表。
    6.4.2. 比較值
    你可以通過在許多不同的比較操作建立比較過濾。詳見表 6.3 “顯示濾鏡比較操作符”
    提示
    你可以使用下表中的英語和比較符(c-link)項達到同樣的效果,它們也可以混合使用。
    表 6.3. 顯示濾鏡比較操作符
    English C-linke 描述及范例
    eq == Equal
    ip.addr==10.0.0.5
    ne != Not equal
    ip.addr!=10.0.0.5
    gt > Greate than
    frame.pkt_len>10
    lt < Less than
    frame.pkt_len<128
    ge >= Greater than or equal to
    frame.pkt_len ge 0x100
    le <= Equal
    frame.pkt_len <= 0x20

    6.4.3. 組合表達式
    你可以用邏輯操作符將過濾表達式組合在一起使用,見表 6.4 “顯示過濾的邏輯操作符”
    表 6.4. 顯示過濾的邏輯操作符
    English C-linke 描述和范例
    and && Logical AND
    ip.addr10.0.0.5 and tcp.flags.fin
    or || Logical OR
    ip.addr10.0.0.5 or ip.addr==192.1.1.1
    xor ^^ Logical XOR
    tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
    not ! Logical Not
    not llc
    […] Substring Operator
    Wireshark允許選擇一個序列的子序列。在標簽后你可以加上一對[]號,在里面包含用逗號(是不是冒號?)分離的列表范圍。
    eht.src[0:3] == 00:00:83
    上例使用n:m格式指定一個范圍。在這種情況下,n是起始位置偏移(0表示沒有偏移,即是第一位,同理1表示向右偏移一位,便是第二位),m是從指定起始位置的區域長度。
    eth.src[1-2] == 00:83
    上例使用n-m格式一個范圍。在本例中n表示起始位置偏移,m表示終止位置偏移
    eth.src[:4]=00:00:83:00
    上例使用:m格式,表示從起始位置到偏移偏移位置m。等價于0:m
    eth.src[4:]=20:20
    上例使用n:格式,表示從最后位置偏移n個序列
    eht.src[2] == 83
    上例使用 n 形式指定一個單獨的位置。在此例中中序列中的單元已經在偏移量n中指定。它等價于n:1
    eth.src[0:3,102,:4,4:,2] == 00:00:83:00:83:00:00:83:00:20:20:83
    Wireshark 允許你將多個分號隔開的列表組合在一起表示復合區域,如上例所示

    6.4.4. 常見的錯誤
    警告
    在組合表達式中使用"!="操作符,像eth.addr,ip.addr,tcp.port,udp.port等元素可能會產生非預期效果
    經常有人用ip.addr 1.2.3.4 表達式來選擇所有包含ip地址為1.2.3.4的包,
    如果有人想用ip.addr !=1.2.3.4 表達式來排除ip地址為1.2.3.4的包,很不幸。它不會像你期待的那樣。
    相反,那個表達式為真值得條件是源地址或目標地址中的任意一個不等于1.2.3.4即可。因此,那個表達式ip.addr !=1.2.3.4 可以被讀作:“該包包含的ip字段值必須不為1.2.3.4”。因為一個ip數據報同含源地址和目標地址,只要兩個地址有一個不為1,2,3,4表達式就為真。
    接著上面的話題,如果你真想過濾捕捉文件中,ip地址包含1.2.3.4的包,正確的表達式應該是!(ip.addr1.2.3.4)。它可以讀作:“顯示所有’字段名為ip.addr值存在1.2.3.4’為非真的包’”,換句話說:“篩選所有字段名ip.addr的值中未出現1.2.3.4的包”
    6.5. “Filter Expression/過濾表達式”對話框
    當你熟悉Wireshark過濾系統,并了解你可以用那些標簽進行過濾以后,你可以快速簡單地輸入過濾字符
    但如果你是一個Wireshark新手,或者處理一些相對陌生的協議,你可能很難通過直接輸入字符進行過濾。過濾表達式對話框會幫你解決這些問題
    提示
    過濾表達式對話框是學習輸入表達式的不錯的工具。(不知道用不錯是不是有點委屈)
    圖 6.6. 過濾表達式對話框

    打開上圖的對話框以后。將會顯示一個按協議類型分組的樹分支列表,一個關系選擇框。
    Field Name
    從協議字段樹中選擇協議字段。每個可過濾協議都放在第一級。點擊+號展開列表,可以獲得關于那些協議的可過濾字段。
    Relation
    從可用關系列表中選擇關系。is present是一元關系,表示如果你選擇的字段存在,表達式就為真值。其它關系都為二元關系,需要附加數據(例如:一個值來匹配)來完成。
    如果你從字段名列表選擇一個字段,并選擇一個二元關系(例如等于關系"=="),你可能需要輸入值,也有可能是范圍信息。
    Value
    在此輸入合適的配置值,輸入的值同樣要符合你選擇的field name的屬性值類型(例如 字符串).
    Predefined values
    有些協議字段包含預設值可用,這一點跟C語言中的枚舉變量類似。如果選擇的協議有這樣的值定義,你可以在此選擇。
    Range
    此處作者留空了
    OK
    如果你已經建立好了表達式,點擊OK即可創建你的過濾字符串
    Cancel
    你可以點擊Cancle按鈕不做任何修改離開Add Expression。。。對話框。
    6.6. 定義,保存過濾器
    你可以定義過濾器,并給他們標記以便以后使用。這樣可以省去回憶、重新輸入某些你曾用過的復雜過濾器的時間。
    定義新的過濾器或修改已經存在的過濾器有兩種方法:1、在Capture 菜單選擇Capture Filters…;2、在Analyze菜單選擇Display filter…。Wireshark 將會彈出如圖 6.7 “"捕捉過濾器"和"顯示過濾器"對話框”所示話框。
    注意
    因為捕捉和顯示濾鏡的設定義和保存方式幾乎完全一樣。所以這里放在一起講,二者之間的不同點會做標記
    警告
    你必須用Save來保存你的過濾器,OK或者Apply不會保存過濾器。關閉wireshark時會隨之消失
    圖 6.7. "捕捉過濾器"和"顯示過濾器"對話框

    New
    增加一個新的過濾器到列表中。當前輸入的Filter name,Filter string值將會被使用。如果這些都為空,將會被設置為"new"(是說filtername還是說二者都是?)
    Delete
    刪除選中的過濾器。如果沒有過濾器被選中則為灰色
    Filter name
    修改當前選擇的過濾器的名稱
    注意
    過濾器名稱僅用在此處為了區分方便而已,沒有其他用處。你可以將多個過濾器使用同一個名稱,但這樣會很不方便
    Filter string
    修改當前選中過濾器的的內容。僅適用顯示過濾:在輸入時進行語法檢查。
    Add Expression
    僅適用顯示過濾:打開增加表達式對話框,輔助創建過濾表達式。詳見第 6.5 節 ““Filter Expression/過濾表達式”對話框”
    OK
    僅適用顯示過濾:為當前顯示應用選擇的過濾器,關閉當前對話框。
    save
    保存當前對話框設置。文件位置和格式見???
    Close
    關閉當前對話框。將會放棄未保存的設置。
    6.7. 查找包
    當你捕捉到一些包以后,或者讀取以前存儲的包的時候,可以很容易的進行查找。從Edit菜單選擇Find Packet…菜單項.Wireshark將會彈出圖 6.8 “"Find Packet/查找包"對話框”所示對話框.
    6.7.1. 查找包對話框
    圖 6.8. "Find Packet/查找包"對話框

    首先你需要選擇查找方式:
    Display filter
    在Filter:輸入字段,選擇查找方向,點擊OK(過濾器方式)
    例如:查找192.168.0.1發起的三步握手建立連接,使用如下字符:
    ip.addr == 192.168.0.1 and tcp.flags.syn
    顯示過濾的詳情,參見第 6.3 節 “瀏覽時過濾包”
    Hex Value
    在包數據中搜索指定的序列
    例如,使用"00:00"查找下一個包含兩個空字節的包數據。
    String
    在包中查找字符串,可以指定多種參數
    輸入的查找值將會被進行語法檢查。如果語法檢查無誤,輸入框背景色會變成綠色,反之則是紅色。
    你可以指定查找的方向通過:
    UP
    向上查找包列表(包編號遞減方式)
    Down
    向下查找包列表(包編號遞增方式)
    6.7.2. "Find Next/查找下一個"命令
    適用最后一次的查找設置繼續查找
    6.7.3. "Find Previous/查找上一個"命令
    適用最后一次的設置修改查找方向,繼續查找。
    6.8. 到指定的包
    通過"Go"菜單可以很輕松跳轉到指定的包
    6.8.1. "GO Back"返回命令
    使用Go back返回包歷史記錄,工作方式跟web瀏覽器的頁面歷史記錄類似
    6.8.2. "Go Forward /向前"命令
    前進到包的歷史記錄,工作方式跟web瀏覽器的頁面歷史記錄類似
    6.8.3. "Go to Packet/到指定的包"對話框
    圖 6.9. "GO to packet/轉到指定包"對話框

    輸入包的編號,點擊OK,跳轉到指定的包(他媽的我怎么看都是jump to,怎么成了OK?).
    6.8.4. "Go to Corresponding Packet/到對應的包"命令
    如果被選擇協議字段指向文件中的另一個包,該命令將會跳轉到那個包。
    注意
    該協議字段看起來有點像超鏈接(就像瀏覽器里的),雙擊該字段也可以跳轉到對應的包。
    6.8.5. "Go to Firest Packet/到第一個包"命令
    跳到第一個包
    6.8.6. "Go to Last Packet/到最后一個包"命令
    跳到最后一個包
    6.9. 標記包
    你可以在包列表面板對包進行標記。被標記的包背景色為黑色,不管原來設置的顏色是怎樣的。標記包有助于分析大的包文件時進行查找。
    警告
    包標記并沒有存儲在捕捉文件中或任何其他地方,關閉文件后,所有標記將會丟失。
    在保存/導出/打印包時,你可以使用包標記控制輸出包。標記包以后,可以輸出進行區間選擇。見第 5.8 節 “包范圍選項”
    對標記包可以進行三項操作
    ? Mark packet(toggle) 凍結以標記的單個包
    ? Mark all packets 標記所有包.
    ? Unmark all packets 取消所有標記
    這些標記功能出現在"Edit"菜單。“Mark packet(toggle)”功能在彈出包列表面板彈出上下文菜單同樣可以找到。
    6.10. 時間顯示格式及參考時間
    在捕捉包的過程中,每個包都帶有時間戳。時間戳會被保存在捕捉文件中,以備將來分析用。
    關于時間戳,時區以及相關的東西的描述介紹,見第 7.3 節 “時間戳”
    包列表的時間戳格式預設和精度可在瀏覽菜單選擇,見第 3.5 節 “"File"菜單”
    可用的預置格式如下:
    ? Date and Time of Day: 1970-01-01 01:02:03.123456 包捕捉的絕對日期和時間
    ? Time of Day: 01:02:03.123456 包捕捉的絕對時間
    ? Seconds Since Beginning of Capture: 123.123456 相對與文件開始捕捉的時間或第一個時間參考包的 到這個包之前的時間。(見第 6.10.1 節 “包參考時間”)
    ? Seconds Since Previous Captured Packet: 1.123456 相對前一個捕捉包的時間
    ? Seconds Since Previous Displayed Packet: 1.123456 相對前一個顯示包的時間(過濾/顯示)
    可用精度(正如你所致的,數字是以10進制形式的)有:
    ? Automatic 使用載入文件格式具有的時間戳精度。(默認選項)
    ? Seconds, Deciseconds, Centiseconds, Milliseconds, Microseconds or Nanoseconds 強制使用你指定的精度。如果實際精度比你指定的低,會在后面自動追加0.如果實際精度比你指定的高。數據會被截尾。
    精度距離:如果你有個時間戳,顯示時使用:“Seconds Since Previous Packet”,:它的值可能是1.123456.默認會采用"Automatic"精度設置,也就是來自libpcap格式文件的固有精度(百萬分之一秒)。如果你指定精度為秒,則顯示為1,如果你使用。納秒(nanoseconds),將會顯示為1.123456000.
    6.10.1. 包參考時間
    用戶可以為包設置時間參考。時間參考是所有后續包的起算時間。如果你想知道到某一個特定包的時間間隔,會很有用。例如:開始一個新請求??梢栽谝粋€包里面設置多個參考時間。
    警告
    時間參考不能保存到包文件中,關閉文件后就會丟失。
    注意
    時間參考可能僅僅在時間格式為"Seconds Since Beginning of Capture"模式下比較有用。其他時間顯示形式下可能要么是不能工作,要么是沒作用。
    要使用時間參考,選擇Edit菜單下“Time Reference”項中的一個。詳見第 3.6 節 “"Edit"菜單”,或者從包列表的右鍵彈出項選擇。
    ? Set Time Refernce(toggle) 切換當前包時間參考狀態開關
    ? Find Next 在包列表面板查找下一個時間參考包
    ? Find Previous 在包列表面板查找前一個時間參考包
    圖 6.10. 時間參考舉例

    作為時間參考的包,在time列會有REF字符串作為標記(見上圖第10個包)。所有后續包都會用最后一個時間參考來顯示時間。


    [16] 不甚了解下方的16進制轉儲怎么表達190的
    ?
    第 7 章 高級
    7.1. 說明
    在本節將介紹Wireshark的一些高級特性
    7.2. “Follow TCP Stream”
    如果你處理TCP協議,想要查看Tcp流中的應用層數據,"Following TCP streams"功能將會很有用。如果你項查看telnet流中的密碼,或者你想嘗試弄明白一個數據流?;蛘吣銉H僅只需要一個顯示過濾來顯示某個TCP流的包。這些都可以通過Wireshark的"Following TCP streams"功能來實現。
    在包列表中選擇一個你感興趣的TCP包,然后選擇Wireshark工具欄菜單的"Following TCP Streams"選項(或者使用包列表鼠標右鍵的上下文菜單)。然后,Wireshark就會創建合適的顯示過濾器,并彈出一個對話框顯示TCP流的所有數據。如圖 7.1 “"Follow TCP Stream"對話框”所示
    注意
    值得注意的是:Follow Tcp Stream會裝入一個顯示過濾來選擇你已經選擇的Tcp流的所有包。
    7.2.1. "Follow TCP Stream"對話框
    圖 7.1. "Follow TCP Stream"對話框

    流的內容出現的順序同他們在網絡中出現的順序一致。從A到B的通信標記為紅色,從B到A的通信標記為藍色。當然,如果你喜歡的話你可以從"Edit/Preferences"菜單項的"Colores"修改顏色。
    非打印字符將會被顯示為圓點。XXX - What about line wrapping (maximum line length) and CRNL conversions?
    在捕捉過程中,TCP流不能實時更新。想得到最近的內容需要重新打開對話框。
    你可以在此對話框執行如下操作:

  • Save As 以當前選擇格式保存流數據。
  • Print 以當前選擇格式打印流數據。
  • Direction 選擇流的顯示方向(“Entire conversation”, “data from A to B only” or “data from B to A only”).
  • Filter out this stream 應用一個顯示過濾,在顯示中排除當前選擇的TCP流。
  • Close 關閉當前對話框。移除對當前顯示過濾的影響。
    你可以用以下格式瀏覽流數據。
  • AsCII。在此視圖下你可以以ASCII凡是查看數據。當然最適合基于ASCII的協議用,例如HTTP.
  • EBCDIC。For the big-iron freaks out there.(不知道這句是什么意思, EBCDIC 是IBM公司的字符二進制編碼標準。)
  • HEX Dump. 允許你查看所有數據,可能會占用大量屏幕空間。適合顯示二進制協議。
  • C Arrays. 允許你將流數據導入你自己的C語言程序。
  • RAW。 允許你載入原始數據到其他應用程序做進一步分析。顯示類似與ASCII設置。但“save As”將會保存為二進制文件。
    7.3. 時間戳
    時間戳,時間戳的精度,等等是在讓人感到困惑。本節將向你介紹介紹Wireshark處理時間戳時都發生了什么。
    在包被捕捉時,每個包在進入時都被加上時間戳,這個時間戳將會保存在捕捉文件中,所以他們也可以在以后分析時使用。
    那么說,時間戳是從哪里來的呢?是捕捉的時候產生的。Wireshark從 libpcap(WinPcap) libraray(庫)中獲得時間戳。而libpcap(winpcap)又是從操作系統內核獲得的時間。如果捕捉數據是從捕捉文件載入的,很顯然Wireshark從文件中獲得時間戳數據。
    7.3.1. Wireshark內置
    Wireshak內置的格式使用的時間戳格式由日期(從1.1.1970開始)和時間(從凌晨起,納秒(10億分之一秒)為單位)組成。你可以調整Wireshark在包列表的時間戳顯示方式。見第 3.7 節 “"View"菜單”的"Time Display Format"項。
    當讀取或寫入捕捉文件時,Wireshark按需要在內置格式和其他捕捉文件格式間進行時間戳轉換。
    捕捉時,Wireshark使用libpcap(WinPcap)捕捉庫(支持納秒精度)。除非你在專用的捕捉硬件上進行捕捉,一般這樣的精度已經足夠了。
    7.3.2. 捕捉文件格式
    Wireshark支持的捕捉文件格式都帶有時間戳。不同的捕捉文件格式的時間戳精度有很大不同,從秒"0"到納秒 “0.123456789"都有。大多數格式捕捉文件存儲的時間戳都是固定精度的,些捕捉文件格式甚至存儲了時間戳精度本身(可能是出于方便)。
    大多數被Wireshark(和或多其他工具)使用的libpcap捕捉文件格式都僅支持固定的百萬分之一固定精度"0.123456”
    注意
    寫入數據到一個實際支持精度比你寫入數據精度低的格式文件中,可能會導致數據丟失。例如:如果你載入一個納秒精度的捕捉文件,然后將其存儲為libpcap文件(百萬分之一秒精度)。Wireshark很明顯會將時間精度調整為百萬分之一秒。
    7.3.3. 準確性
    經常有人問:“Wireshark的時間戳的準確性如何?”。實際上,Wireshark自身不會創建時間戳,而是通過其他的地方得到時間并顯示他們。所以,準確性取決于你實用的捕捉系統(操作系統,性能。。。)。因此以上問題很難通過通常的途徑回答。
    注意
    通常USB連接的網絡適配器提供的精度非常差。入口的實際上“占用很長的時間和走很曲折的路”才能穿過USB數據線到系統內核。而數據包只有被系統內核處理過以后才會打上時間戳,這種時間戳機制將會導致準確性大大降低。
    結論:如果你需要精確的時間戳,請不要使用USB連接的網卡!(筆者的注腳:有沒有網卡在USB硬件上提前加上時間戳的?)[17]
  • 7.4. 時區
    當你在各地旅行時,會碰到時區的困擾。如果你從其他時區得到捕捉文件,時區問題會給你帶來更大的困擾:-)
    首先,下面有兩個原因說明你為什么完全不需要考慮時區問題:
    ? 你僅對兩個包的時間戳的差別有興趣,你并不需要了解捕捉包的實際的日期和時間(通常是這樣)。
    ? 很可能你不會得到不同與你所在時區的包文件,所以你基本上碰不到時區問題。例如:你的團隊的所有都和你工作在一個時區。
    表 7.1.
    什么是時區?
    人們希望時間和日升日落對應。早成應該是6點鐘,天黑應該在20:00.這些時間又隨著四季變化。如果地球上每個人使用同樣的全局時間,將只有一小部分人的日落和時間對應,這將會導致混亂。
    因此,人們將地球劃分為不同的區域,每個區域都有一個本地時間對應本地的日升日落。
    時區基于UTC(Coordinated Universal Time)或者Zulu 時間(軍事和航空)。舊有的GTM(格林尼治時間)已不再使用,因為它有少許誤差(與UTC相比達到0.9秒)。UTC起始時區等于0(位于格林威治,英格蘭),所有的時區和它的偏在在-12~+14小時之間!
    例如:如果你住在柏林,你的時區將比UTC早1小時,所以你的時區應該是"+1"(與UTC時間比較的差別,以小時為單位)。柏林的3點和UTC的兩點鐘表示同一個時刻。
    有些地區要加以注意,因為那里的時區不是用整小時的。(比如:新德里的時區是 UTC+05:30)
    更多相關信息見http://en.wikipedia.org/wiki/time_zone和http://en.wikipedia.org/wiki/Coordinated_Universal_Time。

    表 7.2.
    什么是時DST?
    Daylight Saving Time(DST),又稱為夏令時,目的是在夏天的幾個月里“拯救”白天的時間(夏季白晝較長,如果按照傳統的作息時間,比較可惜,不過我不認為)。為了達到這個目的,很多國家(但不是所有的)增加一個DST小時到UTC中。所以你還得加個小時(極少數地方甚至是2小時)的時差來計算你的時區。
    不幸的是,DST并未在全世界范圍內被啟用。你可能同樣注意到,北半球和南半球的夏令時是剛好相反的(比如:歐洲是夏季時,澳大利亞則是冬季)。
    注意:不管DST怎樣,UTC在全年都是一致的。
    更多相關信息見http://en.wikipedia.org/wiki/Daylight_saving.

    7.4.1. 正確設置你的計算機的時區
    如果你同世界各地的人一同工作,正確設置計算機時區非常有必要。
    你應當按正確的順序設置時間和時區

  • 設置正確的時區。
  • 設置本地時間。
    這樣的順序將告訴你的計算機本地時間和時區。
    提示
    如果你去各地旅行,通??赡軙竾L試調整計算機本地時間的錯誤。實際上并不需要這樣做,僅僅調整時區就可以了。在計算機上,時間實際上沒有發生變化,你只是在不同時區采用不同的本地時間而已。
    提示
    你可以使用網絡時間協議(Network Time Protocol NTP)通過與互聯網上的NTP授時服務器同步來自動調整你的計算機的時間。Wireshark支持的所有平臺都可以使用NTP客戶端,可參見http://www.ntp.org/的介紹。
    7.4.2. Wireshark和時區的關系
    那么,Wireshark和時區到底有什么關系?
    Wireshark原生的捕捉文件格式(libpcap 格式),和一些其他格式,例如sniffer,EtherPeek,AiroPeek和 Sun snoop格式,都將包到達時間存儲為UTC時間。UNIX系統,Windos NT系統(NT 4.0,2000,xp,2003,vista)在系統內部都將時間表示為UTC.當Wireshark進行捕捉時,無需進行轉換。但如果你沒有正確設置時區,即使系統時鐘正確顯示了本地時間,UTC時間也有可能是錯誤的。"windows 9X系列(win95,98,winMe)"在系統內部以本地時間表示時間。在捕捉時,WinPcap必須將時間轉換為UTC時間再發送給Wireshark.如果時區設置錯誤,轉換時間也不會正確。
    其他捕捉格式,如Microsoft Network Monitor,Dos-based Sniffer,和Network Instruments Observer 格式,保存包到達時間為本地時間。
    在Wireshark內部,時間戳以UTC時間顯示;這意味著,如果要讀取那些保存包達到時間為本地時間的捕捉文件,Wireshark需要將本地時間轉換為UTC時間。
    隨后Wireshark會始終以本地時間顯示時間戳。用于顯示捕捉數據的計算機會將UTC時間轉換為本地時間,并顯示這個這個本地時間。對于那些是以UTC值來存儲包到達時間的捕捉文件,這意味著到達時間會顯示為你所在時區的本地時間,這很有可能同與你不同時區的捕捉數據的人看到的到達時間不一樣。對于那些以本地時間存儲包到達時間的包文件,時區轉換會使用你所在的時區與UTC偏差,以及DST規則進行轉換,這很可能會導致錯誤時間顯示,將顯示設置修改改為顯示本地時間可能會修正這個錯誤,這樣現實的時間值可能會與捕捉文件到達時間一致。
    表 7.3. 各時區UTC到達時間
    Los Angeles New York Madrid London Berlin Tokyo
    Capture File(UTC) 10:00 10:00 10:00 10:00 10:00 10:00
    Local Offset to UTC -8 -5 -1 0 +1 +9
    Displayed Time(local Time) 02:00 05:00 09:00 10:00 11:00 19:00
  • 舉例:假定有人在洛杉磯本地時間臨晨2:00點整捕捉了一個包,然后發送給你包含那個包的文件。那個包在包文件中的時間戳將是UTC時間10:00.你在柏林打開后會看到那個包顯示的時間是11:00點。
    假設現在你和你的同事正在通過電話,視頻會議,或者網絡會議討論那個包文件。前面提到的那個包,在洛杉磯的朋友看到的依然是2:00,而你看到的卻是11:00。對同一個時間點,兩個地方會顯示不同的本地時間。
    結論:你可能不介意你看到的時間戳的日期/時間顯示,除非你確實需要正確設置時間/日期。所以,如果你得到一個其他時區/DST的捕捉文件,你必須了解兩地的時區/DST的不同,對時間戳做合適的調整。無論怎樣,確定每臺電腦都正確設置了時間和時區。
    7.5. 合并包
    7.5.1. 什么是合并包
    網絡協議經常需要傳輸較大的數據塊,在傳輸時,底層協議可能不支持這樣大的數據塊(比如網絡包大小的限制),或者是像像TCP一樣的流數據,TCP流完全不知道數據分塊情況。(原文為:or is stream-based like TCP, which doesn’t know data chunks at all.)
    在這種情況下,網絡協議必須確定數據塊分段的邊界,并(如果有必要)將數據塊分割為多個包。很明顯在接受端也需要有找到數據塊分段邊界的機制。
    提示
    在Wireshark里面,這個機制/方法被稱為合并/reasembling,在特定協議的描述可能不盡相同(例如:desegmentation, defragmentation, …)
    7.5.2. 如何用Wireshark合并包
    對那些可以被Wireshark識別的協議,Wireshark通常處理過程為:查找、解碼、顯示數據塊。Wireshark會嘗試查找數據塊對應的包,在"Packet Bytes"面板的附加頁面顯示合并以后的數據。(關于“Packet Bytes”面板的詳細介紹,見第 3.7 節 ““View"菜單”)
    圖 7.2. 帶有合并包附加選項卡"Packet Bytes面板”

    注意 合并可能發生在多個協議層,所以在"Packet Bytes"面板可能會見到多個附加頁選項卡 注意 你會在數據塊的最后一個包看到合并后的數據。

    以HTTP Get應答為例:請求數據(例如一個HTML頁面)返回時。Wireshark會顯示一個16進制轉儲數據在"Packet Bytes"面板的一個名為"Uncompressed entity body"新選項卡。
    默認情況下,首選項中合并功能被設置為允許。在2005年9月之前默認值是不允許。如果你的首選項是在200年9月之前設置的,你得確認一下,合并包選項的設置。合并包對分析網絡包作用非常大。
    允許和禁止合并包設置對協議來說還有兩項要求。

  • 下層的協議(如:TCP)必須支持合并。通常協議支持合并與否都是通過協議的參數設置的。
  • 高層協議協議(如:HTTP)必須使用合并機制來合并分片的數據。這些也同樣可以通過協議參數來允許或禁止。
    在設置高層協議的時候tooltip會提醒你同樣需要考慮低層的協議設置。
    7.6. 名稱解析
    名字解析嘗試將數字地址解析成適合人們閱讀格式。有兩種方法可以完成這項工作:通過系統/網絡服務(例如獲取主機名)和/或 Wireshark指定的賦值文件。關于通過賦值文件進行解析的詳情,可以參見???
    名字解析可以分協議層進行允許,禁止設置。
    7.6.1. 名字解析的流弊
    名字解析在使用Wireshark時有重要價值,甚至可以節約大量時間。不幸的是,名字解析也有它自己的缺點。
    ? 名字解析經常會不可用。服務器可能不知道需要被解析的名字,或者服務器不可用。又或者需要解析的名字在賦值配置文件中找不到。
    ? 名字解析并沒有存儲在捕捉文件或其他什么地方。因此你以后打開捕捉文件或者在其他設備上打開文件有可能發現名字解析不可用。每次打開捕捉文件可能會發現部分地址略微發生變化,也許僅僅是因為無法連接到名字解析服務器(之前還是可以連接的)
    ? DNS可能會增加額外的包到Wireshark中。你會在包文件中看到由Wireshark請求DNS服務生成的包進出你的機器。
    ? 解析名稱被Wireshark緩存。這對設備性能有一定需求。但是,如果名字解析信息在wireshark運行時發生變化,wireshark不會注意到這個變化,因為它是從緩存進行解析的。如果這些信息在Wireshark運行時變化了,例如獲取一個新DHCP租約,Wireshark不會注意到。(這些是針對DNS還是所有信息?有多少機器使用動態dns注冊?)
    提示
    名字解析在包列表填入時已經完成。如果一個包填入包列表以后被解析,包列表的內容不會立即更改,相反解析結果會被緩存,你可以使用"View/Reload"重建包列表,來正確顯示名字解析結果。但在捕捉過程中這樣做沒有效果。
    7.6.2. 以太網名字解析(mac層)
    嘗試將MAC地址(e.g. 00:09:5b:01:02:03)解析為適合閱讀的地址(“Human readable”)
    ARP名字解析(系統服務) Wireshark會向操作系統發出請求,將以太網地址轉換為對應的IP地址(e.g. 00:09:5b:01:02:03->192.168.0.1)
    Ethernet codes(ethers file) 如果ARP解析錯誤,Wireshark會嘗試將以太網地址解析為已知設備名。這種解析需要用戶指定一個ethers文件為mac地址分配名稱。(e.g. 00:09:5b:01:02:03 -> homerouter).
    Ethernet manufacturer codes (manuf file) 如果ARP解析和ethers文件都無法成功解析,Wireshark會嘗試轉換mac地址的前三個字節為廠商名的縮寫。mac地址的前三個字節是IEEE為各廠商分配的獨立地址(通過前三個字節可以得出每個網絡設備的供應商,當然這些也是可以被篡改的。,)(e.g. 00:09:5b:01:02:03 -> Netgear_01:02:03).
    7.6.3. IP地址解析(網絡層)
    將IP地址(e.g. 216.239.37.99)轉換為適合閱讀的地址/“Human readable”
    DNS/ADNS name resolution(system/library service)Wireshark會向操作系統(或ADSN library 地址-名稱解析詞典?)請求,將IP地址轉換為相關聯的主機名(e.g. 216.239.37.99 -> www.1.google.com).此時DNS服務正在同步請求DNS服務器,所以Wireshark會停止相應直到DNS請求的響應返回。如果可能的話,你可以考慮使用ADNS library(這樣可以避免等待網絡相應。)
    警告
    如果名稱解析服務器不可用,允許網絡名稱解析使Wireshark明顯變慢,因為wireshark會等待名字解析結果直到超時。在這種情況你應該使用ADNS。
    DNS vs. ADNS 這里是一個簡短的對比:兩個都是用來轉換ip地址為其他易讀的地址"Human readable"(域名)。通常DNS用gethostname()將地址轉換為名稱。通常首先是查詢hosts文件(e.g. /etc/hosts,/windows/system32/drivers/etc/hosts)看能否找到匹配實體。如果找不到,會向指定的DNS服務器查詢。
    DNS和ADNS真正的區別在于等待DNS服務器名字解析。gethost()會一直等待知道名字被解析或者返回錯誤。如果DNS服務器不可用,可能會占用很長時間(好幾秒)。ADNS服務會略微有點不同。它也同樣向DNS服務器發出請求,但不會等待服務器應答。它會立即相應Wireshark。此時的地址(和后續地址)在ADNS得到結果前不會顯示解析名稱。如前文書中說道,解析結果被保存在緩存中,你需要使用"View/Reload"菜單更新這些字段來顯示解析名稱。
    hosts name resolution(hosts file) 如果dns解析不成功,Wireshark會嘗試使用用戶提供的主機文件將IP地址轉換為對應的主機名。(e.g. 216.239.37.99 -> www.google.com)
    7.6.4. IPX名稱解析(網絡層)
    ipxnet name resolution (ipxnets file) (筆者未作解釋)
    7.6.5. TCP/UDP端口名解析(傳輸層)
    翻譯TCP/UDP端口(e.g.80)為更加易讀的玩意"human readable"[18]
    TCP/UDP port conversion (system service) Wireshark會向操作系統發出請求,轉換TCP/UDP端口為已知名稱(e.g. 80->http)。
    XXX - mention the role of the /etc/services file (but don’t forget the files and folders section)!
    7.7. 校檢和
    很多協議使用校檢和來驗證數據的完整性/正確性。
    提示
    應用校檢和在這里也被成為redundancy check(冗余校檢?)
    校檢和是做什么的?
    校驗和是用來驗證傳輸數據或存儲數據的數據部分的正確性。一個檢驗和是數據部分進行摘要計算的出的數字。
    網絡數據在傳輸過程中經常會產生錯誤,例如數據錯誤,字節重復等。數據接收方可能。
    正因為傳輸過程中會伴隨錯誤,網絡協議會經常使用校驗和檢測這些錯誤。發送方會對數據進行檢驗和計算,并將數據和檢驗和一起發送。接收方使用同樣的方法計算數據部分的校驗和,如果收到的校驗和計算出來的校驗和不匹配,就表示數據有錯誤。
    有些校驗和方法可以通過計算得出發生需要被修復錯誤的數據位置,并修復(簡單的)錯誤。
    如果那些錯誤無法修復,接收方會丟棄錯誤的數據包。根據協議的不同,數據丟失會僅僅被丟棄,也有可能發送端會根據數據丟失情況重傳需要的數據包。
    使用校驗和可以大量減少傳輸錯誤數量。但任何檢驗和算法都無法確保100%檢測到所有錯誤,依然有少量的錯誤會無法被檢測到。
    校驗和的算法有很多,例如最經常被使用的檢驗和算法CRC32(循環冗余校驗)。特的的網絡協議選擇的校驗算法取決于希望網絡媒介達到的出錯率上限、錯誤檢測的重要性,處理載入計算的性能,其他方面需要的性能。
    關于檢驗和的更多信息可以參考:http://en.wikipedia.org/wiki/Checksum
    7.7.1. Wireshark校檢和驗證
    Wireshark會對很多協議進行檢驗和驗證,如:TCP、IP。。。
    它會和"normal receiver"做一樣的計算.然后在包詳情面板顯示檢驗和字段的內容,e.g.:[correct], [invalid, must be 0x12345678] 以及其他類似的內容。
    如果校驗和驗證選項被打開或正在進行校驗和檢測,合并包特性不會被執行。這是為了避免錯誤的的連接數據擾亂內部數據。
    7.7.2. Checksum offloading
    檢驗和計算可能由網絡網絡驅動,協議驅動,甚至是硬件完成。
    例如:以太網傳輸硬件計算以太網循環容易校驗,接受硬件驗證這個校驗。如果接受驗證發現錯誤,Wireshark將不會接收到這個包,以太網硬件會直接丟棄這個包。
    高層校驗通常是由協議執行,并將完成后的包轉交給硬件。
    比較新的網絡硬件可以執行一些高級功能,如IP檢驗和計算,這被成為checksum offloading。網絡驅動不會計算校驗和,只是簡單將校驗和字段留空或填入無效信息,交給硬件計算。
    注意
    checksum offloading經常會導致混亂,因為網絡包在檢驗和計算之前轉交給Wireshark。Wireshark得到包的檢驗和字段是空的,必然會顯示檢驗和錯誤,盡管這個包在從網絡硬件發出的時候是帶有校驗和的。
    Checksum offloading會引起混淆,讓你屏幕上看到大量的[invalid]信息,引起你的反感。前面提到過,錯誤的檢驗和會導致包無法合并,更難進行包數據分析。
    你可以采取兩種方法避免Checksum offloading 問題
    ? 在驅動程序上關閉checksum offloading選項,如果可用的話。[19]
    ? 通過首選項關閉Wireshark上特定協議的校驗和驗證。

  • [17] 譯者注:前文提到,時間戳是Wireshark用庫獲取的時間加在包上的,不知為何有此一問。難道以后要識別硬件是否有時間戳功能。
    [18] 應該是指將端口翻譯為服務名
    [19] 在Windows平臺如果驅動支持,應該是計算機管理->設備管理器->網絡適配器->對應網卡的屬性-高級選項
    ?
    第 8 章 統計
    8.1. 說明
    Wireshark提供了多種多樣的網絡統計功能
    包括,載入文件的基本信息(比如包的數量),對指定協議的統計(例如,統計包文件內HTPP請求和應答數),等等。
    ? 一般統計
    o Summary:捕捉文件摘要
    o Protocal Hierarchy: 捕捉包的層次結構
    o Endpoints 例如:通訊發起,終止方的ip地址
    o Conversations 例如:兩個指定IP之間的通信
    o IO Graphs 包數目隨時間變化的曲線圖。
    ? 指定協議統計
    o Service Response Time 從發起請求到相應請求的服務間隔時間。
    o Various other 協議特有的統計
    注意
    協議特定的統計,需要有特定協議的細節了解。除非你對那個協議非常熟悉,統計結果不是那么那么容易理解的。
    8.2. 摘要窗口
    當前捕捉文件的一般信息
    圖 8.1. “Summary” 窗口

    File
    捕捉文件的一般的信息
    Time
    第一個包和最后一個包的時間戳
    Capture
    包捕捉完成時的一些信息(僅當包數據已經從網絡捕捉,還沒有從文件載入)
    Display
    與顯示有關的信息
    Traffic
    網絡傳輸的相關統計,如果設置了顯示過濾,你會看到兩列。Captured列顯示過濾前的信息,Displayed列顯示過濾后對應的信息。
    8.3. "Protocol Hierarchy"窗口
    顯示捕捉包的分層信息
    圖 8.2. “Protocol Hierarchy” 窗口

    這個窗口現實的是捕捉文件包含的所有協議的樹狀分支。你可以展開或折疊分支,通過點擊+/-圖標。默認情況下,所有分支都是展開的。
    每行包含一個協議層次的統計值
    每列代表的意思
    Protocol
    協議名稱
    %Packets
    含有該協議的包數目在捕捉文件所有包所占的比例
    Packet
    含有該協議的包的數目
    Bytes
    含有該協議的字符數
    MBit/s
    該協議的帶寬,相對捕捉時間
    End Packets
    End Bytes
    End MBit/s
    注意
    包通常會包含許多協議,有很多協議會在每個包中被統計。例如:截屏中包括99.17%的IP,85.83%的TCP協議(它們的和超過了100%)
    注意
    包的協議組成部分可以不包含高層協議,高層協議包統計百分比和可能并不等于100%,例如:截屏中TCP占85.83%,但是上層協議(HTTP…)卻比85%更少。這可能是因為TCP協議,例如:TCP ACK 包不會被統計到高層協議。
    注意
    一個單獨的包可以包含相同的協議不止一次,這種情況下,協議會被計數超過一次。例如某些通道配置的協議,IP層會出現兩次。(通道封裝的內容包括ip層,傳輸時將封裝過在用IP封裝一次)
    8.4. “Endpoints”
    端點不著的統計
    提示
    如果在其他網絡工具工具中看到被稱為Hostlist/主機列表的東西,在這里就是Endpoint了。
    8.4.1. 什么是Endpoint?
    一個網絡端點是在特定的協議層的通信的邏輯端點。Wireshark端點統計會將列出下列端點:
    Ethernet
    以太網端點顯示的是以太網MAC地址
    Fibre Channel
    筆者未描述
    FDDI
    FDDI端點是FDDI MAC地址
    IPV4
    IP端點是IP地址
    IPX
    筆者未介紹
    TCP
    TCP端點由IP地址和TCP端口組成,同樣的IP地址加上不同的端口號,表示的是不同的TCP端點
    Token Ring
    Token Ring(令牌環)端點是Token Ring MAC地址
    UDP
    UDP端點是由IP地址和UDP端口組成,不同的UDP地址用同一個IP地址表示不同的UDP端點
    Broadcast / multicast endpoints(廣播/多播端點)
    廣播/多播通信會用額外的端點單獨顯示。當然,這些端點都是虛擬端點,真實的通信會被所有(多播的一部分)列出的單播端點接收。
    8.4.2. "Endpoints"窗口
    該窗口顯示端點捕捉的統計信息
    圖 8.3. "Endpoints"窗口

    在該窗口中,每個支持的協議,都顯示為一個選項卡。選項標簽顯示被捕捉端點數目(例如:“Ethernet :5"表示有5個ethenet 端點被捕捉到)。如果某個協議沒有端點被捕捉到,選項標簽顯示為灰色(盡管可以查看選項卡對應的頁面).
    列表中每行顯示單個端點的統計信息。
    Name resolution 如果選中該選項,將會對指定的協議層進行名字解析(當前選中的Ethernet endpoint 頁面是MAC層)。你可能注意到,第一行將前三個字節解析為"Netgear”,第二行地址被解析為IP地址(通過arp協議解析),第三行解析為廣播地址(未解析時mac地址為:ff:ff:ff:ff:ff:ff),最后兩行的MAC地址未被解析。
    提示
    該窗口可能會頻繁那更新內容,在你進行實時捕捉之前打開了它(或者在這期間打開了它),也依然有用。
    8.4.3. 特定協議的"Endpoint List"窗口
    Before the combined window described above was available, each of its pages were shown as separate windows. Even though the combined window is much more convenient to use, these separate windows are still available. The main reason is, they might process faster for very large capture files. However, as the functionality is exactly the same as in the combined window, they won’t be discussed in detail here.
    8.5. 會話/conversations
    已經捕捉的會話統計
    8.5.1. 什么是會話/conversation?
    一個網絡會話,指的是兩個特定端點之間發生的通信。例如,一個IP會話是兩個IP地址間的所有通信。
    8.5.2. “Conversations/會話” window
    除了列表內容之外,會話窗口和端點窗口基本一樣,見第 8.4.2 節 “"Endpoints"窗口”
    圖 8.4. "Conversations"對話框

    8.5.3. 協議指定“Conversation List/會話列表”窗口
    Before the combined window described above was available, each of its pages were shown as separate windows. Even though the combined window is much more convenient to use, these separate windows are still available. The main reason is, they might process faster for very large capture files. However, as the functionality is exactly the same as in the combined window, they won’t be discussed in detail here.
    8.6. "IO Graphs"窗口
    用戶可配置的捕捉網絡數據圖形。
    你可以設置五種不同顏色的圖形
    圖 8.5. “IO Graphs” 窗口

    用戶可以對一下內容進行設置。
    Graphs
    ? Graph 1-5: 開啟1-5圖表(默認僅開啟graph 1)
    ? Color: 圖表的顏色(不可修改)
    ? Filter:指定顯示過濾器(only the packets that pass this filter will be taken into account for that graph)
    ? Style:圖表樣式(Line/Impulse/FBar)
    X Axis
    ? Tick interval 設置X軸的每格代表的時間(10/1/0.1/0.01/0.001 seconds))
    ? Pixels per tick 設置X軸每格占用像素 10/5/2/1 px
    Y Axis
    ? Unit y軸的單位(Packets/Tick, Bytes/Tick, Bits/Tick, Advanced…)
    ? Ssale Y軸單位的刻度(10,20,50,100,200,500,…)
    XXX - describe the Advanced feature.
    8.7. 服務相應時間
    服務響應時間是發送請求到產生應答之間的時間間隔。響應時間在很多協議中可用。
    服務相應時間統計,在以下協議中可用
    ? DCE-RPC
    ? Fibre Channel
    ? H.225 RAS
    ? LDAP
    ? MGCP
    ? ONC-RPC
    ? SMB
    后面將會以DCE-RPC為例介紹響應時間。
    注意
    其他服務相應時間在Windows平臺下都是相同的處理方法(或者僅僅輕微不同)
    8.7.1. "Service Response Time DCE-RPC"窗口
    DCE-RPC的服務相應時間是在請求發起到相應請求的時間間隔
    圖 8.6. "Compute DCE-RPC statistics"窗口

    你可以設置顯示過濾,減少用于統計的包的數量
    圖 8.7. The “DCE-RPC Statistic for …” 窗口

    Each row corresponds to a method of the interface selected (so the EPM interface in version 3 has 7 methods). For each method the number of calls, and the statistics of the SRT time is calculated.
    8.8. 協議指定統計窗口
    The protocol specific statistics windows display detailed information of specific protocols and might be described in a later version of this document. Some of these statistics are described at the http://wiki.wireshark.org/Statistics pages.
    ?
    第 9 章 個性化Wireshark
    寫在前面
    本章自9.6節起的內容在譯者的0.99.5版Wireshark中都未曾見到對應的功能。
    9.1. 說明
    Wireshark默認行為通常可以很好地吻合你的習慣,當你十分熟悉Wireshark的時候,你可以對Wireshark進行個性化設置以更好地適合你的需要。在本章我們將介紹:
    ? 如何從命令啟動Wireshark
    ? 如何將包列表色值化(以顏色區分不同的包)
    ? 如何控制包解析
    ? 如何使用多種多樣的首選項設置
    9.2. 從命令行啟動Wireshark
    Wireshark支持從命令行啟動,同樣也可以從大多數窗口管理軟件啟動。這節我們看看如何從命令行啟動。
    Wireshark支持豐富的命令行參數。要想看看都有那些參數,在命令行鍵入Wireshark -h就會顯示幫助信息(以及其他相關的)。詳細參數列表見例 9.1 “Wireshark幫助信息”
    例 9.1. Wireshark幫助信息
    Version 0.99.0
    Copyright 1998-2006 Gerald Combs gerald@wireshark.org and contributors.

    Compiled with GTK+ 2.6.9, with GLib 2.6.6, with WinPcap (version unknown),
    with libz 1.2.3, with libpcre 6.4, with Net-SNMP 5.2.2, with ADNS, with Lua 5.1.

    Running with WinPcap version 3.1 (packet.dll version 3, 1, 0, 27), based on
    libpcap version 0.9[.x] on Windows XP Service Pack 2, build 2600.

    wireshark [ -vh ] [ -DklLnpQS ] [ -a ] …
    [ -b ] …
    [ -B ]
    [ -c ] [ -f ]
    [ -g ] [ -i ] [ -m ]
    [ -N ] [ -o <preference/recent setting> ] …
    [ -r ] [ -R <read (display) filter> ] [ -s ]
    [ -t ] [ -w ] [ -y ]
    [ -X ] [ -z ] [ ]

    我們隨后將對每個選項進行介紹
    首先需要注意的是,Wireshark命令會啟動Wireshark。不管怎樣,你可以在啟動時追加許多參數(如果你喜歡)。他們的作用如下(按字母順序):
    筆者注:按字母順序是不是一個好主意?按任務順序會不會更好點?
    -a
    設置一個標準用來指定Wireshark什么時候停止捕捉文件。標準的格式為 test:value,test值為下面中的一個。
    duration:value
    當捕捉持續描述超過Value值,停止寫入捕捉文件。
    filesize:value
    當捕捉文件大小達到Value值kilobytes(kilobytes表示1000bytes,而不是1024 bytes),停止寫入捕捉文件。如果該選項和-b選項同時使用,Wireshark在達到指定文件大小時會停止寫入當前捕捉文件,并切換到下一個文件。
    files:value
    當文件數達到Value值時停止寫入捕捉文件
    -b
    如果指定捕捉文件最大尺寸,因為Wireshark運行在"ring buffer"模式,被指定了文件數。在"ring buffer"模式下,Wireshark 會寫到多個捕捉文件。它們的名字由文件數和創建日期,時間決定。
    當第一個捕捉文件被寫滿,Wireshark會跳轉到下一個文件寫入,直到寫滿最后一個文件,此時Wireshark會丟棄第一個文件的數據(除非將files設置為0,如果設置為0,將沒有文件數限制),將數據寫入該文件。
    如果duration選項被指定,當捕捉持續時間達到指定值的秒數,Wireshark同樣會切換到下個文件,即使文件未被寫滿。
    duration:value
    當捕捉持續描述超過Value值,即使文件未被寫滿,也會切換到下個文件繼續寫入。
    filesize:value
    當文件大小達到value值kilobytes時(kelobyte表示1000bytes,而不是1024bytes),切換到下一個文件。
    files:value
    當文件數達到value值時,從第一個文件重新開始寫入。
    -B <capture buffer size (Win32 only)>
    僅適合Win32:設置文件緩沖大小(單位是MB,默認是1MB).被捕捉驅動用來緩沖包數據,直到達到緩沖大小才寫入磁盤。如果捕捉時碰到丟包現象,可以嘗試增大它的大小。
    -c
    實時捕捉中指定捕捉包的最大數目,它通常在連接詞-k選項中使用。
    -D
    打印可以被Wireshark用于捕捉的接口列表。每個接口都有一個編號和名稱(可能緊跟在接口描述之后?)會被打印,接口名或接口編號可以提供給-i參數來指定進行捕捉的接口(這里打印應該是說在屏幕上打印)。
    在那些沒有命令可以顯示列表的平臺(例如Windows,或者缺少ifconfig -a命令的UNIX平臺)這個命令很有用;接口編號在Windows 2000及后續平臺的接口名稱通常是一些復雜字符串,這時使用接口編號會更方便點。
    注意,“可以被Wireshark用于捕捉"意思是說:Wireshark可以打開那個設備進行實時捕捉;如果在你的平臺進行網絡捕捉需要使用有特殊權限的帳號(例如root,Windows下的Administrators組),在沒有這些權限的賬戶下添加-D不會顯示任何接口。參數
    -f
    設置捕捉時的內置過濾表達式
    -g
    在使用-r參數讀取捕捉文件以后,使用該參數跳轉到指定編號的包。
    -h
    -h選項請求Wireshark打印該版本的命令使用方法(前面顯示的),然后退出。
    -i
    設置用于進行捕捉的接口或管道。
    網絡接口名稱必須匹配Wireshark -D中的一個;也可以使用Wireshark -D顯示的編號,如果你使用UNIX,netstat -i或者ifconfig -a獲得的接口名也可以被使用。但不是所有的UNIX平臺都支持-a,ifconfig參數。
    如果未指定參數,Wireshark會搜索接口列表,選擇第一個非環回接口進行捕捉,如果沒有非環回接口,會選擇第一個環回接口。如果沒有接口,wireshark會報告錯誤,不執行捕捉操作。
    管道名即可以是FIFO(已命名管道),也可以使用”-"讀取標準輸入。從管道讀取的數據必須是標準的libpcap格式。
    -k
    -k選項指定Wireshark立即開始捕捉。這個選項需要和-i參數配合使用來指定捕捉產生在哪個接口的包。
    -l
    打開自動滾屏選項,在捕捉時有新數據進入,會自動翻動"Packet list"面板(同-S參數一樣)。
    -m
    設置顯示時的字體(編者認為應該添加字體范例)
    -n
    顯示網絡對象名字解析(例如TCP,UDP端口名,主機名)。
    -N
    對特定類型的地址和端口號打開名字解析功能;該參數是一個字符串,使用m可以開啟MAC地址解析,n開啟網絡地址解析,t開啟傳輸層端口號解析。這些字符串在-n和-N參數同時存在時優先級高于-n,字母C開啟同時(異步)DNS查詢。
    -o <preference/recent settings>
    設置首選項或當前值,覆蓋默認值或其他從Preference/recent file讀取的參數、文件。該參數的值是一個字符串,形式為 prefname:value,prefnmae是首選項的選項名稱(出現在preference/recent file上的名稱)。value是首選項參數對應的值。多個-o 可以使用在單獨命中中。
    設置單獨首選項的例子:
    wireshark -o mgcp.display_dissect_tree:TRUE
    設置多個首選項參數的例子:
    wireshark -o mgcp.display_dissect_tree:TRUE -o mgcp.udp.callagent_port:2627
    提示
    在???可以看到所有可用的首選項列表。
    -p
    不將接口設置為雜收模式。注意可能因為某些原因依然出于雜收模式;這樣,-p不能確定接口是否僅捕捉自己發送或接受的包以及到該地址的廣播包,多播包
    -Q
    禁止Wireshark在捕捉完成時退出。它可以和-c選項一起使用。他們必須在出現在-i -w連接詞中。
    -r
    指定要讀取顯示的文件名。捕捉文件必須是Wireshark支持的格式。
    -R <read(display) filter>
    指定在文件讀取后應用的過濾。過濾語法使用的是顯示過濾的語法,參見第 6.3 節 “瀏覽時過濾包”,不匹配的包不會被顯示。
    -s
    設置捕捉包時的快照長度。Wireshark屆時僅捕捉每個包字節的數據。
    -S
    Wireshark在捕捉數據后立即顯示它們,通過在一個進程捕捉數據,另一個進程顯示數據。這和捕捉選項對話框中的"Update list of packets in real time/實時顯示數據"功能相同。
    -t
    設置顯示時間戳格式。可用的格式有
    ? r 相對的,設置所有包時間戳顯示為相對于第一個包的時間。
    ? a absolute,設置所有包顯示為絕對時間。
    ? ad 絕對日期,設置所有包顯示為絕對日期時間。
    ? d delta 設置時間戳顯示為相對于前一個包的時間
    ? e epoch 設置時間戳顯示為從epoch起的妙數(1970年1月1日 00:00:00起)
    -v
    請求Wireshark打印出版本信息,然后退出
    -w
    在保存文件時以savefile所填的字符為文件名。
    -y
    如果捕捉時帶有-k參數,-y將指定捕捉包中數據鏈接類型。The values reported by -L are the values that can be used.
    -X
    設置一個選項傳送給TShark 模塊。eXtension 選項使用extension_key:值形式,extension_key:可以是:
    lua_script:lua_script_filename,它告訴Wireshark載入指定的腳本。默認腳本是Lua scripts.
    -z
    得到Wireshark的多種類型的統計信息,顯示結果在實時更新的窗口。筆者注:在此處增加更多的細節
    9.3. 包色彩顯示設置
    Packet colorization(按色彩顯示包)是Wireshark一個非常有用的特性。你可以設置Wireshark通過過濾器將包按顏色設置??梢詫⒛愀信d趣的包通過顏色強調顯示。
    提示
    你可以在http://wiki.wireshark.org/ColoringRules的Wireshark Wiki Coloring Rules page找到顏色規則的舉例。
    想要按色彩顯示包,選擇View菜單的“Coloring Rules…”菜單項,將會彈出"Coloring Rules"對話框,如圖 9.1 “"Coloring Rules"對話框”所示
    圖 9.1. "Coloring Rules"對話框

    啟動Coloring Rules 對話框以后,有許多按鈕可以使用,當然這取決于是否已經裝入顏色過濾器(碰到once sth,you have a lot of 之類的句子就覺得特別tmd的惡心。)
    注意
    在對色彩規則進行排序(然后運用時)需要注意:他們是按自上而下的順序應用的。因此,特定的協議應該排在一般的協議的前面(高層協議應該排在底層協議之前)。例如:如果你將UDP協議排在DNS之前,那么DNS顏色規則就不會被應用(因為DNS使用UDP協議,UDP色彩規則首先被匹配。譯者注:這里有點像netscreen防火墻規則,從上而下匹配,匹配了第一個規則以后就不會詢問后續規則了。)
    如果你第一次使用色彩規則,點擊“NEW”按鈕打開色彩過濾編輯對話框,如???所示:
    圖 9.2. “Edit Color Filter”

    在編輯色彩對話框,輸入顏色過濾器名稱,然后在String輸入框輸入過濾字符串。???顯示的是arp,arp表示過濾器名為arp,string填的arp表示選擇的協議類型是arp。輸入這些值以后,你可以選擇前景色和配景色匹配這個過濾表達式。點擊 Foreground color… /前景色或者Background color…/背景色按鈕就會彈出Choose foreground/background color for protocol對話框(見圖 9.3 “"Choose color"對話框”),進行前景色、背景色設置了。
    圖 9.3. "Choose color"對話框

    選擇你需要的顏色,點擊OK
    注意
    You must select a color in the colorbar next to the colorwheel to load values into the RGB values. Alternatively, you can set the values to select the color you want.
    圖 9.4 “在Wireshark中使用色彩過濾”顯示了默認情況下使用多個色彩過濾器的例子。如果你不太喜歡的話,可以自己隨時修改它。
    如果你不確定哪個顏色規則會對特定包發生作用,查看[Coloring Rule Name: …] and [Coloring Rule String: …] 字段。
    圖 9.4. 在Wireshark中使用色彩過濾

    9.4. 設置協議解碼
    用戶可以協議如何被解碼。[20]
    每個協議都有自己的解碼器,因此包可能需要使用多個解碼器才能完成解碼。wireshark會嘗試為每個包嘗試找到正確的解碼器(使用靜態"routes"和結構"guessing"),特定的情況有可能會選擇錯誤的解碼器。例如,如果你將一個常見協議使用用一個不常見的TCP端口,Wireshark將無法識別它,例如:HTTP協議使用800端口而不是標準80端口。
    有兩種方式可以控制協議和解碼器關聯:完全禁止協議解碼器,或者臨時調用解碼器。
    9.4.1. "Enable Protocols"對話框
    Eable Protocols對話框可以enable、disable特定的協議,默認情況下是所有協議都enable。如果某個協議被disabled,Wireshark在碰到這個協議時會略過不處理。
    注意
    禁止某個協議解碼會阻止依附該協議的更高層協議顯示。例如,假定你禁止了IP協議,選擇某個包含Ethernet,IP,TCP和HTTP信息的包。將只會顯示以太網信息,IP協議不會顯示,基于IP協議的TCP,HTTP協議信息也不會顯示。
    圖 9.5. "Enabled Protocols"對話框

    通過點擊復選框,或者在協議高亮選中時按空格鍵可以切換協議enable/disable狀態。
    警告
    必須通過Save按鈕保存設置,OK,Apply按鈕不會保存設置,關閉Wireshark以后就會丟失設置。
    按鈕功能介紹

  • Enable All 允許列表中所有協議
  • Disable All 禁止列表中所有協議
  • Invert 切換列表中所有協議的enable/disable狀態
  • OK 應用當前修改,關閉對話框
  • Apply 應用修改,不關閉對話框
  • Save 保存當前設置
  • Cancel 取消修改,退出對話框
    9.4.2. 用戶指定解碼器
    在"packet list"面板,選中包,“Decode As”,打開Decode As對話框,可以臨時設置解碼器。在協議不使用常見端口時會有所幫助。
    圖 9.6. “Decode As” 對話框
  • 對話框的內容取決于當前選擇包的信息。
    警告
    用戶指定解碼器不能保存。退出Wireshark以后,這些設置會丟失

  • Decode 使用選擇的方式解碼。

  • Do not decode 不要用選定方式解碼。

  • Link/Network/Transport 指定使用那個解碼器對各網絡層進行解碼。三個頁面中哪個頁面可用取決于被選擇包的內容。

  • Show Current 打開一個對話框顯示當前用戶已經指定的解碼器列表。

  • OK 應用當前選定的解碼器,關閉對話框。

  • Apply 應用當前選定的解碼器,保持對話框打開

  • Cancel 取消修改,關閉對話框。
    9.4.3. 顯示用戶指定解碼器
    下面對話框顯示了當前用戶指定的解碼器
    圖 9.7. “Decode As: Show” 對話框

  • OK 關閉對話框

  • Clear 移除所有解碼器
    9.5. 首選項
    Wireshark的許多參數可以進行設置。選擇"Edit"菜單的"Preferences…"項,打開Preferences對話框即可進行設置。如???所示:默認"User interface"是第一個頁面。點擊左側的樹狀列表中的項目可以打開對應的頁面。
    注意
    參數設置會頻繁追加。想了解關于參數設置的最新介紹,請參考Wireshark Wiki Preferences 頁:http://wiki.wireshark.org/Preferences.

    警告
    OK和Apply按鈕不會保存設置,你必須點擊Save按鈕保存設置。
    ? OK 應用參數設置,關閉對話框
    ? Apply 應用參數設置,不關閉對話框
    ? Save 應用參數設置,保存參數設置到硬盤,并且保持對話框打開
    ? Cancel 重置所有參數設置到最后一次保存狀態。
    圖 9.8. preferences對話框

  • 9.6. 用戶表表[21]
    用戶表編輯器是用來管理各種用戶自定義參數表。它的主對話框操作方式類似于第 9.3 節 “包色彩顯示設置”
    9.7. 創建過濾宏
    Display Filter Macros是用來創建復雜顯示過濾器的快捷方式的工具,例如:定義一個顯示過濾宏,名稱為tcp_conv 文本為 ( (ip.src == $1and ip.dst == $2 and tcp.srcpt == $3 and tcp.dstpt == $4) or (ip.src == $2and ip.dst == $1 and tcp.srcpt == $4 and tcp.dstpt == 3)),以后你就可以使用3) ),以后你就可以使用3))使{tcp_conv:10.1.1.2;10.1.1.3;1200;1400} 替代整個過濾字符串。
    顯示過濾宏可以通過第 9.6 節 “用戶表表”,選擇Display Filter Macros 菜單下的View菜單進行管理。用戶表有下面兩個字段。(好像沒有所謂的User table)
    name
    宏的名稱
    text
    宏的替代文本。使用$1,$2,$3…作為輸入參數時。
    過濾宏的使用說明(譯者注)
    首先需要說明的是,實際上在Windows平臺GTK2環境下,并沒有看到有顯示過濾宏功能,可能有的原因有3種:1、0.99.5版本根本沒有過濾宏功能;2、我視力不好,沒看到,如果是這樣,希望誰能幫我找找。3、Windows+GTK2下面沒有,其他平臺有。
    這里暫且不管有沒有,我先按我的理解介紹一下宏的創建使用方法。
    以筆者提到的宏的例子,先說如何創建宏

  • 定義宏的名稱,如范例中的tcp_conv
  • 定義宏的文本部分,顯示過濾宏內容其實和顯示過濾器結構上沒有本質區別,只是將具體的值換成了參數。,比如例題中第一部分是ip.src == $1and ip.dst == $2 and tcp.srcpt == $3 and tcp.dstpt == $4,這里的$1,$2,$3,$4,如果在顯示過濾器中,應該是具體的ip地址和端口號,在這里使用了$1,$2,$3,$4,是作為參數。就像定義函數的參數一樣,供調用宏時傳遞參數用的。
  • 如何使用宏:如例中所示,需要在顯示過濾框輸入或在過濾表達式編輯器中應用宏,輸入宏的格式是宏名稱:參數1;參數2;參數3;....,參數就是定義宏時的參數的傳入值,如例中的{宏名稱:參數1;參數2;參數3;....},參數就是定義宏時的參數的傳入值,如例中的:1;2;3;....{tcp_conv:10.1.1.2;10.1.1.3;1200;1400},tcp_conv是宏名稱,10.1.1.2是$1的取值,其他類推。
    再次聲明,我裝的Wireshark并沒有這個功能。希望你們碰到這個共能時能用上。
    9.8. Tektronics K12xx/15 RF5 協議表
    Tektronix’s K12xx/15 rf5文件格式使用helper files(*.stk)驗證指定接口的各種協議。Wireshark不能讀取stk文件,它使用一個表來識別底層協議。(這句沒整明白)
    Stk文件協議匹配通過第 9.6 節 “用戶表表”來設置,它有兩列:
    match
    a partial match for an stk filename, the first match wins, so if you have a specific case and a general one the specific one must appear first in the list
    protos
    This is the name of the encapsulating protocol (the lowest layer in the packet data) it can be either just the name of the protocol (e.g. mtp2, eth_witoutfcs, sscf-nni ) or the name of the encapsulation protocol and the “application” protocol over it separated by a colon (e.g sscop:sscf-nni, sscop:alcap, sscop:nbap, …)
    9.9. 用戶 DLTs 協議表
    當一個pcap文件使用用戶DLTs (147 to 162)表中的一個時 ,Wireshark使用這個表來識別每個DLT表使用哪個協議。
    通過第 9.6 節 “用戶表表”管理的DLT表有如下列:
    encap
    一個用戶dlts表
    payload_proto
    payload(包的最底層協議)協議名稱
    header_size
    如果有header協議(在payload之前),這個選項告訴Wireshark header的大小。設置為0的話,禁止header protocol.
    header_proto
    header協議的名稱(默認使用"data")
    trailer_size
    如果有trailer協議的話(追蹤協議,在paylod協議之后),告訴系統它的大小。設置為0表示禁止該協議。
    trailer_proto
    trailer協議的名稱(默認是"data")
    9.10. SNMP用戶表
    Wireshark使用SNMP表驗證SNMPv3包的授權并進行揭秘。
    該表通過第 9.6 節 “用戶表表”進行管理,它包括如下字段。
    engine_id
    如果輸入了engine id,會使用在那些engine id是這些值的包。該字段是一個16進制的字符串,值通常形式為:0102030405
    userName
    用戶名,當一個用戶名有多個密碼對應不同的SNMP-engines時,第一個匹配的將會被使用。if you need a catch all engine-id (empty) that entry should be the last one.
    驗證模式
    使用什么驗證模式,(MD5或者SHA1)
    authPassword
    授權密碼,使用"\xDD"作為非打印字符。一個16進制密碼必須輸入為"\xDD"形式。例如:16進制密碼010203040506就必須輸入為’\x01\x02\x03\x04\x05\x06’.
    priv_proto
    使用的加密算法(DES或AES)
    privPassword
    私有密鑰,使用"\xDD"作為非打印字符。一個16進制密碼必須輸入為"\xDD"形式。例如:16進制密碼010203040506就必須輸入為’\x01\x02\x03\x04\x05\x06’.

  • [20] dissector:析像器,應用在光學領域,dissct 解剖,這里姑且把他們翻譯成解碼器,解碼,不過有decode,似乎當作解碼有點欠妥。
    [21] 找遍了Wireshark也沒看到User table編輯器,版本問題?

    總結

    以上是生活随笔為你收集整理的Wireshark使用教程用户手册的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。