Wireshark

Wireshark

多平台的图形界面网络抓包 / 数据包分析工具。

Filter

Wireshark 过滤器(filter)有两种:

  1. 显示过滤器(display filter),就是主界面上那个,用来在捕获的记录中找到所需要的记录
  2. 捕获过滤器(capture filter),用来过滤捕获的封包,以免捕获太多的记录。 在 Capture -> Capture Filters 中设置。

通常使用第1种 display filter。

Wireshark 的 filter 表达式格式与 tcpdump 有所差异。tcpdump 是用的 libpcap 的 filter 格式,功能强大但很难用。Wireshark 的 filter 简单易用得多。

一些 filter 示例:

tcp and udp
dns
ip.src==10.0.0.5
tcp and ( ip.src == 10.0.0.5 or ip.dst == 10.0.0.5)

大部分运算符同时支持自然语言和 C 语言两种风格:

自然语言: eq, ne, gt, lt, ge, le, and, or, xor, not
C语言:    ==, !=,  >,  <,  >=, <=, &&, ||,  ^^,  !   (注意 ^^ 是 Wireshark 特有的 “逻辑异或”运算符,C里只有 ^ 位运算异或操作符)

常见表达式:

ip.src, ip.dst
tcp.srcport, tcp.dstport, tcp.port (tcp.port指源端口或目的端口任一满足均可)
http.request.method

类似程序

  • Fiddler: Http 抓包程序,特点是可以用 MITM 抓 https 的明文(需要安装证书)。但要求程序使用 Fiddler 提供的 HTTP 代理连接网络(部分程序支持设置代理或使用系统代理,不支持代理设置的程序可以用 Proxifier 之类工具强制其通过代理连接 )。
  • tcpdump: Linux terminal 的抓包程序。
  • tcpflow

Last update: 2020-09-02 03:04:00 UTC