在网络故障排除过程中,Wireshark是一款非常强大的工具,它可以用来分析网络数据包并解决各种问题。本文将介绍一些好用的Wireshark过滤器,以便更有效地进行故障排除。
分析网络行为和排除网络故障就像用漏斗过滤渣滓。因此,网络协议分析仪 Wireshark 通过帮助网络工程师过滤特定的数据段,如特定的 IP 地址、值或协议,使故障排除过程更易于管理。
从网络流量的捕获或跟踪文件开始,可以应用过滤器将搜索范围缩小到特定的数据段,如特定的 IP 地址、值或协议,从而使故障排除过程更易于管理。
一、Wireshark过滤器
我们列出了一系列有用的过滤器,以提高数据分析效率。这些过滤器适用于实时捕获和导入的文件,可精确检查协议字段和数据流的 HEX 值,满足各种故障排除方案的独特需求。以下是他们的最佳选择:
1、ip.addr == x.x.x.x
过滤以特定 IP 地址作为源地址或目标地址的数据包。是分析进出特定 IP 流量的理想工具。
2、ip.addr == x.x.x.x && ip.addr == y.y.y.y
缩小两个 IP 地址之间的通信范围,简化数据分析。Wireshark 会跟踪协议栈各级端点之间的特定会话,并允许您明确过滤这些会话。查看 “统计”->“对话 ”对话框,即可获得当前打开的跟踪中的对话列表。
3、http or dns
侧重于 HTTP 和 DNS 协议,便于调查网络流量和域名解析。
4、tcp.port == xxx
通过特定端口号隔离 TCP 数据包,简化通过指定端口的流量检查。如果需要过滤多个端口,也可以提供一个过滤值列表:tcp.port in {80, 443}。这将过滤 80 或 443 端口上的所有流量。
5、tcp.seq == x
按 TCP 序列号过滤数据包,用于分析数据包顺序。
6、tcp.flags.reset==1
显示所有 TCP 重置,这对识别突然终止的连接至关重要。
7、tcp.flags.push==1
识别 TCP 推送事件,对排除数据流问题至关重要。
8、tcp 包含 "关键字
显示包含指定术语的 TCP 数据包,帮助进行特定内容搜索。请注意,引号内的字符串将被转义。因此,搜索文件补丁可能会产生意想不到的结果。为避免这种情况,也可以强制搜索避免内容转义,例如: tcp contains r “C:\foo”
9、tcp.stream eq X
跟踪特定的 TCP 数据流,从而实现连续的数据包跟踪。要查看特定跟踪中所有可用流的概览,可使用 Statistics->Conversations 对话框。
10、http.request
捕获 HTTP GET 和 POST 请求,突出显示网页访问模式。具体来说,它会捕获存在 http.request 字段的所有数据包。如果只需过滤特定请求,可相应指定:http.request.method in {POST,PUSH
11、!(arp 或 icmp 或 dns)
排除指定协议,集中分析相关流量。
12、udp 包含 “xx:xx:xx” !
按十六进制值过滤 UDP 数据包,用于精确定位特定数据段。
13、dns.flags.rcode != 0
识别有解析错误的 DNS 请求,对诊断域名问题至关重要。
14、tcp.payload[0:2] == bb:cc
过滤所有前两个字节包含 bb:cc 的报文的有效载荷字段。这可以用在很多地方,例如,eth.addr[0:3] == 94:37:f7 将过滤所有来自具有华为供应商 ID 的网卡的流量。
二、专业tips:
- 如何将常用筛选器添加为按钮?
地址栏右侧的小 + 允许创建所谓的 “过滤按钮”。这些按钮可用作常用显示过滤表达式的快捷方式。
添加新按钮时,可以将字段直接拖到 + 号上,也可以在应用筛选器时点击它。在后一种情况下,它会自动将当前的筛选器添加到创建对话框中,只需为按钮提供一个名称即可。在名称中添加两个斜线 // 后,按钮甚至可以组合在一起。
2. 如何拖放筛选器?
与其复制筛选器,不如直接将筛选器拖入搜索栏。
3、捕获可操作的网络数据
网络数据包决定着故障排除过程的成败。网络数据包捕获的主要优势之一是其提供的详细程度。捕获数据包内的所有信息(包括源地址和目标地址、协议信息和有效载荷数据)的能力可对网络流量进行更全面的分析,使其成为排除网络故障的宝贵工具。
ProfiShark 或 IOTA 等数据包捕获工具具有硬件时间戳和硬件捕获过滤器等高级功能,可提供高保真捕获文件以供分析。
Profishark | IOTA |
用于现场故障排除和工业网络的高性能现场数据包捕获。
| 流量捕获与分析,只需一个盒子。中小型企业和数据中心。
|