0x0 Wireshark 介绍
Wireshark 是一款功能强大的网络分析工具,适用于网络专业人员。它提供了出色的过滤器,您可以轻松放大到您认为可能存在问题的位置。过滤器的主要好处是消除定位流量,并缩小要查找的数据类型。
0x1 根据源 IP 地址过滤主机
查找属于某个发送者、某个源IP流量的所有数据包时,我们会使用下面的过滤器方式:
ip.src==192.168.1.4
每当我们在过滤命令框中输入任何命令时,如果命令正确,搜索框会变成绿色,否则会变成红色,如下:
0x2 根据目标 IP 地址过滤主机
查找目标主机(接收者)。
ip.dst == 192.168.1.4
0x3 过滤来自特定 IP 的数据包
ip.addr == 192.168.1.4
0x4 过滤两个主机之间的对话
有时,我们只需要关注两个主机之间的数据包。我们将使用下面的过滤器。
ip.addr eq 192.168.1.4 and ip.addr eq 23.217.250.58
0x5 过滤子网
Wireshark 允许您指定网络及其子网长度。当我们想要查看进出网络的数据包时,我们需要该过滤器。
ip.addr ==192.168.1.0/24
0x6 过滤 IP 地址范围
当我们需要过滤仅属于几个主机的数据包时。我们将使用下面的过滤器。
ip.addr >192.168.1.0 and ip.addr <192.168.1.10
0x7 过滤主机或子网
有些主机可能会产生大量的数据包,这会分散我们在故障排除时的注意力。我们使用以下显示过滤器来显示所有在源或目标字段中不包含特定 IP 的数据包。
为了过滤掉host: !(ip.addr==192.168.1.4)
相同的逻辑也可用于过滤子网: !(ip.addr==192.168.1.4/24)
0x8 过滤大于 1500 字节的数据包(默认 MTU 大小)
网络 MTU 大小经常是问题的根源。因此,我们可能需要检查是否有大于默认 MTU 大小的数据包。
ip.len > 1500
0x9 过滤不应分片的数据包
某些应用程序不希望其数据包在网络中被碎片化。当路径上的设备(路由器、防火墙、交换机等)收到这些数据包时,它们会检查这些数据包是否大于 MTU 大小,如果是,设备会丢弃这些数据包,从而导致故障。可以使用以下过滤器。
ip.flags.df == 1
0x10 过滤损坏的数据包
16 位报头校验和字段用于 IPv4 报头的错误检查。在传输过程中,数据包的 IP 报头可能会损坏,从而导致数据包丢失。校验和用于检测损坏的数据包。下面的过滤器可用于查找这些数据包。(当 IP 校验和被卸载时,可以在 Wireshark 中看到相同的警告,这意味着数据包没有损坏。)
ip.checksum_bad.expert
0x11 过滤广播和多播数据包
广播或多播风暴是指短时间内广播数据包数量异常高,导致网络故障。检查这些数据包的比例可以了解风暴和网络环路。以下过滤器用于查找多播和广播数据包。
(eth.dst.lg == 1)或(eth.addr == ff:ff:ff:ff:ff:ff)
0x12 仅过滤 IPv4 数据包
有时,我们需要过滤掉广播、多播、IPv6 数据包,以便我们专注于相关数据包。下面的过滤器用于仅显示 IPv4 数据包。
ip
0x13 仅过滤 IPv6 数据包
IPv6 是“Internet 协议版本 6”的缩写。IPv6 是 IETF 设计的“下一代”协议,用于取代当前的 Internet 协议版本、IP 版本 4 或 IPv4。当使用高流量链接时,我们可能需要仅过滤 IPv6 流量。以下过滤器可用于此目的。
0x14 过滤指定dns域名攻击流量
病毒攻击时常用过滤手段,针对域名的攻击行为
eth.addr == 服务器MAC地址 and dns.qry.name == fget-career.com
eth.addr == 服务器MAC地址 and !(ip.dst == 做镜像的服务器IP地址) and ((dns.qry.name matches 域名) or (dns.qry.name matches 域名))