Wireshark 是一个强大的网络分析工具,支持使用过滤器来筛选数据包,帮助用户高效地分析和排查网络问题。Wireshark 的过滤命令可以分为多种类型,以下是按功能分类的常见过滤命令,并以表格的形式展示:
Wireshark 过滤命令按功能分类
类别 | 过滤命令 | 描述 |
---|---|---|
协议过滤 | http |
过滤 HTTP 协议的数据包 |
tcp |
过滤 TCP 协议的数据包 | |
udp |
过滤 UDP 协议的数据包 | |
ip |
过滤 IPv4 协议的数据包 | |
ipv6 |
过滤 IPv6 协议的数据包 | |
dns |
过滤 DNS 协议的数据包 | |
icmp |
过滤 ICMP 协议的数据包 | |
arp |
过滤 ARP 协议的数据包 | |
地址过滤 | ip.addr == 192.168.1.1 |
过滤源或目的地址为指定 IP 的数据包 |
eth.addr == 00:11:22:33:44:55 |
过滤源或目的 MAC 地址为指定地址的数据包 | |
ip.src == 192.168.1.1 |
过滤源 IP 地址为指定地址的数据包 | |
ip.dst == 192.168.1.1 |
过滤目的 IP 地址为指定地址的数据包 | |
eth.src == 00:11:22:33:44:55 |
过滤源 MAC 地址为指定地址的数据包 | |
eth.dst == 00:11:22:33:44:55 |
过滤目的 MAC 地址为指定地址的数据包 | |
端口过滤 | tcp.port == 80 |
过滤 TCP 端口为 80 的数据包(如 HTTP) |
udp.port == 53 |
过滤 UDP 端口为 53 的数据包(如 DNS) | |
tcp.dstport == 443 |
过滤目的端口为 443 的 TCP 数据包(如 HTTPS) | |
tcp.srcport == 12345 |
过滤源端口为 12345 的 TCP 数据包 | |
数据包内容过滤 | http contains "GET" |
过滤包含特定内容(如 GET 请求)的 HTTP 数据包 |
tcp.payload contains "username" |
过滤 TCP 数据包中包含 "username" 字符串的内容 | |
data.len > 1000 |
过滤数据包大小超过 1000 字节的数据包 | |
frame contains "password" |
过滤数据包中包含 "password" 字符串的数据包 | |
时序过滤 | frame.time >= "2025-01-01 00:00:00" |
过滤在特定时间之后捕获的数据包 |
frame.time <= "2025-01-01 12:00:00" |
过滤在特定时间之前捕获的数据包 | |
协议状态过滤 | tcp.flags.syn == 1 && tcp.flags.ack == 0 |
过滤 TCP 三次握手的 SYN 数据包 |
tcp.flags.fin == 1 |
过滤 TCP 连接终止时的 FIN 数据包 | |
tcp.analysis.retransmission |
过滤 TCP 重传的数据包 | |
错误过滤 | icmp.type == 3 |
过滤 ICMP 类型为目的不可达的报文 |
tcp.analysis.flags |
过滤具有 TCP 分析标志(如重传)的数据包 | |
长度过滤 | frame.len == 64 |
过滤数据包长度为 64 字节的数据包 |
ip.len >= 1500 |
过滤 IP 数据包长度大于等于 1500 字节的数据包 | |
自定义过滤 | not ip.addr == 192.168.1.1 |
过滤所有 IP 地址不为 192.168.1.1 的数据包 |
tcp.stream eq 1 |
过滤特定 TCP 流的数据包 | |
http.request.method == "POST" |
过滤 HTTP 请求方法为 POST 的数据包 | |
http.response.code == 200 |
过滤 HTTP 响应状态码为 200 的数据包 |
说明:
- 协议过滤:可以直接过滤出某个协议的所有数据包,便于集中分析某一类网络通信。
- 地址过滤:通过源地址或目的地址过滤数据包,帮助定位某个设备或主机的网络活动。
- 端口过滤:根据端口号过滤流量,适用于分析特定服务(如 HTTP、HTTPS、DNS)相关的通信。
- 数据包内容过滤:可以过滤包含特定数据内容的数据包,这对于协议分析非常重要。
- 时序过滤:基于时间戳进行过滤,适用于分析在特定时间段内发生的网络事件。
- 协议状态过滤:通过过滤特定的协议标志或状态,帮助分析连接的不同阶段或故障。
- 错误过滤:适用于查找网络问题或异常,比如分析丢包、重传等情况。
- 长度过滤:按数据包长度筛选流量,适用于分析异常大小的数据包。
- 自定义过滤:支持更复杂的逻辑操作,如排除特定 IP 或端口等。
Wireshark 过滤器非常强大,熟练掌握这些过滤命令能大大提高网络问题排查和数据包分析的效率。
Wireshark 高级过滤命令 的表格化展示,涵盖了多种高级过滤条件,帮助你更加精确地分析和诊断网络流量。
类别 | 过滤命令 | 描述 |
---|---|---|
逻辑操作符 | and |
逻辑与运算符,用于组合多个过滤条件 |
or |
逻辑或运算符,用于组合多个过滤条件 | |
not |
逻辑非运算符,取反一个过滤条件 | |
== |
等于运算符,检查字段是否与给定值相等 | |
!= |
不等于运算符,检查字段是否与给定值不相等 | |
> |
大于运算符,检查字段值是否大于指定值 | |
< |
小于运算符,检查字段值是否小于指定值 | |
>= |
大于等于运算符,检查字段值是否大于或等于指定值 | |
<= |
小于等于运算符,检查字段值是否小于或等于指定值 | |
协议过滤 | http |
过滤 HTTP 协议的数据包 |
tcp |
过滤 TCP 协议的数据包 | |
udp |
过滤 UDP 协议的数据包 | |
icmp |
过滤 ICMP 协议的数据包 | |
dns |
过滤 DNS 协议的数据包 | |
ftp |
过滤 FTP 协议的数据包 | |
ssl |
过滤 SSL/TLS 协议的数据包(通常用于加密通信) | |
http.request.uri contains "login" |
过滤 HTTP 请求中 URI 包含 "login" 的数据包 | |
时间过滤 | frame.time >= "2025-01-01 00:00:00" |
过滤捕获时间大于等于指定时间的数据包 |
frame.time <= "2025-01-01 23:59:59" |
过滤捕获时间小于等于指定时间的数据包 | |
frame.time > "2025-01-01 00:00:00" and frame.time < "2025-01-01 12:00:00" |
过滤时间范围内的数据包 | |
字段值过滤 | ip.addr == 192.168.1.1 |
过滤源或目的地址为 192.168.1.1 的数据包 |
tcp.srcport == 443 |
过滤源端口为 443 的 TCP 数据包 | |
tcp.dstport == 80 |
过滤目的端口为 80 的 TCP 数据包 | |
ip.src == 192.168.1.1 |
过滤源 IP 地址为 192.168.1.1 的数据包 |
|
ip.dst == 192.168.1.1 |
过滤目的 IP 地址为 192.168.1.1 的数据包 |
|
eth.addr == 00:11:22:33:44:55 |
过滤源或目的 MAC 地址为 00:11:22:33:44:55 的数据包 |
|
高级协议过滤 | tcp.flags.syn == 1 and tcp.flags.ack == 0 |
过滤 TCP 三次握手中的 SYN 数据包(TCP 连接请求) |
tcp.flags.fin == 1 |
过滤 TCP 连接终止时的 FIN 数据包 | |
tcp.analysis.retransmission |
过滤 TCP 重传的数据包 | |
tcp.analysis.out_of_order |
过滤 TCP 顺序错误的数据包 | |
icmp.type == 3 |
过滤 ICMP 类型为目的不可达的报文 | |
http.response.code == 200 |
过滤 HTTP 响应代码为 200 的数据包(成功响应) | |
TCP 流量过滤 | tcp.stream == 1 |
过滤指定 TCP 流的数据包 |
tcp.stream eq 1 |
等效于 tcp.stream == 1 ,过滤指定 TCP 流的数据包 |
|
tcp.seq == 12345 |
过滤 TCP 序列号为指定值的数据包 | |
tcp.ack == 12345 |
过滤 TCP 确认号为指定值的数据包 | |
数据包内容过滤 | http contains "login" |
过滤 HTTP 数据包中包含 "login" 字符串的内容 |
tcp.payload contains "password" |
过滤 TCP 数据包中包含 "password" 字符串的内容 | |
data.len > 1000 |
过滤数据长度大于 1000 字节的数据包 | |
frame contains "error" |
过滤数据包中包含 "error" 字符串的内容 | |
网络错误过滤 | tcp.analysis.flags |
过滤具有 TCP 分析标志的数据包(如重传、缺失数据包等) |
icmp.type == 11 |
过滤 ICMP 类型为超时的报文(TTL 超时) | |
icmp.type == 3 and icmp.code == 1 |
过滤 ICMP 类型为目的不可达,代码为网络不可达的报文 | |
网络流量统计 | frame.len > 1500 |
过滤大于 1500 字节的数据包(可能是以太网帧过大或分片) |
ip.len > 1500 |
过滤 IP 数据包长度超过 1500 字节的流量 | |
多协议过滤 | http and ip.src == 192.168.1.1 |
过滤 HTTP 协议且源 IP 为 192.168.1.1 的数据包 |
tcp and udp |
过滤所有 TCP 和 UDP 协议的数据包 | |
组合字段过滤 | tcp.seq > 1000 and tcp.ack == 2000 |
过滤序列号大于 1000 且确认号为 2000 的 TCP 数据包 |
ip.addr == 192.168.1.1 and tcp.port == 443 |
过滤 IP 地址为 192.168.1.1 且端口为 443(HTTPS) 的数据包 |
|
自定义过滤 | not ip.addr == 192.168.1.1 |
过滤 IP 地址不为 192.168.1.1 的数据包 |
http.request.method == "POST" |
过滤 HTTP 请求方法为 POST 的数据包 | |
http.response.code != 404 |
过滤 HTTP 响应状态码不是 404 的数据包 |
说明:
- 逻辑操作符:通过
and
,or
,not
等运算符组合多个条件,以实现复杂的过滤逻辑。 - 协议过滤:可以过滤出特定协议的流量,例如 HTTP、TCP、UDP 等。
- 字段值过滤:基于特定字段的值进行过滤,比如 IP 地址、端口号、TCP 序列号等。
- 高级协议过滤:通过 TCP 和 ICMP 等协议的标志位来筛选特定的状态或事件(如 SYN, FIN, 重传等)。
- TCP 流量过滤:基于 TCP 流的特性进行过滤,例如过滤特定的 TCP 流或序列号。
- 数据包内容过滤:可以基于数据包中的具体内容进行过滤,适用于字符串匹配。
- 网络错误过滤:用于查找异常或错误的网络流量,例如 ICMP 错误或 TCP 分析标志。
- 网络流量统计:通过数据包的大小等属性进行流量统计分析。
- 多协议过滤:结合多种协议进行过滤,帮助分析混合协议流量。
- 组合字段过滤:通过组合多个字段来实现更精细的筛选条件。
这些高级过滤命令提供了非常强大的功能,能够帮助你在 Wireshark 中快速定位和分析复杂的网络流量。
标签:1.1,192.168,TCP,过滤,tcp,数据包,Wireshark From: https://www.cnblogs.com/suv789/p/18658305