首页/网络/抓包与流量分析速查/Wireshark 过滤 ICMP 类型
Wireshark 技巧75 条

Wireshark 过滤 ICMP 类型

icmp.type 与 icmp.code 过滤 ICMP 消息:8/0 Echo 请求应答、3 目的不可达(code 4 需要分片)、11 超时;网络层排障常用。

ICMP 类型过滤是什么

icmp.type 与 icmp.code 用来过滤 ICMP 消息:8 与 0 是 Echo 请求与应答,3 是目的不可达(其中代码 4 表示需要分片,定位 MTU 问题时必看),11 是超时,traceroute 正是依赖它工作。IPv6 环境下的对应字段是 icmpv6.type 与 icmpv6.code。

基本信息

适用工具Wireshark 3.x / 4.x
过滤字段icmp.type 与 icmp.code
常见取值8 与 0 为 Echo,3 为不可达,11 为超时
IPv6 对应icmpv6.type 与 icmpv6.code
配合条件用 ip.addr 限定对端更精确

典型使用场景

  • 确认目标是否回应 Echo 请求,排除应用层因素
  • 定位路径 MTU 问题:抓需要分片的通知报文
  • 排查 traceroute 结果异常,确认中间跳是否回应
  • 核对策略设备是否按预期放行 ICMP
  • IPv6 环境下检查邻居发现是否正常进行

常用示例

常用示例
icmp.type == 8                                    # Echo 请求
icmp.type == 0                                    # Echo 应答
icmp.type == 3 && icmp.code == 4                  # 需要分片(MTU 问题)
icmp.type == 11                                   # 超时(traceroute)
icmpv6.type == 135                                # IPv6 邻居请求

类型与代码速查

类型与代码含义用途
8 / 0Echo 请求与应答连通性验证
3 代码 4需要分片定位路径 MTU 问题
3 其他代码网络或主机不可达判断可达性故障
11超时环路与 traceroute 分析
icmpv6 135 / 136邻居请求与通告IPv6 地址解析
只按 type 过滤会混入多种不可达原因,定位具体问题时需要叠加 code 条件。
ICMP 携带的原始报文片段可能被策略设备限速或丢弃,抓不到不代表路径没有问题。

补充要点

  • 先按 type 分类,再按 code 细分,能把不可达问题定位到具体环节
  • 把 ICMP 与同时段的 TCP 抓包对照,可判断失败是网络层还是传输层
  • ICMPv6 的邻居发现与路由通告是 IPv6 的基础功能,排障时不能当作噪音过滤掉
  • 策略设备对 ICMP 的处理常与 TCP 不同,放行 TCP 不代表 ICMP 也放行
需要长期观察 ICMP 行为时,把过滤条件保存成按钮,避免每次手工重写表达式。

补充要点

  • 先按类型粗筛,再按代码细分,定位原因会更快
  • 把 ICMP 与同时段的传输层抓包对照,可区分网络层与传输层问题
  • 策略设备对 ICMP 的处理常与业务协议不同,放行规则要分别核对
  • IPv6 环境使用对应的 icmpv6 字段,不要沿用 ICMP 表达式

组合用法

  • 按类型粗筛后再按代码细分,定位不可达原因更精确
  • 把 ICMP 与传输层抓包放在同一时间窗对照,区分网络层与业务层问题
  • 策略设备对 ICMP 的放行规则常与业务协议不同,需要分别验证
  • IPv6 排障使用 icmpv6 字段,并重点关注邻居发现相关类型

易错点

  • 把 ICMP 当作噪音直接过滤掉,导致 MTU 与可达性问题的关键证据被忽略
  • 只按类型过滤不看代码,把多种不可达原因混在一起得出错误结论
  • 在 IPv6 环境沿用 ICMP 字段,过滤结果为空便误判为没有 ICMP 流量

数据来源与参考

  • Wireshark 显示过滤器参考(icmp.type)
  • RFC 792(ICMP)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌