wireshark过滤
Wireshark是一款强大的网络封包分析软件,常用于网络故障排查、网络安全分析和协议学习。其过滤功能允许用户快速定位并分析感兴趣的网络流量。本文将详细介绍Wireshark过滤语法的各种用法。 1. **IP过滤**: - `ip.src eq 192.168.1.107` 或 `ip.dst eq 192.168.1.107`:过滤出源IP或目标IP为指定地址的包。 - `ip.addr eq 192.168.1.107`:同时显示源IP和目标IP为该地址的包。 2. **端口过滤**: - `tcp.port eq 80`:显示所有TCP端口80的通信。 - `tcp.port >= 1 and tcp.port <= 80`:显示TCP端口在1到80之间的所有通信。 - `tcp.dstport == 80`:只显示TCP协议的目标端口为80的包。 - `tcp.srcport == 80`:只显示TCP协议的源端口为80的包。 - `udp.port eq 15000`:过滤UDP端口15000的通信。 3. **协议过滤**: - `tcp`,`udp`,`arp`,`icmp`,`http`,`smtp`,`ftp`,`dns`,`msnms`,`ip`,`ssl`,`oicq`,`bootp`等:分别过滤指定协议的包。 - `not arp`:排除ARP协议的包。 4. **MAC地址过滤**: - `eth.dst == A0:00:00:04:C5:84`:过滤目标MAC地址为A0:00:00:04:C5:84的包。 - `eth.src eq A0:00:00:04:C5:84`:过滤源MAC地址为A0:00:00:04:C5:84的包。 - `eth.addr eq A0:00:00:04:C5:84`:过滤源MAC和目标MAC都等于A0:00:00:04:C5:84的包。 - 使用`lt`,`le`,`eq`,`gt`,`ge`,`ne`操作符进行大小比较。 5. **包长度过滤**: - `udp.length == 26`:过滤UDP包总长度(包括头部和数据)为26的包。 - `tcp.len >= 7`:过滤TCP数据部分(不包括TCP头部)长度大于等于7的包。 - `ip.len == 94`:过滤IP包总长度(不包括以太网头部)为94的包。 - `frame.len == 119`:过滤整个数据包(从以太网头部开始)长度为119的包。 6. **HTTP模式过滤**: - `http.request.method == "GET"` 或 `http.request.method == "POST"`:根据HTTP请求方法过滤。 - `http.contains("GET")` 或 `http.contains("HTTP/1.")`:通过包含特定字符串过滤。 - 结合请求方法和特定字段,如`http.request.method == "GET" && http.contains("Host: ")`。 7. **TCP参数过滤**: - `tcp.flags`:查看包含特定TCP标志的包。 - `tcp.flags.syn == 0x02`:显示包含SYN标志的TCP包。 - `tcp.window_size == 0 && tcp.flags.reset != 1`:过滤窗口大小为0且不包含RST标志的TCP包。 8. **内容过滤**: - `tcp[20]`,`tcp[20:]`,`tcp[20:8]`:从指定位置提取数据。 - `udp[8:3]==81:60:03`,`udp[8:1]==32`:检查特定偏移量处的连续数据是否匹配。 - `eth.addr[0:3]==00:06:5B`:检查以太网地址的前三个字节是否匹配。 通过这些过滤表达式,Wireshark用户可以精确地定位网络流量中的特定信息,从而高效地进行网络分析。了解并熟练掌握这些过滤语法,对于排查网络问题、优化网络性能以及深入理解网络协议具有重要意义。