wireshark 过滤分析

本文详细介绍Wireshark中各种过滤器的使用方法,包括IP、端口、协议、包长度、HTTP模式过滤等,帮助读者掌握精确抓取和显示网络数据包的技巧。

一、IP过滤:包括来源IP或者目标IP等于某个IP

比如:ip.src addr==192.168.0.208 or ip.src addr eq 192.168.0.208 显示来源IP
ip.dst addr==192.168.0.208 or ip.dst addr eq 192.168.0.208 显示目标IP


二、端口过滤:

比如:tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80
过滤端口范围
tcp.port >= 1 and tcp.port <= 80


三、协议过滤:

tcpudp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
等等
排除ssl包,如!ssl 或者 not ssl


四、包长度过滤:

比如:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后


五、http模式过滤:

例子:
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
// GET包包含某头字段
http.request.method == “GET” && http contains “Host: ”
http.request.method == “GET” && http contains “User-Agent: ”
// POST包包含某头字段
http.request.method == “POST” && http contains “Host: ”
http.request.method == “POST” && http contains “User-Agent: ”
// 响应包包含某头字段
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: ”


六、连接符

   and / or


七、表达式:

!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)


八、wireshark filter contains 过滤器的用法

 

1.expert.message是用来对info信息过滤,主要配合contains来使用

2.过滤TCP协议端口5000,且TCP数据中包含有连续的数据:0x00 00 02 00 00 00 00 01 的正确写法如下:

tcp.port==5000 and tcp contains 00-00-02-00-00-00-00-01
不能写为:   tcp.port==5000 and tcp.data contains 0000020000000001
也不能写为: tcp.port==5000 and tcp contains "00-00-02-00-00-00-00-01"
也不能写为: tcp.port==5000 and tcp contains 0x000002

130604:
可以用:ip.addr == 192.168.0.191 && tcp.port==5000 &&   tcp  contains a7-d8-c1
可以用:ip.addr == 192.168.0.191 && tcp.port==5000 &&   data contains a7-d8-c1
不能用:ip.addr == 192.168.0.191 && tcp.port==5000 &&   tcp.data contains a7-d8-c1

九、抓取过滤规则

9.1 只抓取HTTP报文

tcp port 80

解析:上面是只抓取tcp 协议中80端口的包,大部分Web网站都是工作在80端口的,如果碰到了81端口呢?可以使用逻辑运算符or呗!如 tcp port 80 or tcp port 81

9.2 .只抓取arp报文

ether proto 0x0806

解析:ether表示以太网头部,proto表示以太网头部proto字段值为0x0806,这个字段的值表示是ARP报文,如果的ip报文此值为0x8000

9.3 只抓取与某主机的通信

host www.cnblogs.com

只抓取和博客园服务器的通信,src表示源地址,dst表示目标地址

十、显示过滤规则

只是将已经抓取到的包进行过滤显示。

在下方的输入框添入相应的规则点击apply即可,如果需要清除这一次的显示过滤点击Clear即可

1.只显示HTTP报文

tcp.port == 80

2.只显示ARP报文

eth.type == 0x806

3.只显示与某主机的通信

ip.addr == 42.121.252.58

 

<think>嗯,用户想要查找Wireshark过滤分析TCP三次握手异常的方法。之前给出的引用里提到TCP三次握手丢包问题,用户可能正在排查网络故障,需要具体的技术指导。 用户提供的两个引用很有价值。引用1详细描述了三次握手的三种丢包场景,这正是用户关心的核心问题;引用2展示了Wireshark的DNS过滤技巧,其语法结构可以借鉴到TCP分析中。不过用户明确表示这些引用仅供参考,重点还是上次的问题和回答记录。 翻看对话历史,发现用户对技术细节要求很高,之前特别强调过LaTeX格式和引用规范。这次提问虽然简短,但隐含了三个关键需求:异常场景分类(SYN/SYN-ACK/ACK丢包)、对应过滤表达式、结果分析方法。需要把专业内容转化成实用步骤。 注意到引用1用"大白鲨"比喻Wireshark很生动,可以保留这个比喻增加可读性。技术层面要重点说明: - SYN丢包用`tcp.flags.syn==1 and tcp.flags.ack==0 and !tcp.analysis.retransmission`捕捉首次请求 - 超时重传机制需要配合时间筛选 - 快速重传场景要对比Seq序号 用户可能是运维或开发人员,语气比较急切,回复应该直接切入主题。最后补充的拓展问题特意选了协议原理(如SYN Flood防御)和实战技巧(如IO图表),这样既解答当前问题,又预留了深入学习入口。 </think>以下是针对TCP三次握手异常的Wireshark过滤分析方法,结合实战场景说明: ### 一、基础过滤指令(核心场景) | **异常场景** | **过滤表达式** | **分析要点** | |----------------------|-------------------------------------------------------------------------------|------------------------------------------| | **第一次握手SYN丢包** | `tcp.flags.syn==1 and tcp.flags.ack==0 and !tcp.analysis.retransmission` | 筛选未重传的初始SYN包,观察是否无响应[^1] | | **第二次握手丢包** | `tcp.flags.syn==1 and tcp.flags.ack==1 and tcp.analysis.retransmission` | 定位重传的SYN-ACK包(服务器端重传)[^1] | | **第三次握手ACK丢包** | `tcp.seq==1 and tcp.ack==1 and tcp.len==0 and tcp.analysis.retransmission` | 捕获客户端重传的ACK包 | ### 二、高级排查技巧 1. **超时重传分析** ```wireshark tcp.analysis.retransmission && (tcp.flags.syn==1 || tcp.flags.ack==1) ``` - 显示所有SYN/SYN-ACK/ACK的重传包 - 统计`Delta time`列判断重传间隔(典型值:1s/3s/7s) 2. **连接建立失败定位** ```wireshark !(tcp.flags.fin==1 || tcp.flags.rst==1) && tcp.analysis.retransmission ``` - 过滤从未完成握手的异常流 3. **快速重传检测** ```wireshark tcp.analysis.fast_retransmission && tcp.seq==0 ``` - 识别因连续丢包触发的SYN快速重传 ### 三、实战分析流程 1. **捕获完整流量** 启动Wireshark捕获时勾选`Enable network name resolution`解析IP 2. **定位问题流** ```wireshark tcp && (ip.addr == client_ip && ip.addr == server_ip) ``` 添加时间列(`Time since previous packet`)观察握手时序 3. **异常诊断** - **SYN无响应**:客户端持续重传SYN→检查防火墙/路由 - **SYN-ACK重传**:服务端未收到ACK→抓包对比两端流量 - **ACK丢失**:连接半开启→检查`netstat -s | grep "packet reassembles failed"` > **注**:需配合**统计→TCP流图**可视化握手过程,异常流会显示中断的箭头[^2]。 --- ### 相关问题 1. 如何用Wireshark过滤分析TCP连接中的**SYN Flood攻击**? 2. **TLS握手失败**在Wireshark中如何通过过滤表达式快速定位? 3. 为什么Wireshark显示TCP校验和错误?如何区分**真实错误**与**校验和卸载**导致的伪错误?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值