数据包就像人体中的细胞,它们共同构成了整个互联网。
系统内部以及网络中传输的每一条信息,都是以数据包的形式存在的。有趣的是,这些数据包有时会沿着不同的方向随机传输。
互联网系统并没有明确划分的传输路线。数据会根据预期的目的地,在不同服务器之间跳转。
在这个过程中,预期接收数据的系统会持续检查传输的数据。当数据到达时,系统会对其进行检查和验证,从而获取其中的信息。
这一过程看起来很复杂,事实上也确实如此。不过,在整个过程中,有一个重要组件不可或缺,它可以帮助检查数据,也就是我们通常所说的数据嗅探工具(Sniffing Tool)。那么,这究竟是什么工具呢?
8 款最佳开源协议分析工具列表
以下是 8 款值得了解的开源协议分析工具:
- Wireshark
- httpry
- NGREP
- TCPFLOW
- Moloch
- Skydive
- Tcpdump
- Ettercap
网络协议分析工具用于监控其所部署环境中的网络流量。它会检查每个数据包,以确定数据是否相关,或者记录有关数据包的信息。
这类工具具有多种用途,包括检索数据、检查系统故障、分析网络攻击等。
市场上有许多免费的开源工具,其中一些也提供商业版本或商业化服务。
以下是这些开源协议分析工具的详细介绍。
1. Wireshark
Wireshark 于 1998 年由一群志愿者发起开发。他们希望在开源平台上打造一款高质量的网络数据嗅探工具。
这款工具最初名为 Ethereal,后来更名为 Wireshark。直到今天,它仍然由一群志愿者持续维护和更新,并不断添加新功能。
由于 Wireshark 问世较早,而且长期以来一直是一款优秀的工具,因此它在网络协议分析领域逐渐成为行业标准之一。
每当有新的协议分析工具推出时,人们通常会将其与 Wireshark 进行比较,以评估新工具是否能够满足实际需求。
Wireshark 不受特定操作系统的限制,并提供了易于使用的图形用户界面(GUI),方便用户浏览和操作。
它支持多种数据包捕获文件格式,并能够读取不同传输方式下的网络流量,例如 IEEE 802.11、蓝牙、USB 和以太网等。
2. httpry
httpry 是一款专门用于 HTTP 流量分析的协议分析工具。
它不会直接分析数据包本身,而是能够捕获数据并将其记录下来,以便后续进行分析。
该工具可以实时捕获网络中的数据,并将相关信息记录到输出文件中。
httpry 非常轻量且灵活。它采用这种设计方式,仅提供基于文本的操作界面,不包含复杂的图形用户界面。此外,它还能够适应不同的应用场景,从而扩大其使用范围。
httpry 的主要功能包括检查用户发出的在线请求、验证服务器配置是否合理、研究流量使用模式,以及监控潜在的恶意文件等。
3. NGREP
NGREP 最初是为了检测网络中的连接异常而开发的。这些异常可能是由试图攻击系统的恶意软件或病毒引起的。
随着应用范围的不断扩大,这项功能逐渐发展成为一款功能完善的纯文本协议分析工具。
早期版本主要用于处理纯文本协议交互,而现在,它已经能够支持多种协议。
后续更新还为该工具增加了更多功能,例如标记特定事务、支持 Solaris IPnet 等。
4. TCPFLOW
TCPFLOW 是一款主要针对 TCP 连接设计的协议分析工具。它能够捕获 TCP 连接中的数据包,并将其记录下来,以便后续分析和调试。
TCPFLOW 会根据数据流的传输方向,将数据流区分为两个方向,并分别保存到两个文件中。每个文件对应一个方向的数据流。
如果通过 Tcpdump 捕获的数据包流已被保存,TCPFLOW 也能够对其进行处理。
与 Wireshark 等其他工具相比,TCPFLOW 的一项显著优势是能够同时展示数十万条 TCP 连接的数据流,而其他一些工具通常更侧重于查看单个连接中的事务。
5. Moloch
Moloch 是一款用于存储和索引 PCAP 格式数据包的协议分析工具。它提供了一个简洁的 Web 界面,用户可以通过该界面浏览、搜索和导出数据。
用户还可以直接下载和使用 JSON 格式的 PCAP 数据。
Moloch 的设计充分考虑了大规模数据处理的需求,因此能够处理每秒超过 10 GB 的数据。
使用 Moloch 时,用户可以通过基于多线程的 C 应用程序捕获传输中的数据。随后,Node.js 应用程序会作为查看器运行,供用户查看捕获的数据。最终的数据处理则由 Elasticsearch 提供支持。
6. Skydive
Skydive 是一款功能较为先进的协议分析工具。它拥有直观的图形用户界面(GUI),能够在同一界面中清晰地展示大量网络信息。
Skydive 功能丰富,支持多种数据类型,具有良好的可扩展性,同时易于部署和使用。与许多其他知名工具一样,它在 GitHub 上也拥有较为广泛的支持。
Skydive 的一项核心功能是网络图形可视化。它能够绘制网络中的各个节点,并展示数据流的传输路径。
此外,它还可以显示节点如何划分到不同的数据分段中。这些信息在调试网络问题或防御系统攻击时非常有用。
7. Tcpdump
Tcpdump 是一款基于文本的协议分析工具,用于嗅探和捕获网络中的 TCP/IP 数据包。由于具备快速排查问题的能力,它被广泛用于网络故障诊断。
通过分析网络中的数据流,以及相应的数据泄漏或流量瓶颈情况,用户可以判断网络问题可能出现的位置。
随后,可以根据实际情况调整网络路由,以恢复正常的数据传输,并解决相关问题。
Tcpdump 还可以用于检查通过 HTTP 通道传输的未加密信息。这些信息可能包括查询内容、URL 请求、登录 ID、密码等。
8. Ettercap
Ettercap 主要用于 Windows 和 UNIX 系统。
它可以通过检查网络中发出的请求,帮助用户监听网络流量。相关信息可能包括用户名、密码、流量中的 URL 等。
Ettercap 还能够根据网络节点的 IP 地址和 MAC 地址监控流量。
此外,它可以利用 ARP 欺骗技术,监控基于 ARP 的全双工交换式局域网(LAN)连接中的流量,以及基于 PublicARP 的半双工连接中的流量。
需要注意的是,这类监听和流量分析功能应仅用于获得授权的网络环境。
结论
以上介绍了 8 款优秀的开源协议分析工具,它们能够帮助用户捕获、检查和分析网络流量。
无论是个人使用还是企业应用,这些工具都能为网络监控、故障排查和安全分析提供帮助。不过,不同工具在协议支持、数据处理能力、操作界面和部署方式等方面存在差异。
因此,在选择合适的工具时,关键是明确自身的实际需求,并根据具体的使用场景、技术要求和选择标准进行评估。




