Wireshark 包过滤使用规则

Wireshark 包过滤使用规则
最新回答
软喵酱メ

2021-05-04 11:49:34

Wireshark 包过滤使用规则

Wireshark 的包过滤功能是其强大的分析工具之一,它允许用户根据特定的规则筛选出感兴趣的数据包。以下是 Wireshark 包过滤的使用规则及详细说明:

一、基本语法
  • 协议过滤:可以直接指定协议类型进行过滤,如 tcp、udp、ip、http 等。
  • 端口过滤:使用 port 关键字进行端口过滤,如 tcp.port == 6601 表示过滤 TCP 端口为 6601 的数据包。
  • IP 地址过滤:使用 host 关键字进行 IP 地址过滤,如 host 27.187.247.203 表示过滤源或目的 IP 地址为 27.187.247.203 的数据包。
  • 逻辑运算:使用 and、or、not 等逻辑运算符组合多个过滤条件,如 tcp.port == 6601 and http 表示过滤 TCP 端口为 6601 且为 HTTP 协议的数据包。
二、捕捉过滤器与显示过滤器的区别
  • 捕捉过滤器(Capture Filters)

    用于在数据包捕捉过程中决定哪些数据包被记录下来。

    需要在开始捕捉前设置,一旦捕捉开始,无法修改。

    目的是减少捕捉到的数据包数量,避免日志文件过大。

  • 显示过滤器(Display Filters)

    用于在捕捉结果中详细查找感兴趣的数据包。

    可以在捕捉结果后随意修改,更加灵活。

    允许使用更复杂、更强大的过滤规则,快速准确地找到所需的数据包。

三、捕捉过滤器语法
  • Protocol:指定协议类型,如 tcp、udp、ip 等。
  • Direction:指定数据包的方向,如 src(源)、dst(目的)、src and dst(源和目的)、src or dst(源或目的)。
  • Host(s):指定 IP 地址或网络,如 host 10.1.1.1、net 10.1.0.0/16。
  • Logical Operations:使用逻辑运算符组合多个条件,如 and、or、not。
四、显示过滤器语法
  • Protocol.String1.String2Comparison operatorValue:指定协议、字段、比较运算符和值。
  • Logical Operations:使用逻辑运算符组合多个过滤条件。
五、常用过滤示例
  1. 过滤特定端口的数据包

    tcp.port == 80:过滤 TCP 端口为 80 的数据包。

    udp.port == 53:过滤 UDP 端口为 53 的数据包。

  2. 过滤特定 IP 地址的数据包

    host 192.168.1.1:过滤源或目的 IP 地址为 192.168.1.1 的数据包。

    ip.src == 192.168.1.1:过滤源 IP 地址为 192.168.1.1 的数据包。

    ip.dst == 192.168.1.1:过滤目的 IP 地址为 192.168.1.1 的数据包。

  3. 组合过滤条件

    tcp.port == 80 and host 192.168.1.1:过滤 TCP 端口为 80 且源或目的 IP 地址为 192.168.1.1 的数据包。

    udp.port == 53 or tcp.port == 80:过滤 UDP 端口为 53 或 TCP 端口为 80 的数据包。

  4. 使用逻辑非运算符

    not tcp:过滤掉所有 TCP 数据包。

    not ip.src == 192.168.1.1:过滤掉源 IP 地址为 192.168.1.1 的数据包。

  5. 过滤特定协议的数据包

    http:过滤 HTTP 协议的数据包。

    dns:过滤 DNS 协议的数据包。

六、注意事项
  • 当使用关键字作为值时,需使用反斜杠 进行转义,如 ether proto ip。
  • 可以在 ip 或 ether 后面使用 multicast 及 broadcast 关键字进行多播或广播过滤。
  • 如果过滤器的语法是正确的,表达式的背景会呈绿色;如果呈红色,说明表达式有误,需要检查语法。

以下是一个示例图片,展示了 Wireshark 中过滤器的使用:

通过合理使用 Wireshark 的包过滤功能,用户可以高效地分析网络流量,快速定位问题所在。