Wireshark入门与进阶系列(二)
摘自http://blog.csdn.net/howeverpf/article/details/40743705
Wireshark入门与进阶系列(二)
“君子生非异也,善假于物也”---荀子
本文由CSDN-蚍蜉撼青松 【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!
- 我们希望捕获的数据包中对我们有用的包的比例要能更高,这就需要设定一些捕获的过滤规则;
- 我们希望在捕获数据包的同时将数据包保存到指定的文件中;
- 我们希望当满足某个条件时,Wireshark会自动停止抓包,而不需要我们手动停止;
- 我们希望捕获的实时展示最新捕获的数据包,并看到各类网络数据包的数量统计信息;
- 我们希望将物理层、网络层、传输层的数字地址转换成可读性更好的文字信息;
以上这些需求,都可以通过设置Capture Options来满足,故此,一个相对上一篇博文文更完整的抓包流程是:
- “启动软件-->设置捕获选项并开始抓包-->停止抓包-->数据包保存”
其他的步骤基本没变,只是把简单的“选定网卡”进化成了更为复杂的“设定捕获选项”。在这篇博文里,就让我们来了解一下这个Capture Options。
【本篇大部分内容参考Wireshark自带的帮助手册,需要却没有的可以下载《Wireshark用户指南1.10(英文原本)》,或是《Wireshark用户指南老版(中文译本)》】
二、Capture Options(捕获选项)各项的含义与设定
图2-1 Capture Options(数据包捕获选项)弹窗
通过上图,可以看到,Capture Options弹窗根据设置内容的不同,大致可以分为五个区域【图2-1中分别用五个黑色圆角方框标注】。下面按照从上到下,从左到右的顺序,分区域依次介绍各个选项都有什么涵义,设置与否对我们有何影响。
2.1 Capture[抓包相关设定]
图2-2 数据包捕获相关设定
这个区域的选项都是会对数据包的捕获产生直接影响的,按照自上而下的顺序,具体来说他们包括,
2.1.1 网卡列表
位于此区域最上方,它的作用是显而易见的,你想在哪块网卡上抓包,就勾选该网卡前面的复选框。可多选,至少选一个!
2.1.2 选项:Capture on all interfaces
勾选此选项后,意味着你要Wireshark同时捕获本机所有网卡上的网络数据包【这和你在上方的列表中勾选了所有的网卡是等价的】;反之,则只捕获网卡列表中指定网卡上的数据包。
2.1.3 选项:Use promiscuous mode on all interfaces
勾选此选项后,意味着你要Wireshark在抓包的时候让网卡开启混杂模式。【简单点说,开启混杂模式的网卡可以捕获所有流过该网卡的帧,不开启则只能捕获广播帧以及发给该网卡的帧。更详细的关于以太网卡几种工作模式的介绍,参看《网卡的工作模式》】
2.1.4 按钮:Manage Interfaces
如果你想增、删“网卡列表”里的条目,可以点这个按钮。【其实这里面还可以设置管道以及远程网卡作为数据包来源,我也没太用这功能,就不多说了】
2.1.5 输入框与按钮:Capture Filter
如果你想设置数据包捕获的过滤条件(官方一点,好像多称为过滤器),并且你碰巧对Tcpdump的表达式还有过一点了解,你可以直接在此按钮旁边的输入框中按照语法设置过滤表达式,类似于我在图2-1中输入的:
- host 192.168.1.17 and port 110
当然,很可能你对过滤表达式完全不了解,那么你也可以直接点这个按钮,弹出下面这个窗口,里面有些现成的常用过滤器,
图2-3 Capture Filter弹窗
我们从这些可选的过滤器里任意选一条,比方说上图2-3中选中的“IP address
192.168.0.1”,可以在下方看到,“IP address
192.168.0.1”只是过滤器的一个直观、容易理解的名字,它其实对应着过滤表达式“host
192.168.0.1”。图2-3这个弹窗里已经有最简单的,包括“只要IP包”、“只要UDP包”、“只要HTTP包”、“不要ARP包”等最常用的
过滤器。利用它我们还可以增删改一些常用的过滤器,当然前提是你得学习一下怎么写过滤表达式。【由于与Tcpdump之间高度的相似性,想要学习过滤表达
式的语法,可以参考博文《Tcpdump的详细用法》,当然也可以直接下载资料《WinPcap_BPF_Fiter过滤规则设置说明文档.pdf》】
2.1.6 按钮:Compile selected BPFs
这个一开始我也没搞清楚,还以为是要让过滤器生效,必须在写好过滤表达式后点这个,所以就每次都顺手点上一记~~~也是写本文的时候才发现,不点这个也
可以生效……查阅Wireshark自带的帮助手册后明白,它只是一个帮助你把过滤表达式编译成BPF代码形式(看起来有点像汇编代码)的工具而已。你要
是只是用Wireshark,不自己编写基于WinPcap的嗅探工具,我估计应该用不到这个。
2.2 Capture Files[存包相关设定]
这个区域的选项仅当你想要自动存包时才需要设置。实际应用中,有些情况下只是一个简单的临时分析,是不需要存包的;也有些情况是我们先实时捕获放在缓存,先大致看过后再选择性地存文件。这两种情况下,都不用设置这个区域的选项。
2.2.1 输入框:File
简单,直接通过输入或是使用后方的Brose按钮,指定存放的文件名及其完整路径。默认是空白,意味着捕获的数据包存放在默认缓存目录下的临时文件中。
2.2.2 选项:Use pcap-ng format
勾选这个选项,意味着你希望Wireshark存文件时使用pcapng格式【欲知详情,参看http://wiki.wireshark.org/Development/PcapNg】。当同时指定在多块网卡上抓包时,必须使用pcapng格式存文件;出于兼容考虑,单块网卡上的抓包我不建议勾选。
2.2.3 选项:Use multiple files
勾选此选项后,Wireshark会使用多个文件存储数据包;反之,则默认使用单文件存储。使用单文件还是多文件,取决于数据量的大小、你的目的等多个要素。
2.2.4 选项:Next file every N megabytes(s)/minute(s)
使用多个文件存储时,必须指定切换下一个文件的条件。切换条件有两种形式,一是每当捕获多少流量(默认单位是Mb,也支持更小一点的Kb,以及更大一点的Gb)后切换,另一种是每当捕获间隔多长时间(默认单位分钟,也支持秒、小时、天)后切换。
使用多个文件存储时,两种切换方式至少选其一!
2.2.5 选项:Ring buffer with N files
使用多个文件存储时,如果对文件数量有限制,且允许文件覆盖,
可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它会直接把捕获的数据包存入到
当前最“老”(生成时间最早)的文件中,从而让最“老”的文件变成最“新”的文件。这就好比建立了一个容量为N的环形缓冲队列。
暂时来说,我的理解,让最“老”的文件变成最“新”的文件的过程是覆盖的过程,如果你倒腾发现本质上是添加或其他机理,请联系我!
2.2.6 选项:Stop capture after n file(s)
使用多个文件存储时,如果对文件数量有限制,且不允许文件覆盖,可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它就直接停止抓包。
这种自动停止抓包的方法仅适用于指定使用多个文件存储时。通用的自动停止抓包方法在下一节介绍。
2.3 Stop Capture Automatically After[自动停止抓包设定]
在上一篇文章里,我们是手动停止抓包的。而这个区域的选项可以帮助我们通过设置一些条件来让Wireshark自动停止抓包,需要额外提到的是,这些选项之间不是互斥的,可以勾选多个,他们之间应该是“或”的关系。
2.3.1 选项:N packet(s)
勾选此选项后,Wireshark会在捕获到指定个数的数据包后,会自动停止抓包。
2.3.2 选项:N megabytes(s)
勾选此选项后,Wireshark会在捕获到指定大小的数据流量后,会自动停止抓包。默认流量单位是Mb,也支持更小一点的Kb,以及更大一点的Gb。
2.3.3 选项:N minute(s)
勾选此选项后,Wireshark会以开始捕获为计时起点,经过指定长短的时间后,自动停止抓包。默认时间单位分钟,也支持秒、小时、天。
2.4 Display Options[显示选项设定]
2.4.1 选项:Update list of packets in real time
2.4.2 选项:Automatic scrolling in live capture
2.4.3 选项:Hide capture info dialog
图2-7 数据包捕获概要情况弹窗
2.5 Name Resolution[名称解析相关设定]
图2-8 名称解析相关设定
2.5.1 选项:Resolve Mac addresses
- 01:00:5e:00:35:16 ==> IPv4mcast_00:35:16
- 00:26:82:88:45:ac ==> GemtekTe_88:45:ac
- 28:c6:8e:19:e9:5b ==> Netgear_19:e9:5b
2.5.2 选项:Resolve network-layer names
2.5.3 选项:Resolve transport-layer name
- 80、8080 ==> http
- 21 ==> ftp
- 23 ==> telnet
- 25 ==> smtp
- 53 ==> dns
- 110 ==> pop3
- 443 ==> ssl、tls
--- TCP/UDP端口列表】
2.5.4选项:Use external network name resolver
添加这个选项的初衷,应该是配合上面的选项“Resolve network-layer
names”使用。我们知道,普通的DNS查询遵循的是本机缓存查询、hosts文件查询、外部查询的先后顺序,如果前两项内部查找失败,就会用到外部查
询,但若是不勾选这个选项,那么Wireshark在解析IP地址对应的主机名或域名的时候,就仅使用内部的查询,失败的话不再尝试外部查询,直接返回失败的结果。
Wireshark入门与进阶系列(二)的更多相关文章
- Wireshark入门与进阶系列(一)
摘自http://blog.csdn.net/howeverpf/article/details/40687049 Wireshark入门与进阶系列(一) “君子生非异也,善假于物也”---荀子 本文 ...
- Wireshark入门与进阶系列五之常见捕获过滤器
0x00 前言 我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安 ...
- Wireshark入门与进阶---数据包捕获与保存的最基本流程
Wireshark入门与进阶系列(一) "君子生非异也.善假于物也"---荀子 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原 ...
- Bing Maps进阶系列二:使用GeocodeService进行地理位置检索
Bing Maps进阶系列二:使用GeocodeService进行地理位置检索 在<Bing Maps进阶系列一:初识Bing Maps地图服务>里已经对GeocodeService的功能 ...
- Spring Boot进阶系列二
上一篇文章,主要分析了怎么建立一个Restful web service,系列二主要创建一个H5静态页面使用ajax请求数据,功能主要有添加一本书,请求所有书并且按照Id降序排列,以及查看,删除一本书 ...
- 超全PHP学习资源整理:入门到进阶系列
PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...
- 《Visual C++ 2010入门教程》系列二:安装、配置和首次使用VS2010
作者:董波 日期:2010.6.15 写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫<Visual ...
- 进阶系列二【绝对干货】---Quartz.Net的入门
一.Quartz.Net是什么? Quartz.Net是一个开源的作业调度框架,OpenSymphony的开源项目,是Quartz的C#移植项目.非常适合在平时的工作中,定时轮询数据库同步,定时邮件通 ...
- 《jmeter:菜鸟入门到进阶系列》
jmeter是我从事软件测试工作以来接触的第一个性能测试工具,也是耗费时间精力最多的一个工具,当然,学习jmeter过程中,由于知识储备不够,也顺带学习了很多其他相关的一些知识. 一直有个想法,就是把 ...
随机推荐
- bzoj1675 [Usaco2005 Feb]Rigging the Bovine Election 竞选划区
Description It's election time. The farm is partitioned into a 5x5 grid of cow locations, each of wh ...
- VS Visual Studio connection(); Microsoft Visulal Studio vNext & Azure
http://www.visualstudio.com/connect-event-vs
- POJ1988 并查集的使用
Cube Stacking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 21157 Accepted: 7395 Ca ...
- Sql Server使用正则表达式
近日因项目需求,需要在sql server中用到正则表达式,因Sql Server本身并不支持正则表达式,需要用到Clr函数. 在此记录一下步骤,与大家共享,虽然写的是原创,但有参考网上的文章. 1. ...
- sqlite数据库读写在linux下的权限问题
近期在学linux,恰巧有个php项目要做.于是配置好环境打算在linux下做. 无奈站点执行后一片空白.经过调试发现是sqlite数据库的问题. 安装sqlite扩展 apt-get install ...
- gcc和arm-linux-gcc区别
安装arm-linux-gcc的时候,查了不少资料,总算环境搭好了.于是,想写个程序员的经典程序---hello world. 语法都没错,生成test.c. 命令行运行:arm-linux-gcc ...
- [KMP][HDU3336][Count the string]
题意 计算所有S的前缀在S中出现了几次 思路 跟前缀有关的题目可以多多考虑KMP的NEXT数组 #include <cstdio> #include <cstring> #in ...
- .net如何后台批量删除
button_Click(Sender sender,Event e){foreach (DataListItem item in DataList1.Items){CheckBox cbox=(Ch ...
- HttpApplication事件执行顺序(转)
HttpApplication 类的实例(Global继承自该类)是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的.HttpApplication 类的一个实例在其生存期内被用于处理多个 ...
- C#常用的内置委托
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...