第1章简介
目录
1.1。什么是Wireshark?
1.1.1。一些预期目的
1.1.2。特征
1.1.3。从许多不同的网络媒体进行实时捕获
1.1.4。从许多其他捕获程序导入文件
1.1.5。导出许多其他捕获程序的文件
1.1.6。许多协议解剖器
1.1.7。开源软件
1.1.8。Wireshark不是什么
1.2。系统要求
1.2.1。微软Windows
1.2.2。苹果系统
1.2.3。UNIX,Linux和BSD
1.3。从哪里获得Wireshark
1.4。Wireshark的简史
1.5。Wireshark的开发和维护
1.6。报告问题并获得帮助
1.6.1。网站
1.6.2。维基
1.6.3。问答网站
1.6.4。常问问题
1.6.5。邮件列表
1.6.6。报告问题
1.6.7。报告UNIX / Linux平台上的崩溃
1.6.8。报告Windows平台上的崩溃
1.1。什么是Wireshark?
Wireshark是网络数据包分析器。网络数据包分析器会尽可能详细地显示捕获的数据包数据。
您可以将网络数据包分析器视为一种用于检查网络电缆中发生的情况的测量设备,就像电工使用电压表来检查电缆中发生的情况一样(当然,更高级别)。
过去,此类工具要么非常昂贵,要么专有,要么两者兼而有之。但是,随着Wireshark的到来,情况发生了变化。Wireshark是免费提供的,是开源的,并且是当今最好的数据包分析器之一。
1.1.1。一些预期目的
人们使用Wireshark的原因如下:
- 网络管理员使用它来解决网络问题
- 网络安全工程师使用它来检查安全问题
- 质量检查工程师使用它来验证网络应用
- 开发人员使用它来调试协议实现
- 人们用它来学习网络协议内部
Wireshark在许多其他情况下也可能会有所帮助。
1.1.2。特征
以下是Wireshark提供的许多功能中的一些:
- 适用于UNIX和Windows。
- 从网络接口捕获实时数据包数据。
- 打开文件,其中包含使用tcpdump / WinDump,Wireshark和许多其他数据包捕获程序捕获的数据包数据。
- 从包含十六进制数据包数据转储的文本文件中导入数据包。
- 显示具有非常详细的协议信息的数据包。
- 保存捕获的数据包数据。
- 以多种捕获文件格式导出部分或全部数据包。
- 根据许多条件过滤数据包。
- 根据许多条件搜索数据包。
- 彩色化基于分组过滤器显示。
- 创建各种统计信息。
- …还有更多!
但是,要真正欣赏它的功能,您必须开始使用它。
图1.1,“ Wireshark捕获数据包并让您检查其内容。” 显示Wireshark捕获了一些数据包并等待您检查它们。
图1.1。Wireshark捕获数据包并允许您检查其内容。
正在上传…重新上传取消 转存失败重新上传取消 转存失败重新上传取消 |
1.1.3。从许多不同的网络媒体进行实时捕获
Wireshark可以捕获来自许多不同网络媒体类型的流量,包括以太网,无线LAN,蓝牙,USB等。受支持的特定媒体类型可能受多种因素的限制,包括您的硬件和操作系统。可以在https://wiki.wireshark.org/CaptureSetup/NetworkMedia中找到支持的媒体类型的概述 。
1.1.4。从许多其他捕获程序导入文件
Wireshark可以打开来自大量捕获程序的数据包捕获。有关输入格式的列表,请参见第5.2.2节“输入文件格式”。
1.1.5。导出许多其他捕获程序的文件
Wireshark可以以多种格式保存捕获的数据包,包括其他捕获程序使用的数据包。有关输出格式的列表,请参见第5.3.2节“输出文件格式”。
1.1.6。许多协议解剖器
有很多协议的协议解剖器(或解码器,在其他产品中也是如此):请参阅附录C,协议和协议字段。
1.1.7。开源软件
Wireshark是一个开源软件项目,根据 GNU通用公共许可证(GPL)发行。您可以在任意数量的计算机上自由使用Wireshark,而无需担心许可证密钥或费用之类的问题。此外,所有源代码都可以根据GPL免费获得。因此,人们很容易将新协议作为插件或内置到源代码中添加到Wireshark中,而他们经常这样做!
1.1.8。Wireshark不是什么
以下是Wireshark不提供的一些功能:
- Wireshark不是入侵检测系统。当某人在您的网络上做奇怪的事情时,它不会警告您不允许他/她这样做。但是,如果发生奇怪的事情,Wireshark可能会帮助您弄清实际情况。
- Wireshark不会操纵网络上的事物,而只会“测量”网络中的事物。Wireshark不会在网络上发送数据包或进行其他活动(域名解析除外,但可以禁用)。
1.2。系统要求
Wireshark所需的资源量取决于您的环境以及您正在分析的捕获文件的大小。对于不超过几百MB的中小型捕获文件,以下值应该是合适的。较大的捕获文件将需要更多的内存和磁盘空间。
繁忙的网络意味着大量捕获 | |
繁忙的网络会产生巨大的捕获文件。即使在100兆位的网络上进行捕获,也可以在短时间内产生数百兆的捕获数据。具有快速处理器,大量内存和磁盘空间的计算机始终是一个好主意。 |
如果Wireshark内存不足,它将崩溃。有关详细信息和解决方法,请参见 https://wiki.wireshark.org/KnownBugs/OutOfMemory。
尽管Wireshark使用单独的过程来捕获数据包,但数据包分析是单线程的,不会从多核系统中受益匪浅。
1.2.1。微软Windows
Wireshark应该支持仍在其扩展支持期内的任何Windows版本 。在撰写本文时,它包括Windows 10、8.1,Server 2019,Server 2016,Server 2012 R2和Server2012。它还要求满足以下条件:
- 通用C运行时。它包含在Windows 10和Windows Server 2019中,如果启用了Microsoft Windows Update,则会自动安装在早期版本中。否则,您必须安装 KB2999226或 KB3118401。
- 任何现代的64位AMD64 / x86-64或32位x86处理器。
- 500 MB可用RAM。较大的捕获文件需要更多的RAM。
- 500 MB可用磁盘空间。捕获文件需要额外的磁盘空间。
- 任何现代显示器。建议使用1280×1024或更高分辨率。Wireshark将使用HiDPI或Retina分辨率(如果可用)。超级用户会发现多个监视器很有用。
- 支持的网卡用于捕获
- 以太网。Windows支持的任何卡都可以使用。有关可能影响您的环境的问题,请参阅有关以太网捕获和 卸载的Wiki页面 。
- 802.11。请参阅Wireshark Wiki页面。如果没有特殊设备,捕获原始802.11信息可能很困难。
- 其他媒体。参见https://wiki.wireshark.org/CaptureSetup/NetworkMedia。
不再支持Microsoft扩展的生命周期支持范围之外的Windows的旧版本。由于我们无法控制的情况(例如我们依赖的第三方库)或仅在较新版本的Windows中才具有的必要功能(例如增强的安全性或内存管理),通常很难或不可能支持这些系统。
- Wireshark 3.2是最后一个正式支持Windows 7和Windows Server 2008 R2的分支。
- Wireshark 2.2是最后一个支持Windows Vista和Windows Server 2008(不含R2)的分支
- Wireshark 1.12是支持Windows Server 2003的最后一个发行分支。
- Wireshark 1.10是正式支持Windows XP的最后一个发行分支。
有关更多详细信息,请参见Wireshark发行生命周期页面。
1.2.2。苹果系统
Wireshark支持macOS 10.12及更高版本。与Windows相似,支持的macOS版本取决于第三方库和Apple的要求。
- Wireshark 2.6是支持Mac OS X 10.6和10.7和OS X 10.8至10.11的最后一个发行分支。
- Wireshark 2.0是最后一个在32位Intel上支持OS X的版本分支。
- Wireshark 1.8是在PowerPC上支持Mac OS X的最后一个发行分支。
系统要求应与上面列出的Windows规范相当。
1.2.3。UNIX,Linux和BSD
Wireshark可在大多数UNIX和类似UNIX的平台上运行,包括Linux和大多数BSD变体。系统要求应与上面列出的Windows规范相当。
二进制软件包可用于大多数Unices和Linux发行版,包括以下平台:
- 高山Linux
- 规范的Ubuntu
- Debian GNU / Linux
- FreeBSD
- Gentoo Linux
- HP-UX
- Mandriva Linux
- NetBSD
- OpenPKG
- Oracle Solaris
- 红帽企业Linux / CentOS / Fedora
如果二进制软件包不适合您的平台,则可以下载源代码并尝试构建它。请向wireshark-dev [AT] wireshark.org报告您的经验 。
1.3。从哪里获得Wireshark
您可以从Wireshark网站https://www.wireshark.org/download.html获得该程序的最新副本 。下载页面应自动突出显示适合您平台的下载,并将您定向到最近的镜像。Windows和macOS的官方安装程序由Wireshark Foundation签名。
新的Wireshark版本通常每个月或两个月可用。
如果您希望收到有关Wireshark新版本的通知,则应订阅wireshark-announce邮件列表。您可以在第1.6.5节“邮件列表”中找到更多详细信息 。
1.4。Wireshark的简史
1997年底,杰拉尔德·科姆斯(Gerald Combs)需要一种用于追踪网络问题的工具,并且想了解有关网络的更多信息,因此他开始编写Ethereal(Wireshark项目的原始名称)作为解决这两个问题的一种方式。
Ethereal最初是在1998年7月经过几次暂停开发后以0.2.0版发布的。几天之内,补丁,错误报告和鼓励之声开始出现,Ethereal即将走向成功。
不久之后,吉尔伯特·拉米雷斯(Gilbert Ramirez)看到了它的潜力,并为此做出了低层次的解剖。
1998年10月,Guy Harris在寻找比tcpview更好的东西,因此他开始应用补丁并为Ethereal贡献解剖器。
1998年底,正在提供TCP / IP课程的Richard Sharpe看到了它在此类课程中的潜力,并开始研究它是否支持他需要的协议。尽管那时还不很容易添加新协议。因此,他开始贡献解剖器和贡献补丁。
从那时起,为该项目做出贡献的人员名单就变得很长,几乎所有人都从需要Wireshark或尚未处理的协议开始。因此,他们复制了一个现有的解剖器,并将代码贡献给了团队。
2006年,该项目搬迁了房屋,并以新名称Wireshark重新出现。
经过十年的发展,Wireshark在2008年终于推出了1.0版。此版本是第一个被认为是完整的版本,仅实现了最少的功能。它的发布恰逢第一次名为Sharkfest的Wireshark开发人员和用户大会。
2015年,Wireshark 2.0发布,它具有新的用户界面。
1.5。Wireshark的开发和维护
Wireshark最初是由Gerald Combs开发的。Wireshark团队正在进行的开发和维护工作由Wireshark团队进行,Wireshark团队由一群松散的人组成,他们修复错误并提供新功能。
也有很多人为Wireshark贡献了协议解剖器,并且有望继续下去。您可以通过检查Wireshark的“关于”对话框或在Wireshark网站上的“ 作者”页面找到为Wireshark贡献代码的人员的列表 。
Wireshark是一个开源软件项目,根据 GNU通用公共许可(GPL)版本2发布。所有源代码都可以根据GPL免费获得。欢迎您修改Wireshark以适合您自己的需求,如果您将改进反馈给Wireshark团队,将不胜感激。
通过将您的改进贡献回社区,您可以获得三项好处:
- 其他对您的贡献有用的人会感谢他们,您会知道您以与Wireshark开发人员帮助您相同的方式帮助了人们。
- Wireshark的开发人员可以进一步改进您的更改或在代码之上实现其他功能,这也可能使您受益。
- Wireshark的维护者和开发人员将维护您的代码,在进行API更改或其他更改时将其修复,并且通常使其与Wireshark的情况保持一致。因此,(经常)更新Wireshark时,您可以从网站上获取新的Wireshark版本,并且无需任何额外努力即可包含您的更改。
Wireshark网站的下载页面上提供了适用于某些平台的Wireshark源代码和二进制工具包:https : //www.wireshark.org/download.html。
1.6。报告问题并获得帮助
如果您在使用Wireshark时遇到问题或需要帮助,可能有几个有趣的地方(当然,除了本指南之外)。
1.6.1。网站
您可以在Wireshark主页上找到许多有用的信息,网址为 https://www.wireshark.org/。
1.6.2。维基
Wireshark Wiki位于https://wiki.wireshark.org/,通常提供与Wireshark和数据包捕获有关的广泛信息。您会发现很多信息不属于本用户指南的一部分。例如,它包含一个说明,说明如何在交换网络上进行捕获,正在不断努力以建立协议参考,特定于协议的信息等等。
最重要的是,如果您想在特定主题(也许是您熟知的网络协议)上贡献知识,则可以使用Web浏览器编辑Wiki页面。
1.6.3。问答网站
Wireshark问答网站https://ask.wireshark.org/提供了一个资源,可以将问题和答案集中在一起。您可以搜索之前提出的问题,并了解了解该问题的人给出了哪些答案。答案是排名,因此您可以轻松挑选出最佳答案。如果尚未讨论您的问题,则可以自己发表。
1.6.4。常问问题
常见问题列出了常见问题及其相应的答案。
阅读常见问题 | |
在将任何邮件发送到下面的邮件列表之前,请务必阅读FAQ。它通常会回答您可能遇到的任何问题。这样可以节省您自己和他人的大量时间。请记住,很多人都订阅了邮件列表。 |
通过单击菜单项“帮助/目录”并在显示的对话框中选择“ FAQ”页面,可以在Wireshark中找到FAQ。
可从Wireshark网站(https://www.wireshark.org/faq.html)获得在线版本 。您可能更喜欢此在线版本,因为它通常是最新版本,并且HTML格式更易于使用。
1.6.5。邮件列表
有一些特定的Wireshark主题的邮件列表:
Wireshark公告
有关新程序版本的信息,通常每六周出现一次。
Wireshk用户
Wireshark用户感兴趣的主题。人们通常会发布有关使用Wireshark的问题,其他人(希望如此)会提供答案。
Wireshark开发
Wireshark开发人员感兴趣的主题。如果要开发协议解剖器或更新用户界面,请加入此列表。
您可以从Wireshark网站上订阅每个列表:https : //www.wireshark.org/lists/。在此处,您可以通过单击相关列表标题下的“订阅/取消订阅/选项”按钮来选择要订阅的邮件列表。该页面上还包含指向档案的链接。
列表已存档 | |
您可以在列表档案中进行搜索,以查看是否有人在某个时间之前问过同样的问题,也许已经找到答案了。这样,您不必等到有人回答您的问题。 |
1.6.6。报告问题
注意 | |
在报告任何问题之前,请确保已安装最新版本的Wireshark。 |
报告Wireshark问题时,请提供以下信息:
- Wireshark的版本号和与其链接的从属库,例如Qt或GLib。您可以从Wireshark的about框或命令wirehark -v中获得此信息。
- 有关在其中运行Wireshark的平台(Windows,Linux等以及32位,64位等)的信息。
- 您的问题的详细说明。
- 如果收到错误/警告消息,请复制该消息的文本(如果有的话,也可以复制该文本的前后几行),以便其他人可以找到出现问题的地方。请不要给出类似“我在做x时收到警告”之类的信息,因为这样做不会给您一个好主意。
转存失败重新上传取消 | 不要发送机密信息! |
如果将捕获文件发送到邮件列表,请确保它们不包含任何敏感或机密信息,例如密码或个人身份信息(PII)。 在许多情况下,可以在共享文件之前使用TraceWrangler之类的工具清除捕获文件。 |
不要发送大文件 | |
不要将大文件(> 1 MB)发送到邮件列表。而是提供下载链接。对于错误和功能请求,您可以在Bugzilla上创建问题 并将文件上传到那里。 |
1.6.7。报告UNIX / Linux平台上的崩溃
使用Wireshark报告崩溃时,如果提供回溯信息以及“报告问题”中提到的信息,将很有帮助。
您可以在UNIX或Linux上使用以下命令获取此回溯信息(请注意反引号):
<span style="color:rgba(0, 0, 0, 0.8)"><span style="color:rgba(0, 0, 0, 0.9)">$ gdb`whereis wirehark | 切-f2 -d:| | 切-d''-f2`核心>&backtrace.txt
回溯
^ D</span></span>
如果没有可用的gdb,则必须检出操作系统的调试器。
通过电子邮件将backtrace.txt发送到wirehark-dev [AT] wireshark.org。
1.6.8。报告Windows平台上的崩溃
Windows发行版不包含符号文件(.pdb),因为它们非常大。您可以分别从https://www.wireshark.org/download/win32/all-versions/和 https://www.wireshark.org/download/win64/all-versions/下载它们 。
1.6。报告问题并获得帮助
如果您在使用Wireshark时遇到问题或需要帮助,可能有几个有趣的地方(当然,除了本指南之外)。
1.6.1。网站
您可以在Wireshark主页上找到许多有用的信息,网址为 https://www.wireshark.org/。
1.6.2。维基
Wireshark Wiki位于https://wiki.wireshark.org/,通常提供与Wireshark和数据包捕获有关的广泛信息。您会发现很多信息不属于本用户指南的一部分。例如,它包含一个说明,说明如何在交换网络上进行捕获,正在不断努力以建立协议参考,特定于协议的信息等等。
最重要的是,如果您想在特定主题(也许是您熟知的网络协议)上贡献知识,则可以使用Web浏览器编辑Wiki页面。
1.6.3。问答网站
Wireshark问答网站https://ask.wireshark.org/提供了一个资源,可以将问题和答案集中在一起。您可以搜索之前提出的问题,并了解了解该问题的人给出了哪些答案。答案是排名,因此您可以轻松挑选出最佳答案。如果尚未讨论您的问题,则可以自己发表。
1.6.4。常问问题
常见问题列出了常见问题及其相应的答案。
阅读常见问题 | |
在将任何邮件发送到下面的邮件列表之前,请务必阅读FAQ。它通常会回答您可能遇到的任何问题。这样可以节省您自己和他人的大量时间。请记住,很多人都订阅了邮件列表。 |
通过单击菜单项“帮助/目录”并在显示的对话框中选择“ FAQ”页面,可以在Wireshark中找到FAQ。
可从Wireshark网站(https://www.wireshark.org/faq.html)获得在线版本 。您可能更喜欢此在线版本,因为它通常是最新版本,并且HTML格式更易于使用。
1.6.5。邮件列表
有一些特定的Wireshark主题的邮件列表:
Wireshark公告
有关新程序版本的信息,通常每六周出现一次。
Wireshk用户
Wireshark用户感兴趣的主题。人们通常会发布有关使用Wireshark的问题,其他人(希望如此)会提供答案。
Wireshark开发
Wireshark开发人员感兴趣的主题。如果要开发协议解剖器或更新用户界面,请加入此列表。
您可以从Wireshark网站上订阅每个列表:https : //www.wireshark.org/lists/。在此处,您可以通过单击相关列表标题下的“订阅/取消订阅/选项”按钮来选择要订阅的邮件列表。该页面上还包含指向档案的链接。
列表已存档 | |
您可以在列表档案中进行搜索,以查看是否有人在某个时间之前问过同样的问题,也许已经找到答案了。这样,您不必等到有人回答您的问题。 |
1.6.6。报告问题
注意 | |
在报告任何问题之前,请确保已安装最新版本的Wireshark。 |
报告Wireshark问题时,请提供以下信息:
- Wireshark的版本号和与其链接的从属库,例如Qt或GLib。您可以从Wireshark的about框或命令wirehark -v中获得此信息。
- 有关在其中运行Wireshark的平台(Windows,Linux等以及32位,64位等)的信息。
- 您的问题的详细说明。
- 如果收到错误/警告消息,请复制该消息的文本(如果有的话,也可以复制该文本的前后几行),以便其他人可以找到出现问题的地方。请不要给出类似“我在做x时收到警告”之类的信息,因为这样做不会给您一个好主意。
正在上传…重新上传取消 | 不要发送机密信息! |
如果将捕获文件发送到邮件列表,请确保它们不包含任何敏感或机密信息,例如密码或个人身份信息(PII)。 在许多情况下,可以在共享文件之前使用TraceWrangler之类的工具清除捕获文件。 |
不要发送大文件 | |
不要将大文件(> 1 MB)发送到邮件列表。而是提供下载链接。对于错误和功能请求,您可以在Bugzilla上创建问题 并将文件上传到那里。 |
1.6.7。报告UNIX / Linux平台上的崩溃
使用Wireshark报告崩溃时,如果提供回溯信息以及“报告问题”中提到的信息,将很有帮助。
您可以在UNIX或Linux上使用以下命令获取此回溯信息(请注意反引号):
<span style="color:rgba(0, 0, 0, 0.8)"><span style="color:rgba(0, 0, 0, 0.9)">$ gdb`whereis wirehark | 切-f2 -d:| | 切-d''-f2`核心>&backtrace.txt
回溯
^ D</span></span>
如果没有可用的gdb,则必须检出操作系统的调试器。
通过电子邮件将backtrace.txt发送到wirehark-dev [AT] wireshark.org。
1.6.8。报告Windows平台上的崩溃
Windows发行版不包含符号文件(.pdb),因为它们非常大。您可以分别从https://www.wireshark.org/download/win32/all-versions/和 https://www.wireshark.org/download/win64/all-versions/下载它们 。