Ethereal 用户手册

18094 for Ethereal 0.10.14

Ulf Lamping

 

Richard Sharpe

NS Computer Software and Services P/L

Ed Warnicke

 

允许基于GNU的标准对该文档进行复制、分发、或修改。包括版本2及由Free Software Foundation(免费软件基金会)发布的任何后续版本。

在该文档中的所有徽标及商标的所有权属于各自的所有者。

翻译者列表(说明:任何人可对该文档进行再翻译及修订,请按顺序留下姓名)

胡彼德   peterhu318@hotmail.com     2006.6.6 完整除附录以后的所有章节翻译,历时约一个月

 


目录

前言

1.

2. 谁适合看这篇文档?

3. 感谢

4. 关于这篇文档

5. 何处可以得到该文档的最新版本?

6. 提供关于该文档的反馈

1. 介绍

1.1. Ethereal是什么?

1.1.1. 该软件的特定功能

1.1.2. 软件特色

1.1.3. 从许多不同网络介质实时捕获a

1.1.4. 导入其它程序的捕获文件

1.1.5. 导出捕获的文件,以便其它捕获程序读取

1.1.6. 协议解码器

1.1.7. 开放源代码软件

1.1.8. Ethereal不能做什么

1.2. Ethereal的运行平台

1.2.1. Unix

1.2.2. Linux

1.2.3. Microsoft Windows

1.3. 从可处获得Ethereal?

1.4. A rose by any other name

1.5. Ethereal的开发历史

1.6. Ethereal的开发及维护

1.7. 报告问题及帮助

1.7.1. 网站

1.7.2. Wiki

1.7.3. 常见问题FAQ

1.7.4. 邮件讨论组

1.7.5. 报告问题

1.7.6. 报告UNIX/LINUX平台下的Crash情况(Crash:系统异常退出)

1.7.7. 报告WIN平台的Crash情况

2. 编译及安装

2.1. 介绍

2.2. 获得源代码及可执行代码

2.3. UNIX平台下编译之前需要做的工作

2.4. UNIX下编译

2.5. UNIX平台下安装已编译的

2.5.1. RedHat平台安装基于rpm的包

2.5.2. Debian下安装deb

2.6. UNIX平台下安装常见问题及解决办法

2.7. Windows平台下进行编译

2.8. Windows下安装

2.8.1. 安装Ethereal

2.8.2. 安装WinPcap

2.8.3. 更新Ethereal

2.8.4. 更新WinPcap

2.8.5. 卸载Ethereal

2.8.6. 卸载WinPcap

3. 用户界面

3.1. 介绍

3.2. 启动Ethereal

3.3. 主窗口

3.4. 菜单

3.5. File”(文件)菜单

3.6. Edit”(编辑)菜单

3.7. View”(查看)菜单

3.8. Go”菜单

3.9. Capture”(捕获)菜单

3.10. Analyze”(分析)菜单

3.11. Statistics”(统计)菜单

3.12. Help”(帮助)菜单

3.13. Main”(主)工具条

3.14. Filter”(过滤)工具条

3.15. Packet List”(包列表)面板

3.16. Packet Details”(包的详细信息)面板

3.17. Packet Bytes”(包的字节)面板

3.18. 状态栏

4. 捕获动态的网络数据包

4.1. 介绍

4.2. 首要条件

4.3. 开始捕获

4.4. Capture Interfaces”(捕获界面)对话窗

4.5. Capture Options”(选项)对话窗

4.5.1. Capture”(捕获)子窗口

4.5.2. Capture Files(s)”(捕获到文件)子窗口

4.5.3. Stop capture...”(停止捕获)子窗口

4.5.4. Display Options”(显示选项)子窗口

4.5.5. Name Resolution”(名称解析)子窗口

4.5.6. 按钮

4.6. 捕获到文件及文件保存的模式

4.7. 链路层头的类型

4.8. 捕获时进行过滤

4.9. 当进行捕获时… ...

4.9.1. 停止捕获

4.9.2. 重新开始捕获

5. 文件输入/输出及打印

5.1. 介绍

5.2. 打开捕获的文件

5.2.1. Open Capture File”(打开捕获文件)对话框

5.2.2. 输入文件格式

5.3. 保存捕获的包

5.3.1. Save Capture File As”(保存到)对话框

5.3.2. 输出文件格式

5.4. 合并捕获文件

5.4.1. Merge with Capture File”(合并捕获文件)对话框

5.5. 文件设置

5.5.1. List Files”(列出文件)对话框

5.6. 导出数据

5.6.1. Export as Plain Text File”(以纯文本方式导出)对话框

5.6.2. Export as PostScript File”(以PostScript格式导出)对话框

5.6.3. Export as CSV file”(以CSV格式导出)对话框

5.6.4. Export as PSML file”(以PSML格式导出)对话框

5.6.5. Export as PDML file”(以PDML格式导出)对话框

5.6.6. Export selected packet bytes”(导出选择的包字节)对话框

5.7. 打印包

5.7.1. Print”(打印)对话框

5.8. Packet Range”子窗口

5.9. Packet Format”子窗口

6. 使用捕获的包

6.1. 查看捕获的包

6.2. 过滤后查看

6.3. 建立显示过滤表达式

6.3.1. 显示过滤字段

6.3.2. 比较

6.3.3. 表达式组合

6.3.4. 一个常犯的错误

6.4. Filter Expression”(过滤表达式)对话框

6.5. 定义&保存过滤表达式

6.6. 查找包

6.6.1. Find Packet”(查找包)对话框

6.6.2. Find Next”(查找下一个)命令

6.6.3. Find Previous”(查找前一个)命令

6.7. 转到一个特定的包

6.7.1. Go Back”(回跳)命令

6.7.2. Go Forward”(前跳)命令

6.7.3. Go to Packet”(转到包)对话框

6.7.4. Go to Corresponding Packet”(转到相应的包)命令

6.7.5. Go to First Packet”(转到第一个包)命令

6.7.6. Go to Last Packet”(转到最后一个包)命令

6.8. 对包进行标记

6.9. 时间显示格式及参考时间

6.9.1. 包的参考时间

7. 进阶

7.1. 介绍

7.2. 跟随TCP数据流

7.2.1. Follow TCP Stream”(跟随TCP数据流)对话框

7.3. 时间戳

7.3.1. Ethereal内部时间格式

7.3.2. 捕获文件的格式

7.3.3. 精度

7.4. 时区

7.4.1. 正确设置计算机的时间!

7.4.2. Ethereal与时区

7.5. 包的重新封装

7.5.1. 什么是封装?

7.5.2. Ethereal如何处理

7.6. 名称解析

7.6.1. 名称解析的缺点

7.6.2. 以太网名称解析(MAC)

7.6.3. IP 名称解析(网络层)

7.6.4. IPX 名称解析(网络层)

7.6.5. TCP/UDP 端口名解析(传输层)

7.7. 校验和

7.7.1. Ethereal校验和确认

7.7.2. 校验和卸载

8. 统计

8.1. 介绍

8.2. 汇总窗口

8.3. 协议分层窗口

8.4. 端点

8.4.1. 什么是端点?

8.4.2. 端点窗口

8.4.3. 特定协议的端点列表窗口

8.5. 会话

8.5.1. 什么是会话?

8.5.2. 会话窗口

8.5.3. 特定协议的会话列表窗口

8.6. "IO图形"窗口

8.7. 服务响应时间

8.7.1. DCE-RPC服务响应时间窗口

8.8. 特定协议统计窗口

9. 定制Ethereal

9.1. 介绍

9.2. 从命令行启动Ethereal

9.3. 包的着色

9.4. 控制协议解码

9.4.1. "Enabled协议"对话框

9.4.2. 用户指定的解码器

9.4.3. 显示用户指定的解码器

9.5. 参数设置

A. Configuration (and other) Files and Folders

A.1. Windows folders

A.1.1. Windows profiles

A.1.2. Windows NT/2000/XP roaming profiles

A.1.3. Windows temporary folder

B. Protocols and Protocol Fields

C. Ethereal Messages

C.1. Packet List Messages

C.1.1. [Malformed Packet]

C.1.2. [Packet size limited during capture]

C.2. Packet Details Messages

C.2.1. [Response in frame: 123]

C.2.2. [Request in frame: 123]

C.2.3. [Time from request: 0.123 seconds]

D. Related command line tools

D.1. Introduction

D.2. tcpdump: Capturing with tcpdump for viewing with Ethereal

D.3. tethereal: Terminal-based Ethereal

D.4. capinfos: Print information about capture files

D.5. editcap: Edit capture files

D.6. mergecap: Merging multiple capture files into one

D.7. text2pcap: Converting ASCII hexdumps to network captures

D.8. idl2eth: Creating dissectors from Corba IDL files

D.8.1. What is it?

D.8.2. Why do this?

D.8.3. How to use idl2eth

D.8.4. TODO

D.8.5. Limitations

D.8.6. Notes

E. This Document's License (GPL)

前言Preface

1. 

Ethereal是一个许多网络管理员喜欢使用的软件,但是由于Ethereal的文档不是很丰富,网络管理员有时不能通过Ethereal得到他们想要的东西

这篇文档就是Ethereal小组为改进Ethereal的可用性所做的一点努力。

希望它对你有所帮助,并且期望能得到你的建议

2. 哪些人应该看该文档

任何使用Ethereal的人都可以是这本书的读者。

这本书介绍 Ehereal的所有基本内容及一些Ethereal提供的特别功能。由于Ethereal已经是一个非常复杂的综合的程序,因此并不是每一个优点都做了说明。.

这本书的目的不是解释网络嗅探,应此并不讲解协议的具体内容。与这些内容相关的信息可以通过下面的Ethereal Wiki这个网站获得,网址是:http://wiki.ethereal.com

通过读这本书,你将学到怎样安装Ethereal,怎么使用基本的图形元素以及一些高级特性。这本书对于Ethereal初学者解决常见的一些问题是非常有用的。

3. 感谢

作者感谢Ethereal小组的协助。另外,作者还要对下面的人说一声谢谢,他们是:

·         Gerald Combs, Ethereal项目的发起者,并且对该文档的制作进行了资助

·         Guy Harris, 提出了很多有用的建议,并且耐心的对该文档进行了大量的复核

·         Gilbert Ramirez, 给了我们很多鼓励和有用的建议

将感谢下面这些人为篇文档给出的反馈

·         Pat Eyler, 对改进建立反向跟踪的例子提供了很有用的建议

·         Martin Regner, 提供了他的一些建议并进行了一些修正

·         Graeme Hewson, 做了一些文法方面的修改

将感谢那些man页及readme文档的作者们,该文档加入了他们写的一些内容

·         Scott Renfro from whose mergecap man page Section D.6, “mergecap: Merging multiple capture files into one ” is derived.

·         Ashok Narayanan from whose text2pcap man page Section D.7, “text2pcap: Converting ASCII hexdumps to network captures ” is derived.

·         Frank Singleton from whose README.idl2eth Section D.8, “idl2eth: Creating dissectors from Corba IDL files ” is derived.

4. 关于该文档

这本书的发起者是Richard Sharpe [Peter:with funds provided from the Ethereal Fund.]  Ed Warnicke 进行了更新,最近进行的重新设计及更新是由Ulf Lamping完成的。

该文档是用DocBook/XML写的。

该书使用的一些特殊标记

[Warning]

这是一个警告!

你应该注意这个警告,否则可能会丢失数据

[Note]

这是一个注解!

注解将指出常见的错误及不是很明显的一些东西

 

[Tip]

这是一个提示!

它对你每天使用Ethereal进行工作是非常有帮助的.

5. 获取该方档的最新版本

可以从下面的地址获得该文档的最新版 本: http://www.ethereal.com/docs/#usersguide.

6. 提供对这篇文档的反馈

对该文档的任何反馈,请发E-mail给作者,邮箱是: ethereal-dev[AT]ethereal.com.

Chapter 1. 介绍

 

1.1. 什么是Ethereal?

Ethereal是一个网络包的分析仪。网络分析仪通常试着去捕获网络包,然后尽可能详细的显示出那个包所包含的数据。

你或许觉得网络分析仪就是一个测量仪,能够测量网络线缆里经过的数据。就是电工使用的伏特计,可以测试电缆里的电压。(当然,Ethereal在一个更高的层次上).

在过去,这样的工具即昂贵,又很少见到。但是随着Ethereal的出现,这一切被改变了

或许Ethereal是今天最好的基于开放源代码的网络包分析仪之一。

1.1.1几个常用功能

下面是使用Ethereal可以完成的几个工作:

·         网络管理员使用它去帮助解决网络问题

·         网络安全工程师用它去测试安全问题

·         开发人员用它是调试协议的实现过程

·         用它还可以帮助人员深入的学习网络协议

当然Ethereal在其它的一些方面也是非常有用的。

1.1.2特性

下面是Ethereal提供的一些特性:

·         支持UNIX 平台和 Windows平台。

·         从网络接口上捕获实时数据包

·         以非常详细的协议方式显示数据包

·         可以打开或者存贮捕获的数据包

·         导入/导出数据包,从/到其它的捕获程序

·         按多种方式过滤数据包

·         按多种方式查找数据包

·         根据过滤条件,以不同的颜色显示数据包

·         可以建立多种统计数据

·         ... 还有很多其它特性

但是,要想真正体验到Ethereal的强大功能,你必须亲自使用它。

 1.1, “ Ethereal捕获数据包并允许检查包的内容 显示了Ethereal已经捕获的数据包,并等待你去检查这些包的内容

 1.1.  Ethereal捕获数据包并允许检查包的内容

Ethereal captures packets and allows you to examine their content.

1.1.3在各种网络介质上进行实时捕获

Ethereal不象他的名字一样,只能对以太网数据进行捕获,他可以捕获许多非以太网数据。Ethereal支持的网络介质取决于许多因素,比如你的操作系统等。Ethereal支持的网络介质类型可以从以下网址得到: http://www.ethereal.com/media.html.

1.1.4导入其它程序的捕获文件

Ethereal能够打开许多程序捕获文件,支持的文件格式参见5.2.2,  输入文件格式.

1.1.5导出文件

Ethereal可以将捕获的数据包按照多种格式保存,以便其它厂家的捕获程序读取。Ethereal可支持的输出格式参见 5.3.2,  输出文件格式

1.1.6多种协议解码器

Ethereal可以对很多很多协议进行解码,具体列表可参见附录 B, 协议和协议字段.

1.1.7开放源代码软件

Ethereal是一个开放源代码软件工程,基于GPL发布。你可以在任何数量的计算机上免费使用,无须担心授权码及费用问题。另外,所有源代码也是免费的(遵守GPL),因此任何人可以追加新的协议到Ethereal里,可能通过插件形式,也可以通过源代码的方式,人们通常使用后者。

1.1.8. Ethereal不具备的功能

下面是Ethereal不具备的功能

·         Ethereal不是一个IDS(入侵检测系统),如果某些人在你的网络上做一些不允许的事情,Ethereal并不发出警告。但是,如果出现异常情况,Ethereal可以帮你查找出正在发生的问题

·         Ethereal不能改变网络上的任何事情,它只能监测。Ethereal不会向网络上发送任何包或者其它的活动(名字解析除外,但是这个功能是可以disable的)

1.2. 运行平台

Ethereal目前可以运行很多的UNIX平台及Windows平台。不过需要GTK+, GLib, libpcap及其它一些库文件的支持。

如果对于某个特定平台没有相应的可执行包,可以下载源码进行编译,你的经验可以发到下面的邮箱: ethereal-dev[AT]ethereal.com.

下面的平台已经有了相应的可执行包(Binary packages

1.2.1. Unix

·         Apple Mac OS X

·         BeOS

·         FreeBSD

·         HP-UX

·         IBM AIX

·         NetBSD

·         OpenBSD

·         SCO UnixWare/OpenUnix

·         SGI Irix

·         Sun Solaris/Intel

·         Sun Solaris/Sparc

·         Tru64 UNIX (formerly Digital UNIX)

1.2.2. Linux

·         Debian GNU/Linux

·         Gentoo Linux

·         IBM S/390 Linux (Red Hat)

·         Mandrake Linux

·         PLD Linux

·         Red Hat Linux

·         Rock Linux

·         Slackware Linux

·         Suse Linux

1.2.3. Microsoft Windows

支持的::

·         Windows Server 2003 / XP / 2000 / NT 4.0

·         Windows Me / 98

不支持的: (因为缺少相应的库文件):

·         Windows CE

·         Windows NT / XP Embedded

·         Windows 95 WinPcap不再支持及维护WIN95,但是可以工作

未知(新版本):

·         Windows XP 64-bit Edition

·         Windows Vista (aka Longhorn)

请提供关于新版本下运行Ethereal的经验至: ethereal-dev[AT]ethereal.com.

1.3. 获取Ethereal软件

Ethereal website: http://www.ethereal.com/download.html,可以从这儿获得Ethereal的最新版本。也可以从这个网站的镜象站点下载。

通常每4-8周,将会有一个新版本出现。

如果当有新版本出现时得到一个通知,你可以订阅Ethereal-annouce邮件列表。具体请参见1.7.4, “邮件列表.

1.4. A rose by any other name(不知怎么翻译)

William Shakespeare wrote: "A rose by any other name would smell as sweet." And so it is with Ethereal, as there appears to be two different ways that people pronounce the name.

有些人读作ether-real, 而有些人读作it e-the-real, [peter:因为它如此的可怕 原文:as in ghostly, insubstantial, etc. ]

你可以任何称呼它,FAQ给出的发音是"e-the-real".

1.5.  Ethereal的历史

1997年末, Gerald Combs需要一个工具来跟踪网络崩溃问题,并且想学习更多的网络知识,因此他开始写Ethereal软件。.

经过几次停滞,Ethereal19987月首次发布了,当时的版本是0.2.0. 几天内,补丁、bug报告,还有一些对这个软件表示赞赏的言论都开始出现了,Ethereal走上了成功之路。

不久之后,Gilbert Ramirez 看到了它存在的潜能,于是贡献了一个底层的解码器给Ethereal

199810Network Appliance公司的Guy Harris要找一个比tcpview好一点的工具,于是他开始对Ethereal提供patch及一些解码器。

1998年末, Richard Sharpe要教TCP/IP课程, 看到了Ethereal对其课程的帮助力,于是开始关注这个软件是否支持他需要的协议。当有不支持的协议时,他就将这些新的解码器加进去,还包括一些补丁。

Ethereal做出贡献的人的名单已经很长了,他们中几乎所有人都是因为他们需要一个协议而Ethereal当时无法持的情况下与Ethereal开始的,因此他们通常拷贝一个解码器,再把源码发回给Ethereal小组。

1.6.  开发&维护

Ethereal最初是由Gerald Combs开发的。现在Ethereal小组负继续的开发及维护工作。Ethereal小组是一个松散的小组,由于许多修复BUG及提供新功能的个人组成。

也有非常非常多的人提供协议解码器,希望这种情况能保持下去。通过点击“About Ethereal”对话框,你可以看到这些人的名单,或者在网站上的authors页面

Ethereal是一个开放源代码工程,它的发布是基于GNU General Public Licence (GPL). GPL下,所有源代码都是免费使用的。你可以修改Ethereal以适应自己的需求,同样欢迎你将自己的改进反馈给Ethereal 小组。

如果将你的改进反馈给小组,你能获得下面三点好处:

·         那些发现你的贡献对他们很有用的人会非常感激你,并且你会知你帮助了他们,就Ethereal的开发者帮助大家一样。

·         因为开发者一直进行软件的改进工作,或许他们能更好更多的改进你的建议。或者他们能在你的代码的出上再加一些好的东西,这对你自己也是有帮助的

·         维护及开发人员会很好的维护你的代码,当有API改变(或其它改变)时,他们会帮你修正,并保持最优化。因此,如果Ethereal更新了,你能在网站得到一个新版本,并且你的改进已经包含在新版本中了。

源代码及可执行套件在网站的下载页面: http://www.ethereal.com/download.html.

1.7. 报告问题及获得帮助

如果你有问题或需要帮助,下面这几个地方或许对你有用(当然也包括这本手册)

1.7.1网站

在网站会有很多有用的信息http://www.ethereal.com.

1.7.2. Wiki

The Ethereal Wiki at http://wiki.ethereal.com 提供了一个与Ethereal相关的更广泛的信息,包括包捕获内容。它提供了许多这本手册没有提供的内容,例如:怎样在一个交换的网络里进行捕获、正在进行的建立一个协议参考书的努力及其它等等

最好的是,如果你想分享你在某一方面的知识时(你最擅长的网络协议),你可以用浏览器很容易的去编辑wiki的页面

1.7.3. FAQ常见问题及回答

The "常见问题及回答 " 将列出常见的问题及对这些问题的正确回答

[Note]

FAQ!

在发送mail到下面的邮件列表之前,首先确认你已经看了FAQ,这将节省你和其它人的时间。(要知道很多人都订阅了邮件列表).

Ethereal里,通过点击Help/contents,然后选择FAQ,就能看到常见问题及回答

Ethereal的网站上,有一个在线版本: http://www.ethereal.com/faq.html. 这是一个HTML格式的,容易使用,而且是最新的。

1.7.4邮件列表

根据不同的题目,有下面几个邮件列表

ethereal-announce(译:ethereal发布)

这个列表列完成新版本的通知功能,通常 4-8周出现一次。

ethereal-users(译:用户)

这是针对Ethereal用户的邮件列表,人们可将在使用和编译Ethereal中遇到的问题发出来,其它人将会回答你的问题

ethereal-dev(译:开发)

这是开发者的一个邮件列表,如果你想开发一个协议解码器,你可以加入这个列表

可以通过网站订阅这些邮件列表http://www.ethereal.com,简单的选择页面左边的mailing lists 链接就可以。 The lists are archived at the Ethereal web site as well.

[Tip]

提示!

你可以通过搜索列表文档看是否有人问过相同的问题,或许已经有人回答,这样能节省时间

1.7.5报告问题

[Note]

注意!

在报告任何问题时,请首先确认你已经安装了最新版的Ethereal

在报告问题时,请提供下面的信息:

1.      Ethereal的版本号及与其关联的库,如GTK+等等。可以通过ethereal –v命令获得这些信息

2.      Ethereal运行的平台的信息

3.      详细描述你遇到的问题

4.      如果出现了错误或告警信息,记下这些信息(包括前面和后面的部分信息,如果有的话),这样就能发现在什么地方出问题了。不要告诉说“当我做X时,得到一个告警信息”

[Note]

不要发送大文件!

不要发送大文件到邮件列表(>100KB), 只需要说明你有可能需要的数据就行。大文件会让那些对你的问题不感 兴趣的人烦的。 如果可能,真能帮助你的人会向你要需要的数据的

[Warning]

不要送需要保密的信息!

在送捕获数据到邮件列时,请确认不要包含敏感或者保密的信息,比如密码。

1.7.6报告程序崩溃( Crashe),UNIX/Linux平台

当报告一个Crash错误时,最好提供一些可回溯信息(traceback (在“报告问题”之外的信息).

你可以通过下面的命令获得这些可回溯(traceback)信息:

 
$ gdb `whereis ethereal | cut -f2 -d: | cut -d' ' -f2` core >& bt.txt
backtrace
^D
$
 
               

[Note]

注意

逐字的打入第一行! Those are back-tics there!

[Note]

注意

backtrace 是一个gdb 命令。当第一行显示后,逐字的输入它,但是这个命令不回显任何信息,通过按^D (Control-D)可以退出gdb . 这样,会在当前目录下产生一个bt.txt文件。将这个文件包含在你的bug报告中。

 

[Note]

注意

如果你没有gdb 可用,你不得不是检查你的系统调试器

Traceback可以mailethereal-dev[AT]ethereal.com 邮件列表。

1.7.7报告Windows平台下的Crash问题

Windows版不包含符号文件 (.pdb),因为他们非常大。由于这个原因是不可能建立backtrace文件的。你只能报告其它问题一样报告crash情了。

Chapter 2. 创建和安装Ethereal

 

2.1. 介绍

任何事情都有开始一样,开始使用Ethereal之前,需要完成:

·         获取与您使用的操作系统相匹配的二进制包,或者

·         获得源代码自己创建Ethereal

目前,只有两三个Linux 发布版包括了Ethereal,而且通常都是较老的版本,其它UNIX版本都不带Ethereal。微软的Windows的任何版本也没有附带Ethereal,因此,你需要知道从何处去得到最新版本及如何安装

这一章将讲述如何获是源代码和二制制包,怎样从源代码去创建Ethereal。[peter:怎么译?should you choose to do so.

下面是通常的几个步取骤

1.      下载相应的包,比如源代码或发布的二进制包

2.      通过源文件创建二进制包

这步可能会调用创建或安装其它的一些必须的包

3.      安装二进制文件到最终目录。

2.2. 获取源代码和二进制发布包

源代码及二进制发布包可以从Ethereal网站获得http://www.ethereal.com.。选择download(下载)链接,然后选择源代码或二进制包,可以从离你最近的镜象站点下载。

[Note]

下载所有需要的文件!

如果准备从源代码创建Ethereal,你很可能需要下载几个源代码包,下面会有详细的说明.

一旦下载完了相关的文件,就可以进入下一步了

[Note]

注意!

While you will find a number of binary packages available on the Ethereal web site, you might not find one for your platform, and they often tend to be several versions behind the current released version, as they are contributed by people who have the platforms they are built for.

For this reason, you might want to pull down the source distribution and build it, as the process is relatively simple.

2.3. UNIX下创建Ethereal需要准备的工作

在创建、安装Ethereal之间,需要确认已经安装了下面的包:

·         GTK+, GIMP工具包

也需要Glib。它们都可以从www.gtk.org 获得。

·         libpcap, Ethereal使用的包捕获软件

可以从 www.tcpdump.org 获得

至于是通过RPM方式还是通过源代码创建这些包,这取决于你自己的系统。

如果已经下载了GTK+的源代码, 例子 2.1, 通过源代码创建GTK+ 或许对你创建包有所帮助

例子 2.1. 通过源代码创建GTK+

 
gzip -dc gtk+-1.2.10.tar.gz | tar xvf -
<much output removed>
cd gtk+-1.2.10
./configure
<输出省略>
make
<输出省略>
make install
<输出省略>
          

[Note]

注意!

 例子 2.1, 通过源代码创建 gtk+的版本号需要和你下载的GTK+包一致。tar xvf – 将显示需要改变成的目录的名字

[Note]

注意!

如果使用LINUXGNU tar 包,可以使用tar zxvf gtk+-1.2.10.tar.gz命令,用gunzip -c or gzcat 代替gzip -dc 在许多UNIX系统是可行的

 

[Note]

注意!

如果你在Windows下下载了gtk+ 或其它tar文件,可能会发现文件名为gtk+-1_2_8_tar.gz.

如果按照 例子 2.1, 通过源代码创建GTK+ 的步骤做时出现问题,请参考GTK+网站。

如果你下载了libpcap源代码, 例子 2.2, 创建和安装libpcap 的步骤将协助你创建它。另外,如果你的操作系统不支持tcpdump,你或许也想下载并安装它(从tcpdump 网站)[peter:搞不明白什么意思]

例子 2.2. 创建、安装 libpcap

 
gzip -dc libpcap-0.8.3.tar.Z | tar xvf -
<输出省略>
cd libpcap_0_8_3
./configure
<输出省略>
make
<输出省略>
make install
<输出省略>
make install-incl
<输出省略>
            

[Note]

注意!

你要改变的目录取决于你的版本,所有情况下 tar xvf – 将会显示被解包的目录

当安装include文件时 ,可能会得到一些错误提示, 例子 2.3, 安装bpcap include文件时遇到的一些错误

例子 2.3. 安装libpcap include文件时遇到的错误

 
/usr/local/include/pcap.h
/usr/bin/install -c -m 444 -o bin -g bin ./pcap-namedb.h \
/usr/local/include/pcap-namedb.h
/usr/bin/install -c -m 444 -o bin -g bin ./net/bpf.h \
/usr/local/include/net/bpf.h
/usr/bin/install: cannot create regular file \
`/usr/local/include/net/bpf.h': No such file or directory
make: *** [install-incl] Error 1
          

如果你遇到了上面的错误,只要简单的用下面的命令创建丢失的目录就可以了

 
mkdir /usr/local/include/net
        

然后返回到命令行重新make install-incl.

RedHat 6.x 或更新的版本下 (或者基于它发布的,比如Mandrake) ,可以容易的安装每一个你需要的rpm包。大多数Linux系统将安装GTK+Glib。但是你或许需要安装,however, you will probably need to install the devel versions of each of these packages. 例子 2.4, RedHat Linux 6.2及更新版本下安装所需的RPMs 给出全部需要的命令

例子 2.4.  RedHat Linux 6.2及更新版本下安装所需的RPMs

 
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
          

[Note]

注意

如果RedHat版本低于6.2 RPMs包的名字可能与上面的不一致,需要使用你的发布包里的正确的RPM

Debian下安装时可以使用apt-get apt-get能够帮助用户处理包之间的相关性问题。 例子 2.5, Debian下安装debs 给出了安装方法

例子 2.5. Debian下安装debs

 
apt-get install ethereal
          

2.4. UNIX下通过源代码创建Ethereal

UNIX操作系统下,通过源代码创建Ethereal,可以按以下步骤:Use the following general steps if you are building Ethereal from source under a UNIX operating system:

1.      解包。如果使用Linux或者GNU tar,可以使用下面的命令

tar zxvf ethereal-0.10.14-tar.gz
      

对于其它版本的UNIX,可以使用下面的命令

 
gzip -d ethereal-0.10.14-tar.gz
tar xvf ethereal-0.10.14-tar
      

[Note]

注意!

通常 gzip -dc ethereal-0.10.14-tar.gz | tar xvf – 这个命令组合可能更好用一些.

[Note]

注意!

如果在Windows下下载了Etherealtar包,文件名中的点可能会变成下划线.

2.      改变到Ethereal源文件目录

3.      配置源码,以便为你的UNIX版本正确创建。使用下面的命令完成配置源码的工作

 
./configure
      

如果这一步失败,需要查出问题,然后再重新configure。解决问题的一些提示列Section 2.6, 解决在UNIX下安装时的问题

4.      创建二进制文件,使用make 命令

 
make
      

5.      使用下面的命令进行软件的最终安装

 
make install
      

使用上面的make install 安装完成后,通过在命令行输入ethereal,就可以试着运行了。

2.5. UNIX下安装二进制文件包

通常,在UNIX下安装二进制包,每一个版本的UNIX是各不相同的。例如:在AIX下,使用smit 来安装Ethereal二进制包,而在Tru64 UNIX (formerly Digital UNIX)通常使用setld.

2.5.1RedHat(或相似版本)安装:通过rpm包安装

Ethereal站点下载相应的rpm包,然后使用下面的命令进行安装:

 
rpm -ivh ethereal-0.10.5-0.2.2.i386.rpm
      

如果因为丢失相关包而造成安装失败,那么需要首先安装Ethereal依赖的包,然后再重新试一下上面的步骤。例子 2.4, ReaHat 6.2及更新版本下安装所需的RPMs 中列出了需要安装的rpm包。

2.5.2Debian下安装deb

Debian下使用下面的命令安装Ethereal

 
apt-get install ethereal
      

apt-get 会自行解决包的依存关系问题

2.6. 解决在UNIX下安装时遇到的问题

在安装过程中会有一些错误出现,这里提供一此解决这些问题办法

如果configure 命令失败,需要找出原因,可以检查config.log 文件来查找为什么的败(该文件在源文件目录下),这个文件的后面几行可以帮助你定位问题。

一个常见的问题是没有GTK+或者GTK+的版本太老。如果没有libpcap也会造成configure 失败

另外一个常见问题发生在最后编译和链接(link)语句,通常会给出一个Output too long(输出太长)的提示信息。这种情况很可是由于sed的版本太旧造成的(比如Solaris自带的一个) 因为libtool 脚本使用 sed h去组织最后的链接命令,这就产生了这个怪问题。解决办法是去下载一个新版的 sed (从 http://directory.fsf.org/GNU/sed.html.

如果无法确定问题到底出在哪儿,就将遇到的问题发到ethereal-dev 邮件列表,并附上config.log的输出及你认为任何有关的内容

2.7. Windows下通过源代码创建Ethereal

除非想在Windows平台进行开发工作,否则建议安装二进制型的安装包。

Windows平台下怎么通过源代码创建Ethereal的补充资料请参见http://wiki.ethereal.com/Development ,里面包含着最新的开发文档。

2.8. Windows下安装Ethereal

在这一部分对Windows下安装可执行包做出说明。

2.8.1安装 Ethereal

下载的Ethereal的文件名通常是这样的格式ethereal-setup-x.y.z.exe.

可以从这个站点下载然后执行安装 http://www.ethereal.com/download.html#releases

[Note]

注意!

0.10.12以后,Ethereal都内置了WinPcap,因此不需要再单独去下载安装WinPcap!

2.8.1.1. 命令行选项

安装时,可以不加任何选项直接点击进行安装,这种情况下将以交互方式进行安装。

下面是一些可用的命令行参数:

·         /NCRC 放弃CRC 检查

·         /S 以安静方式安装或卸载,采用默认值。注意:这种方式将不安装WinPCap!

·         /desktopicon 桌面图标, =yes强制安装一个桌面图标, =no不安装桌面图标, 其它情况下采用默认的用户设置[peter:默认是什么呀?] 这个选项从0.10.13以后可以在安静(silent)方式下使用

·         /quicklaunchicon 快速启动栏图标安装, =yes强制安装 =no不安装, otherwise use defaults / user settings. 该选项从0.10.13 版开始可以在安静(silent)安装模式下使用

·         /D 设置默认的安装目录 ($INSTDIR), 覆盖InstallDirInstallDirRegKey。该参数必须放到命令的最后,且不能包含引号,即使是路径中有空格

例:

 
ethereal-setup-0.10.13.exe /NCRC /S /desktopicon=yes /quicklaunchicon=no /D=C:\Program Files\Foo
        

2.8.1.2. 安装内容

Beside the usual installer options like where to install the program, 有几个可选的安装内容:

[Tip]

提示!

如果不能确定选择哪些设置,就保留默认值

安装内容(Ethereal GTK12 不能被同时安装)

·         Etheral GTK1 - Ethereal 是一个GUI的网络协议分析仪

·         Etheral GTK2 - Ethereal 是一个GUI的网络协议分析仪(使用流行的GTK2 GUI 工具包,建议选该项)

·         GTK-Wimp - GTKWimp GTK2 windows下的模拟器(native Win32 look and feel, recommended).

·         Tethereal - Tethereal 是一个基于命令行的网络协议分析仪

EtherealTethereal用的扩展解码器

·         Dissector Plugins带有扩展解码器的插件

·         Tree Statistics Plugins带有扩展的统计能力的插件

·         Mate - Meta 分析和跟踪引擎- 用户可配置的显示过滤引擎,详细内容见http://wiki.ethereal.com/Mate

·         SNMP MIBs