虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。
[@more@]使用一个协议分析器
虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。
Wireshark 的最主要优点之一是您可以捕捉一段时间内的数据包(如 tcpdump 一样),然后基于不同的协议、端口和其他数据交互地分析和过滤内容。Wireshark 也支持大量的协议解码器,这使您能够检查每分钟内数据包和会话的详细内容。
您可以看到 Wireshark 的简单截图显示了所有类型的所有数据包,如 图 1 所示。这个窗口分成三个主要部分:过滤的数据包列表、解码的协议明细和 HEX/ASCII 格式的原始数据包数据。
图 1. Wireshark 界面
![Wireshark 界面接口](https://i-blog.csdnimg.cn/blog_migrate/df73b8fa697bf2c3938e86de32de1be5.png)
作为 Wireshark 工具所提供的一个级别的信息和解码的例子,在撰写本文时我注意网络中的一个 MySQL 服务器返回了一些错误数据包。
为了专注于内容,我首先对输出应用了 MySQL 过滤。您可以通过在 Filter 输入框中输入一个表达式(类似于 tcpdump、snoop 或 iptract)。或者,您可以单击 Expression 按钮,然后从内置的列表的中选择一种过滤。您可以在 图 2 中看到一组示例过滤。一旦您选择了某个过滤,单击 Apply 就可以过滤数据包列表。
图 2. 选择一个 Wireshark 过滤
![选择一个 Wireshark 过滤的截图](https://i-blog.csdnimg.cn/blog_migrate/97779599931b68e11ba3fa7f3a80227d.png)
通过过滤 MySQL 协议,我能够确定错误的数据包。MySQL 协议会传到一个带有错误信息的特殊数据包类型。在这里,错误 1242 表示查询操作失败,由于子查询有问题。您可以通过展开 Wireshark 窗口的 MySQL 协议部分查看 MySQL 协议的内容,如 图 3 所示。
图 3. 检查一个 MySQL 错误数据包
![检查一个 MySQL 错误数据包的截图](https://i-blog.csdnimg.cn/blog_migrate/ef925b87aedb77b28cd056e874a30ad5.png)
在这里我们可以看到错误的明细。通过跟踪之前的 ‘Request Query’ 数据包,我们就可能确定出导致产生错误响应的查询(图 4)、
图 4. 导致产生错误响应的 MySQL 查询
![导致产生错误响应的 MySQL 查询的截图](https://i-blog.csdnimg.cn/blog_migrate/edb15be80e9fa8db41b27039db694b4f.png)
通过分析数据包,我能够识别之前并没有注意的错误代码,并且能够指出这个错误及导致发生问题的查询。
Wireshark 支持广泛的协议和过滤器,您可以用它们获得详细的信息。它的另一个常见用途是监控详细协议的确切内容,如 Web 服务。图 5 显示了一个来自 SOAP 请求用于记录状态信息的详细(且结构清晰的)信息。
图 5. 查看 SOAP Web 服务请求的详细信息
![SOAP Web 服务请求的详细信息截图](https://i-blog.csdnimg.cn/blog_migrate/2c7fcc1d216b1ae0a86627815d7f63db.png)
这些详细信息在调试您使用的任何网络协议时是非常有用的。
Wireshark 的另一个有用的特性是它能够处理即时信息,并且它能够记录信息以备将来过滤和处理。这表示您可以使用它监控某个时期的可疑流量,然后您可以在恰当的时候分析这些信息,以查明您的网络中发生了什么操作。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16896827/viewspace-1036464/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16896827/viewspace-1036464/