一站式学习Wireshark(十):应用Wireshark显示过滤器分析特定数据流(下)
介绍
掌握显示过滤器对于网络分析者来说是一项必备的技能。这是一项大海捞针的技巧。学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间。
与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wireshark特定的格式。除了某些特例之外,Wireshark显示过滤器和捕捉过滤器有很大的区别。
更多信息
过滤HTTP数据流:
在排查网页浏览器会话或检查网速过慢问题时,对浏览器会话进行过滤就显得尤为重要。过滤HTTP数据流有两种方式:
http
tcp.port==xx(xx表示所使用的HTTP端口)
第二种过滤方法更加有效。让我们通过分别对网页浏览会话应用两个过滤条件来比较一下:
基于TCP端口号的应用过滤:
本例中的抓包文件包含与网站www.wireshark.org的链接以及请求下载Wireshark的请求。我们使用tcp.port==80的显示过滤器并且发现,确实,所有报文都符合条件,如下图所示。很好这就是我们想要的结果。
我们仔细看报文20的Protocol列,Wireshark并没有在报文中看到任何HTTP命令或回复,因此HTTP协议分析器没有被应用于此报文。它只是一个TCP报文(TCP ACK, FIN, RST,以及三路TCP握手信号都列成TCP)。
如果你想要查看TCP连接建立,维护以及关闭报文,就应该使用上述过滤条件(并且你会一直看到这些TCP报文)。
谨慎使用基于TCP的应用名过滤:
现在来看一下对数据流应用http过滤条件的情况。下图中,你会看到Wireshark显示了13,353个报文。这些是Protocol列中包含HTTP的报文。
这是整个网站浏览会话的一部分,使用HTTP过滤条件我们无法检测出TCP错误,对于应用永远是使用端口号过滤器优于TCP。
小贴士:
不幸的是,Wireshark对于HTTP数据流的缺省过滤是http。可以考虑将缺省对HTTP数据流的过滤改为基于端口号。
按照某一IP地址或主机过滤报文:
对于IPv4数据流,我们使用字段名ip.src,ip.dst,ip.addr;对于IPv6数据流,使用ipv6.src,ipv6.dst,ipv6.host以及ipv6.addr。注意当你在Packet Details面板中点击IP地址时,将会看到它们被称为:ip.src,ip.dst, ipv6.src或ipv6.dst。字段名ip.host和ipv6.host,ip.addr以及ipv6.addr不在报文里。
ip.host和ipv6.host过滤条件在IPv4/IPv6源和目的地址字段查找解析为指定主机名的IPv4或IPv6地址。ip.addr==[address]和ipv6.addr==[address]过滤条件在IPv4/IPv6源和目的地址字段查找指定IPv4/IPv6地址。
- 例如:ip.addr==10.3.1.1
显示在IP源地址字段或IP目的地址字段包含10.3.1.1的帧。
- 例如:!ip.addr==10.3.1.1
显示除了在IP源地址字段或IP目的地址字段包含10.3.1.1以外的帧。
- 例如:ipv6.addr==2406:da00:ff00::6b16:f02d
显示以2406:da00:ff00::6b16:f02d为源地址或目的地址的帧
- 例如:ip.src==10.3.1.1
显示所有来自10.3.1.1的数据流。
- 例如:ip.dst==10.3.1.1
显示所有发往10.3.1.1的数据流
- 例如:ip.host==www.wireshark.org
显示所有解析为www.wireshark.org的IP地址。
按照某一IP地址范围过滤报文:
可以使用>或<比较运算符或逻辑运算符&&查找某一地址范围内的报文。
- 例如:ip.addr>10.3.0.1&&ip.addr<10.3.0.5
显示来自或发往10.3.0.2,10.3.0.3,10.3.0.4的数据流。
- 例如:(ip.addr>=10.3.0.1&&ip.addr<=10.3.0.6)&&!ip.addr==10.3.0.3
显示来自或发往10.3.0.1,10.3.0.2,10.3.0.4,10.3.0.5,10.3.0.6的数据流,10.3.0.3排除在外。
- ipv6.addr>=fe80::&&ipv6.addr
显示IPv6地址从0xfe80到0xfec0开头的数据流。
按照某一IP子网过滤报文:
可以通过ip.addr字段名定义一个子网。这种格式使用IP地址后跟斜杠以及一个后缀,表明IP地址中定义的网络部分的比特数。
- 例如:ip.addr==10.3.0.0/16
显示在IP源地址或目的地址字段以10.3开头的数据流。
- 例如:ip.addr==10.3.0.0/16 && !ip.addr==10.3.1.1
显示除了10.3.1.1以外,在IP源地址或目的地址字段以10.3开头的数据流。
- 例如:!ip.addr==10.3.0.0/16 && !ip.addr==10.2.0.0/16
显示所有数据流,除了在IP源地址或目的地址字段以10.3和10.2开头的数据流.
使用右键|作为过滤条件:
如下图所示:在某一帧的Packet Details面板,扩展HTTP部分,右键Request URI一行,选择Apply as Filter | Selected。
Wireshark会创建合适的显示过滤条件(http.request.rui==”/”)并应用于抓包文件。之后过滤得到2个报文,显示用户从两个不同的IP地址访问主页内容,如下图所示。
如果你想排除这类HTTP请求,只要在过滤条件前加!或not。你可以通过右键GET请求并选择Apply as Filter | Not Selected。
not http.request.uri==”/”
如果你感兴趣的是其余HTTP GET请求,可对上述过滤条件扩展:定位在一个HTTP GET请求报文,扩展HTTP部分,右键GET并选择Apply as Filter,这一次选择and Selected选项。之后,显示过滤器显示如下:
(not http.request.uri==”/”)&&(http.request.method==“GET”)。
现在可以看到除了default page request(/)之外的所有HTTP GET请求。
过滤单个TCP或UDP会话:
当你想要观察客户端应用于服务器进程之间的通讯,你需要查找的是一个“会话“。会话是基于客户端应用和服务器进程的IP地址和端口号。通常抓包文件中会包含数百个会话,了解如何快速定位及过滤无疑是很有帮助的。
以下两种常用方式可从抓包文件中提取单一TCP或UDP会话:
- 通过在Packet List面板右键一个TCP或UDP报文并选择Conversation Filter | [TCP|UDP].
- 通过在Packet List面板右键一个TCP或UDP报文并选择Follow [TCP|UDP] Stream。
右键选择Conversation Filter:
通过在Packet List面板右键一个TCP或UDP报文并选择Conversation Filter | TCP,如下图所示:
Wireshark对数据流创建并应用以下过滤条件:
(ip.addr eq 24.6.173.220 and ip.addr eq 184.84.222.48) and (tcp.port eq 19953 and tcp.port eq 80)。
同样的方法可应用于基于IP地址,以太网地址,UDP地址/端口号结合的会话。
右键选择Follow a Stream:
要查看应用命令以及会话中的交换数据,通过在Packet List面板右键一个TCP或UDP报文并选择Follow [TCP|UDP] Stream,如下图所示。如果选择Follow UDP Stream,显示过滤条件会基于IP地址和端口号。如果选择Follow TCP Stream, 显示过滤条件会基于TCP Stream Index number。
错误的用法导致不work:
错误:ip.addr != 10.2.2.2
显示在IP源地址或IP目的地址不包含10.2.2.2的报文。只要在源或目的IP地址不为10.2.2.2,报文就会被显示出来。这时隐含的或会导致实际上并未过滤任何报文。
正确:!ip.addr == 10.2.2.2
显示IP源地址和IP目的地址都不包含10.2.2.2的报文。
错误:!tcp.flags.syn==1
显示所有不含TCP SYN bit设置为1的报文。其他协议报文,必须UDP和ARP报文也符合这一过滤条件,因为它们的TCP SYN bit没有设置为1。
正确:tcp.flags.syn!=1
只显示包含SYN设置为0的TCP报文。
小贴士:
当你知道只有一个字段符合你的过滤字段名的时候,不要害怕使用!=运算符。有时,这是最好用的过滤运算符。
一站式学习Wireshark(十):应用Wireshark显示过滤器分析特定数据流(下)的更多相关文章
- 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)
介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...
- Hibernate学习---第十三节:hibernate过滤器和拦截器的实现
一.hibernate 过滤器 1.在持久化映射文件中配置过滤器,代码如下: <?xml version="1.0"?> <!DOCTYPE hibernate- ...
- 【Hadoop学习之十二】MapReduce案例分析四-TF-IDF
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 概念TF-IDF(term fre ...
- 捕捉过滤器(CaptureFilters)和显示过滤器(DisplayFilters)--Wireshark
Wireshark的基本使用——过滤器 前言 网络上关于Wireshark的教程已有不少,博主就简单介绍一下Wireshark分析数据包时最重要的技巧之一的过滤器..一次性嗅探到的数据包有很多,想要高 ...
- 一站式学习Wireshark(转载)
一站式学习Wireshark(一):Wireshark基本用法 2014/06/10 · IT技术 · 4 评论 · WireShark 分享到: 115 与<YII框架>不得不说的故事— ...
- wireshark基础学习—第四部分wireshark过滤器总结
这两天一直在熟悉wireshark的过滤器语法规则,以前也接触过这个工具,但只是学校老师教的如何去选择一个接口进行抓取,以及如何去分析一个包的数据.可惜当时对此也没有过多深入.对于我当前,并未接触太多 ...
- wireshark捕获/显示过滤器表达式书写规律说明
一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...
- wireshark显示过滤器的几种用法(转自他人博客)
本文章转自:http://blog.51cto.com/houm01/1872652 几种条件操作符 == eq 等于 ip.addr == 192.168.0.1 ip.addr ...
- 在Wireshark中使用过滤器——显示过滤器
在Wireshark运行过程中选择搜索(Ctrl-F),第一个默认的搜索选项就是显示过滤器. 显示过滤器用于捕获文件,用来告诉Wireshark只显示那些符合过滤条件的数据包. 显示过滤器比捕获过滤器 ...
随机推荐
- java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1
String sql1 = "insert into TEST_RELEVANCEEXPORT" + " (ID, YYCSDM, YYCSMC, ...
- Redis客户端
1.自带的: Redis-cli 2.redis-desktop-manager-0.7.9.809 是一个图形化客户端 但是不支持集群 **由于linux防火墙默认开启,redis的服务端口63 ...
- 【转】一个对 Dijkstra 的采访视频
一个对 Dijkstra 的采访视频 (也可以访问 YouTube 或者从源地址下载 MPEG1,300M) 之前在微博上推荐了一个对 Dijkstra 的采访视频,看了两遍之后觉得实在很好,所以再正 ...
- Linux中断 - tasklet
一.前言 对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),属于不那么紧急需要处理的事情被推迟执行,我们称之deferable task,或者叫做bott ...
- golang(5)使用beego 开发 api server 和前端同学拆分开发,使用swagger
1,beego api Swagger 是一个规范和完整的框架,用于生成.描写叙述.调用和可视化 RESTful 风格的 Web 服务.整体目标是使client和文件系统作为服务器以相同的速度来更新. ...
- 机器学习(6): 层次聚类 hierarchical clustering
假设有N个待聚类的样本,对于层次聚类来说,步骤: 1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度: 2.寻找各个类之间最近的两个类, ...
- Apache 隐藏 index.php,如将 tp5.com/index.php/hello/123 变成 tp5.com/hello/123
以Apache为例,需要在index.php入口文件的同级添加.htaccess文件,内容如下: <IfModule mod_rewrite.c> Options +Follo ...
- php长链接
php 连接 mysql 是分为两步走的第一步:建立 php 到 mysql 服务器的 tcp/ip 通道 物理通道第二步:登录 mysql 服务器,建立到数据库的通道 逻辑通道 无论是长连接还是短连 ...
- Windows Store Apps 开发转载
懒得写了,就直接记录转载一下文章地址吧. 如何为应用定义全局默认字体:http://blogs.msdn.com/b/gautamdh/archive/2014/03/16/how-to-change ...
- hdoj1257 最少拦截系统
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...