Sniffer Pro 教程:从入门到精通
Sniffer Pro(现属 NetScout 公司,产品线已演变为 nGenius®)是一款功能强大的网络协议分析器,被誉为“网络界的万用表”或“网络侦探”,它能够捕获、解码和分析通过网络的数据包,是网络管理员、工程师和安全专家进行故障排查、性能优化和安全审计的必备工具。

本教程将分为以下几个部分:
- 第一部分:基础理论 - 了解 Sniffer Pro 是什么,以及它的工作原理。
- 第二部分:界面初探 - 熟悉 Sniffer Pro 的核心窗口和功能面板。
- 第三部分:捕获数据包 - 动手实践,开始捕获网络流量。
- 第四部分:解码与分析 - 深入解读数据包内容,找到问题所在。
- 第五部分:高级功能 - 使用过滤器、专家分析等强大功能。
- 第六部分:实战案例 - 通过具体场景学习如何使用 Sniffer Pro 解决实际问题。
- 第七部分:注意事项与总结
第一部分:基础理论
1 什么是 Sniffer Pro?
Sniffer Pro 就是一个“窃听器”,它将自己的网络接口(网卡)设置为“混杂模式”(Promiscuous Mode),在这种模式下,网卡会接收所有流经它的数据包,而不仅仅是发给它自己的,通过这种方式,Sniffer Pro 可以“看到”整个局域网(VLAN 内)的通信情况。
2 Sniffer Pro 能做什么?
- 故障排查:定位网络延迟、丢包、连接超时等问题,你可以看到客户端和服务器之间交换的 TCP 三次握手是否正常,数据传输是否被重传等。
- 性能分析:分析网络带宽利用率,找出占用带宽最大的应用程序或用户。
- 安全审计:检测网络中的异常流量,如 ARP 欺骗、DDoS 攻击、病毒扫描、非授权访问等。
- 协议分析:学习和调试各种网络协议(如 HTTP, DNS, FTP, SMTP 等),查看它们的具体交互过程。
- 应用程序调试:对于开发人员,可以用来定位应用程序在通信层面的问题。
3 工作原理
Sniffer Pro 的工作流程可以概括为三个步骤:
- 数据包捕获:将网卡置于混杂模式,从网络上捕获原始数据帧。
- 数据包解码:根据协议标准(如 RFC),将二进制的数据帧解析成人类可读的格式,展示协议头部和载荷信息。
- 数据包分析:通过解码后的信息,结合过滤器、专家系统等工具,对数据包进行统计、筛选和深度分析,得出结论。
第二部分:界面初探
启动 Sniffer Pro 后,你会看到几个核心窗口:

-
Dashboard (仪表盘):
- 这是主界面,通常以图表形式显示网络的关键性能指标,如利用率、错误率、流量分布等。
- 作用:快速了解网络的整体健康状况。
-
Capture (捕获) 窗口:
- 这是进行数据包捕获的主界面,默认显示一个数据包列表。
- 列表列:通常包括
Number(序号)、Time(时间戳)、Source(源地址)、Destination(目的地址)、Protocol(协议)、Length(长度)、Description(描述) 等。 - 作用:捕获并显示所有捕获到的数据包的概要信息。
-
Decode (解码) 窗口:
- 当你在 Capture 窗口中选中一个数据包时,Decode 窗口会详细显示该数据包的结构。
- 它通常分为三部分:
- 协议树:左侧,以树状结构展示了数据包封装的所有协议层次(如 Ethernet -> IP -> TCP -> HTTP)。
- 十六进制/ASCII 码:中间,显示原始数据的二进制和文本形式。
- 协议字段:右侧,以表格形式列出当前选中协议的所有字段及其值。
- 作用:深入分析单个数据包的每一个细节。
-
Matrix (矩阵) 窗口:
- 以矩阵图的形式展示网络中不同主机之间的通信流量。
- 作用:直观地看到哪些主机之间有通信,以及通信的强度和方向。
第三部分:捕获数据包
这是最基本也是最重要的操作。
步骤 1:设置捕获
- 在顶部菜单栏,点击
Capture->Start。 - 第一次启动时,会弹出
Define Filter(定义过滤器) 对话框,你可以先不设置,直接点击Start,它会捕获所有流量。 - 最佳实践:为了效率和分析,建议先定义过滤器,只想捕获某个 IP 地址的流量,或只想捕获 HTTP 流量,我们将在第五部分详细讲解过滤器。
步骤 2:停止捕获
当捕获到你感兴趣的数据后,点击顶部菜单栏的 Capture -> Stop 来停止捕获。
步骤 3:保存捕获文件
- 停止捕获后,你可以将捕获的数据保存下来以便后续分析。
- 点击
File->Save As。 - Sniffer Pro 的默认保存格式是
.snf,你可以选择保存整个捕获,也可以只保存选中的部分。
第四部分:解码与分析
捕获到数据包后,真正的分析工作开始了。
场景:分析一次正常的网页访问过程
-
定位数据包:
- 在 Capture 窗口,我们可以看到很多数据包,为了找到我们想要的,可以在
Filter输入框中输入http,然后按回车,这样列表中就只会显示 HTTP 协议的数据包。 - 我们还可以根据
Source或Destination地址来筛选,比如只看我们电脑和某个网站服务器的通信。
- 在 Capture 窗口,我们可以看到很多数据包,为了找到我们想要的,可以在
-
查看三次握手:
- 找到一个数据包,其
Protocol列显示为TCP,Description列可能包含[SYN]标志。 - 双击这个数据包,在 Decode 窗口中查看。
- 在左侧的协议树中,展开
TCP协议。 - 你会看到一个
Flags字段,其值是0x002(二进制0000000000010),这表示SYN标志位被置位,这就是 TCP 三次握手中的第一次握手。 - 向下滚动列表,找到接下来两个相关的数据包,一个应该是
[SYN, ACK](第二次握手),另一个是[ACK](第三次握手)。
- 找到一个数据包,其
-
分析 HTTP 请求:
- 在握手成功后的数据包中,找到
Protocol为HTTP的数据包。 - 双击它,在 Decode 窗口中展开
HTTP协议。 - 你会看到
GET /index.html HTTP/1.1这样的请求行,以及Host: www.example.com等请求头信息,这就是你的浏览器向服务器发送的请求。
- 在握手成功后的数据包中,找到
-
分析 HTTP 响应:
- 服务器会返回响应,找到
Protocol为HTTP,Description列包含200 OK的数据包。 - 双击它,你会看到
HTTP/1.1 200 OK的状态行,以及Content-Type: text/html等响应头。 - 如果数据包很大,载荷部分可能包含了网页的 HTML 代码。
- 服务器会返回响应,找到
通过这个过程,你完整地追踪了一次从 TCP 连接建立到 HTTP 请求和响应的全过程。
第五部分:高级功能
1 过滤器
过滤器是 Sniffer Pro 的灵魂,它能让你从海量数据中快速定位目标。
-
地址过滤:
host 192.168.1.100:只捕获与 IP168.1.100相关的所有流量。src host 192.168.1.100:只捕获源地址为168.1.100的流量。dst host 192.168.1.100:只捕获目的地址为168.1.100的流量。net 192.168.1.0/24:捕获整个168.1.0网段的流量。
-
协议过滤:
tcp:只捕获 TCP 流量。udp:只捕获 UDP 流量。icmp:只捕获 ICMP 流量(如 Ping)。http or dns:捕获 HTTP 或 DNS 流量。
-
端口过滤:
port 80:只捕获目标或源端口为 80 (HTTP) 的流量。src port 21:只捕获源端口为 21 (FTP) 的流量。
-
组合过滤:
tcp and host 192.168.1.100 and port 80:捕获主机168.1.100的所有 HTTP TCP 流量。not arp:排除所有 ARP 流量。
2 专家分析
专家系统是 Sniffer Pro 的智能分析模块,它会自动扫描捕获到的数据包,并标记出其中可能存在的问题或异常。
- 在 Capture 窗口下方,点击
Expert标签页。 - 你会看到按类别(如
Errors,Warnings,Information,Conversation)分组的问题列表。 - 例如:
TCP Retransmissions(TCP 重传):表明网络可能存在丢包或延迟。DNS No Response(DNS 无响应):表明 DNS 服务器可能不可达或响应慢。ARP Requests(ARP 请求):数量过多可能存在 ARP 欺骗攻击。
- 双击专家分析中的条目,Sniffer Pro 会自动跳转到相关的数据包,帮助你快速定位问题根源。
3 统计功能
- Host Table (主机表):显示捕获期间通信最活跃的主机列表,包括它们的收发字节数和包数。
- Protocol Distribution (协议分布):以饼图或柱状图显示各种协议所占的流量比例。
- Conversation (会话):显示两两主机之间的通信会话详情,可以分析哪个会话占用了最多带宽。
第六部分:实战案例
案例 1:网页访问缓慢,使用 Sniffer Pro 定位原因
- 现象:用户反映访问内网某个网站很慢。
- 操作:
- 在用户电脑和网站服务器所在的交换机上,将 Sniffer Pro 所在的端口镜像到捕获端口。
- 启动 Sniffer Pro,设置过滤器为
host [用户IP] and host [服务器IP]。 - 让用户尝试访问网站,同时开始捕获。
- 分析:
- 查看专家分析,发现大量
TCP Retransmissions(TCP 重传)。 - 定位到重传的数据包,发现其
Time to Live值异常小,或者路径上存在高延迟的节点。 - 查看主机表,发现用户和服务器之间的流量并不大,排除了带宽拥塞。
- 很可能是网络路径上的设备(如防火墙、路由器)性能不足或策略限制,导致数据包处理延迟,进而引发重传。
- 查看专家分析,发现大量
案例 2:发现网络中存在 ARP 欺骗攻击
- 现象:局域网内频繁出现 IP 地址冲突,或部分用户网络时断时续。
- 操作:
- 在核心交换机上开启端口镜像,让 Sniffer Pro 捕获全网流量。
- 启动 Sniffer Pro,不设置任何过滤器,捕获所有流量。
- 分析:
- 查看专家分析,
ARP类别下出现大量ARP Requests或ARP Gratuitous。 - 在 Capture 窗口,过滤
arp。 - 你可能会发现一个异常情况:主机 A (IP: 192.168.1.10) 在短时间内,不断地向全网广播 ARP 请求,询问
168.1.20(网关) 的 MAC 地址,这是典型的 ARP 欺骗攻击行为,攻击者试图让流量通过它。 - 网络中存在 ARP 欺骗病毒,通过分析源 MAC 地址,可以定位到中毒的机器。
- 查看专家分析,
第七部分:注意事项与总结
注意事项
- 法律与道德:严禁在未经授权的情况下使用 Sniffer Pro 捕获和分析任何网络流量! 这可能侵犯他人隐私,并违反法律法规和企业政策,只能在拥有管理权限的网络环境中使用。
- 性能影响:捕获所有流量会消耗大量 CPU 和内存资源,并占用磁盘空间,建议始终使用过滤器来捕获必要的数据。
- 网卡驱动:确保你的网卡驱动支持“混杂模式”,绝大多数现代网卡都支持,但某些虚拟网卡或特殊硬件可能需要特殊配置。
- 加密流量:Sniffer Pro 可以看到加密流量(如 HTTPS, VPN)的源/目的 IP 和端口,但无法解密其内容(除非你拥有密钥,如 SSL/TLS 会话密钥)。
Sniffer Pro 是一款功能极其强大的网络分析工具,掌握它的关键在于:
- 熟悉界面:知道去哪个窗口看什么信息。
- 善用过滤器:从海量数据中快速筛选出目标。
- 理解协议:知道正常情况下协议应该如何交互,才能识别出异常。
- 相信专家系统:它是快速定位问题的向导。
虽然市面上有更现代的工具(如 Wireshark),但 Sniffer Pro 的设计理念和核心功能依然是网络分析的基础,通过学习 Sniffer Pro,你将打下坚实的协议分析基础,这对于解决任何复杂的网络问题都至关重要。
