注:原文资料有点老,但原理是一样的。文章有点长,markdown 上签费了不少时间。
第 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 运行时内存不足将会导致异常终止。可以在 http://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”)
- 网卡需求:
- 以太网:windows 支持的任何以太网卡都可以
- 无线局域网卡:见 MicroLogix support list, 不捕捉 802.11 包头和无数据桢。
- 其它接口见:http://wiki.wireshark.org/CaptureSetup/NetworkMedia
说明
- 基于以下三点原因,将不会对旧版 Windows 提供支持:没有任何开发人员正在使用那些操作系统, 这将使支持变得更加困难,Wireshark 运行所依赖的库文件(如 GTK,WinPCap 等)也放弃对它们的支持。 同样,微软也放弃了对它们的技术支持。
- Windows 95,98 和 ME 不能运行 Wireshark。已知的最后一个可以运行在以上平台的版本是 Ethereal 0.99.0 (需要安装 WinPCap3.1), 依然可以使用从: http://ethereal.com/download.html 获得。顺便提一下:微软于 2006 年 1 月 11 日停止对 98/ME 支持。
- Windows NT 4.0 今后将无法运行 Wireshark. 最有一个已知版本是 Wireshark 0.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 进行改进,并提供分析。
1998 年以后,正在进行 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 ,必须检查操作系统的调试器。 |
可以发送追踪邮件到 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 -1.
<much output removed>1.
./configure1.
<much output removed>1.
make install1.
<much output remove>1.
注意 | 可能需要修改例 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 -1.
<much output removed>1.
cd libpcap-0.9.41.
./configure1.
<much output removed>1.
make1.
<much output removed>1.
make install1.
<much output removed>1.
注意 |
---|
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/RPMS1.
rpm -ivh glib-1.2.6-3.i386.rpm1.
rpm -ivh glib-devel-1.2.6-3.i386.rpm1.
rpm -ivh gtk+-1.2.6-7.i386.rpm1.
rpm -ivh gtk+-devel-1.2.6-7.i386.rpm1.
rpm -ivh libpcap-0.4-19.i386.rpm1.
注意 | 如果使用 RedHat 6.2 之后的版本,需要的 RMPs 包可能已经变化。需要使用正确的 RMPs 包。 |
---|
在 Debian 下可以使用 apt-ge 命令。apt-get 将会为完成所有的操作。参见例 2.4 “在 Deban 下安装 Deb”
例 2.4. 在 Deban 下安装 Deb
apt-get install wireshark-dev1.
2.4 在 UNIX 下编译 Wireshark
如果在 Unix 操作系统下可以用如下步骤编译 Wireshark 源代码:
- 如果使用 Linux 则解压 gzip’d tar 文件,如果使用 UNIX,则解压 GUN tar 文件。对于 Linux 命令如下:
tar zxvf wireshark-0.99.5-tar.gz1.
对于 UNIX 版本,命令如下
gzip -d wireshark-0.99.5-tar.gz1.
tar xvf wireshark-0.99.5-tar1.
注意 | 使用管道命令行 gzip –dc Wireshark-0.99.5-tar.gz|tar xvf 同样可以 [9] |
---|---|
注意 | 如果在 Windows 中下载了 Wireshark, 会发现文件名中的那些点变成了下划线。 |
- 将当前目录设置成源文件的目录。
- 配置源文件以编译成适合 Unix 的版本。命令如下:
./configure1.
如果找个步骤提示错误,需要修正错误,然后重新 configure. 解决编译错误可以参考第 2.6 节 “解决 UNIX 下安装过程中的问题 ”
- 使用 make 命令将源文件编译成二进制包,例如:
make1.
- 安装编译好的二进制包到最终目标,使用如下命令:
make install1.
一旦使用 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.rpm1.
如果因为缺少 Wireshark 依赖的软件而导致安装错误,请先安装依赖的软件,然后再尝试安装。REDHAT 下依赖的软件请参考例 2.3 “在 RedHat Linux 6.2 或者基于该版本得发行版下安装需要的 RPM 包”
2.5.2. 在 Debian 环境下安装 Deb 包
使用下列命令在 Debian 下安装 Wireshark
apt-get install Wireshark1.
apt-get 会为完成所有的相关操作
2.5.3 在 Gentoo Linux 环境下安装 Portage
使用如下命令在 Gentoo Linux 下安装 wireshark 以及所有的需要的附加文件
USE="adns gtk ipv6 portaudio snmp ssl kerberos threads selinux" emerge wireshark1.
2.5.4 在 FreeBSD 环境下安装包
使用如下命令在 FreeBSD 下安装 Wireshark
pkg_add -r wireshark1.
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\Foo1.
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 |