Wireshark 显示过滤器备忘单:网络工程师的必备工具

这份备忘单基于多年的实战经验,参考了 Wireshark 官方文档和社区最佳实践,整理了常见的显示过滤器(Display Filters)。

这些过滤器可以让你快速定位特定协议、地址、标志位等信息,避免在数万条数据包中盲目搜索。

为什么需要这份备忘单?

  • 在实际项目中,比如排查 ARP 风暴、分析 BGP 路由抖动、调试 HTTP 应用延迟,或调查 TCP 重传问题,这些过滤器能将分析时间从小时级缩短到分钟级。
  • Wireshark 的过滤语法灵活,支持逻辑运算符、比较运算符和子串匹配,但记住常用过滤器是关键。

建议大家在 Wireshark 中练习这些过滤器,并结合 Tshark 命令行工具自动化分析。

1. ARP 协议过滤器

ARP(Address Resolution Protocol)是局域网中 IP 地址与 MAC 地址解析的核心协议。在网络故障中,ARP 问题常导致广播风暴或地址冲突。作为入门级过滤器,ARP 系列能帮你快速隔离请求/响应包,分析 MAC/IP 映射。

1.1. 使用场景

  • 排查"无法 ping 通"问题时,过滤特定 IP 的 ARP 请求;监控 DHCP 环境中的 ARP 欺骗攻击。
  • 记住,ARP 是无连接的,opcode 1 为请求,2 为响应。

实用技巧:结合 eth.src 使用,查看谁在发起 ARP 广播。

示例:

arp.src.proto_ipv4 == 192.168.1.100 && arp.opcode == 1
  • 显示从 192.168.1.100 发送的 ARP 请求。

2. BGP 协议过滤器

BGP(Border Gateway Protocol)是互联网核心路由协议,处理 AS 路径、社区属性等复杂信息。

在企业 WAN 或 ISP 环境中,BGP 过滤器是排查路由泄露、黑洞路由的利器。

2.1. 使用场景

监控 BGP 更新消息,过滤特定 AS 路径;诊断 MED 属性导致的路由选择问题。

BGP 消息类型包括 Open、Update、Notification、Keepalive,type 过滤器是起点。

实用技巧:用 bgp.type == 1 过滤 Open 消息,检查邻居建立;结合 bgp.as_path 搜索循环路径。

示例:

bgp.as_path contains "65001"
  • 显示经过 AS 65001 的路由。

3. Ethernet 协议过滤器

Ethernet 是 LAN 基础,过滤器聚焦 MAC 地址、类型和标志位。适用于无线/有线混合环境下的广播控制和 QoS 调试。

3.1. 使用场景

隔离多播流量导致的拥塞;检查 VLAN 标签前的 Ethernet 类型。eth.type 是万金油过滤器。

实用技巧eth.multicast && eth.dst[0:3] == 01:00:5e 过滤 IPv4 组播组。

示例:

eth.type == 0x0800
  • 只显示 IPv4 流量。

4. 过滤运算符

过滤运算符是 Wireshark 语法的核心,支持数值、字符串比较。掌握这些,能构建复杂表达式。

4.1. 使用场景

数值范围过滤 TTL;字符串匹配 URI。eq 表示相等。

实用技巧:链式使用,如 ip.ttl gt 100 && ip.ttl lt 255

示例:

http.request.uri contains "login"
  • 过滤登录请求。

5. 过滤逻辑运算符

逻辑运算符允许 AND/OR/NOT 组合,构建多层过滤。括号分组是关键,避免歧义。

5.1. 使用场景

(ip.src == 10.0.0.1 or ip.dst == 10.0.0.1) and tcp.port == 80
  • 过滤特定主机的 HTTP 流量。

实用技巧:用 not 排除噪声,如 not icmp——隐藏 ping 包。

示例:

(tcp.flags.syn == 1 and tcp.flags.ack == 0) or (tcp.flags.fin == 1)
  • SYN/FIN 包。

6. Frame Relay 协议过滤器

Frame Relay 是旧式 WAN 协议,过滤器聚焦 DLCI、拥塞位。虽少用,但遗留系统常见。

6.1. 使用场景

迁移项目中,检查 FECN/BECN 拥塞通知;过滤特定 DLCI 通道。

实用技巧fr.dlci == 100——隔离虚拟电路。

示例:

fr.fecn == 1
  • 前向拥塞包。

7. HTTP 协议过滤器

HTTP 是 Web 流量主力,过滤器覆盖头字段、方法、状态码。适用于应用性能监控和安全扫描。

7.1. 使用场景

过滤 404 错误响应;追踪 Cookie 注入攻击。http.request.method 是高频使用字段。

实用技巧http contains "POST" && http.request.uri contains "/api"——API 调用包。

示例:

http.response.code == 500
  • 服务器错误。

8. ICMP 协议过滤器

ICMP(Internet Control Message Protocol)用于错误报告和诊断,如 ping。过滤器聚焦类型、代码、ID。

8.1. 使用场景

过滤 Echo Request/Reply 追踪延迟;隔离 Destination Unreachable。

实用技巧icmp.type == 8——Ping 请求。

示例:

icmp.code == 3 && icmp.type == 3
  • 端口不可达。

9. ICMPv6 协议过滤器

ICMPv6 扩展了 IPv6 的邻居发现、移动性支持。过滤器类似 ICMP,但增加选项和 RA 字段。

9.1. 使用场景

IPv6 迁移中,过滤 Router Advertisement;检查 CGA 安全选项。

实用技巧icmpv6.type == 133——Router Solicitation。

示例:

icmpv6.ra.router_lifetime > 0
  • 活跃路由器。

10. IEEE 802.1Q 协议过滤器

802.1Q 是 VLAN 标签标准,过滤器针对 VID、PCP 等。适用于交换机端口镜像分析。

10.1. 使用场景

过滤特定 VLAN 的广播;QoS 优先级检查。

实用技巧vlan.id == 100——VLAN 100 流量。

示例:

vlan.priority == 7
  • 最高优先级包。

11. IPv4 协议过滤器

IPv4 是主流,过滤器覆盖地址、标志、分片、QoS。ip.src/dst 是基础。

11.1. 使用场景

过滤特定子网流量;诊断 DF 位导致的分片失败。

实用技巧ip.frag_offset != 0——分片包。

示例:

ip.dsfield.dscp == 46
  • EF QoS 包。

12. IPv6 协议过滤器

IPv6 过滤类似 IPv4,但增加流标签、扩展头。ipv6.src/dst 是基础。

12.1. 使用场景

双栈环境中,过滤分片扩展头;检查路由头类型。

实用技巧ipv6.fragment.more == 1——更多 IPv6 分片。

示例:

ipv6.flow == 0x12345
  • 特定流标签。

13. MPLS 协议过滤器

MPLS(Multiprotocol Label Switching)用于 VPN 和流量工程,过滤器针对标签、EXP、TTL。

13.1. 使用场景

MPLS VPN 泄露排查;OAM 维护消息监控。

实用技巧mpls.label == 100——特定标签流量。

示例:

mpls.exp == 5
  • 中等 QoS。

14. PPP 协议过滤器

PPP(Point-to-Point Protocol)用于拨号和串行链路,过滤器简单,聚焦地址、协议。

14.1. 使用场景

DSL 连接调试;PPPoE 会话监控。

实用技巧ppp.protocol == 0x0021——IPv4 over PPP。

示例:

ppp.direction == 1
  • 入站帧。

15. RIP 协议过滤器

RIP(Routing Information Protocol)简单距离矢量协议,过滤器针对命令、度量。

15.1. 使用场景

小型网络路由收敛分析;版本兼容检查。

实用技巧rip.command == 2——响应消息。

示例:

rip.metric < 16
  • 有效路由。

16. TCP 协议过滤器

TCP 是传输层骨干,过滤器详尽,覆盖标志、选项、重传。

16.1. 使用场景

连接建立/终止分析;SACK 效率优化。

实用技巧tcp.flags.syn == 1 && tcp.flags.ack == 0——SYN 包。

示例:

tcp.analysis.retransmission
  • 重传包。

17. UDP 协议过滤器

UDP 轻量,过滤器简单,聚焦端口、长度、校验。

17.1. 使用场景

DNS/RTP 流量监控;UDP 洪泛攻击检测。

实用技巧udp.port == 53——DNS 流量。

示例:

udp.length > 512
  • 大 UDP 包。

18. VTP 协议过滤器

VTP(VLAN Trunking Protocol)用于 Cisco 交换机 VLAN 同步,过滤器针对版本、修订、摘要。

18.1. 使用场景

VLAN 传播故障排查;域隔离检查。

实用技巧vtp.version == 2——VTP v2 消息。

示例:

vtp.conf_rev_num > 10
  • 高修订配置。