前言

说一说这个问题的由来,一般使用wireshark不需要长时间抓包的,但是有时候遇到网络通信中非常棘手的问题,例如一个小时出现一次或者几个小时出现一次问题的情况,这种情况下就必须长时间抓包了。但是如果在wireshark中开始抓包之后等上几个小时肯定会出问题,因为这个时候抓包的内容都是存放在内存中的,几个小时的数据包,特别是如果涉及到音视频的数据包是很大的,几个小时可能会达到几个G的大小,这种情况下wireshark会内存溢出,程序直接异常。

这个时候就需要使用wireshark提供的自动分文件存储的功能了。

通过wireshark界面进行设置

可以在wireshark的界面上进行一些设置之后再开启抓包过程,这个时候wireshark会自动根据我们指定的文件名并加上序号和时间来保存每个文件段了,具体过程如下:

选择Capture—Interfaces… 打开网络接口对话框

选择要对其进行抓包的网络设备,点击该条目后面的Options按钮

在该对话框中就可以设置使用多个文件存储抓到的数据,wireshark会根据我们指定的文件名自动指定每一段的文件名,其名字为 “指定的文件名_序号_日期时间.扩展名”,并且该对话框中可以设置各种文件分段的条件,以及停止抓包的条件,非常灵活。

通过这种方式设置进行多文件保存数据非常方便,但是有一个问题如下:

经过长时间抓包之后发现会出现多个 “Closing file!”的对话框,在任务栏上面每一个对话框都会多出一个wireshark的图标,抓包时间越长,文件分段越多该对话框越多,最终会占满整个任务栏。并且只能通过鼠标在任务栏wireshark的图标上右键关闭。通过google搜索发现这是wireshark的一个bug,没有好的解决办法。所以推荐使用命令行的方式进行长时间抓包。

通过命令行工具dumpcap.exe进行抓包

在wireshark安装之后,在其安装目录下会有一个dumpcap.exe的命令行工具,实际上wireshark的界面程序也是使用这个命令行工具工作的,我们可以不需要使用界面,而直接使用该命令行工具进行抓包工作,其命令如下:

命令的含义解释如下:
dumpcap.exe -i \Device\NPF_{845F9D1E-8F0B-4991-9F9A-C55D107A046B} -w d:\000\ddd.pcap -b filesize:50000

dumpcap.exe在wrieshark的安装根目录就可以看到,其中:

-i 表示指定捕获的网卡设备,这里指定的是网卡设备的标识,是一个字符串,可以在wireshark界面程序中查看,如下:

-w 表示保存的路径以及文件名,如果是分文件保存,则会自动命名为ddd_00001_20151221213115.pcap 的形式,也就是“filename_序号_时间.扩展名”。

-b filesize:N  表示指定每个文件的大小是NKB,如上50000表示 50000 KB,也就是50M。

通过命令行的方式抓包长时间运行没有任何问题,推荐使用这种方式。

通过tcpdump的windows版本进行抓包

通过dumpcap.exe命令行的方式进行抓包,可以解决文章开头提出的问题,但是dumpcap.exe该工具只有在安装wireshark之后才会有,该程序的运行也依赖wireshark安装目录下的其他的dll,如果不希望安装wireshark这么繁琐,可以选择使用tcpdump的windows版本,只有一个exe程序没有其他依赖,tcpdump.exe不是wireshark的一部分,需要单独下载,tcpdump windows版本下载地址

通过tcpdump –D 命令可以列出所有网络设备列表,注意该列表中的网络设备标识与我们在wireshark的设备属性中拷贝的设备标识有一点区别,在wireshark中拷贝的设备标识都有NPF_的前缀,因为wireshark安装的是NPF驱动,这是不一样的,所以wireshark的命令行工具dumpcap.exe使用的网络设备标识以wireshark中查看的为准,而这里的tcpdump.exe使用的网络设备标识以 tcpdump -D命令列出的为准。

我们可以通过tcpdump –D 得出的网络设备列表每一项后面的描述信息,与我们当前使用的网络连接的描述信息比较,可以得出我们需要捕获的网络连接对应的设备标识。

命令说明:
tcpdump.exe -i \Device\{89515393-AC8F-4D23-9A03-AF35F9950E72} -w E:\000\test.pcap -C 2
    
-i 指定要捕获的网络设备的标识。
-w 指定保存的文件,如果分段则会自动保存为  test.pcap、test.pcap1、test.pcap2 等,这些文件都可以直接拖到wireshark中打开。
-C 注意这里是大写,表示每一个分段文件的大小,单位是M,这里 -C 2 表示2M一个文件。

wireshark长时间抓包分多个文件的更多相关文章

  1. windows 平台使用wireshark命令行抓包

    Windows网络流量大,或则需要长时间抓包时,wireshark图形界面使用起来比较麻烦 wireshark 内置 dumpcap命令 Capture interface:  -i <inte ...

  2. Wireshark和TcpDump抓包分析心得

    Wireshark和 TcpDump抓包分析心得  1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Window ...

  3. 转 Wireshark和TcpDump抓包分析心得

    1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话 ...

  4. wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍TCP排序方法,分享一个Windows版的TCP排序工具." 在分析协议的过程中,不可避免地需要抓包. 无论抓包条件如何优越, ...

  5. ubuntu系统下wireshark普通用户抓包设置

    dumpcap需要root权限才能使用的,以普通用户打开Wireshark,Wireshark当然没有权限使用dumpcap进行截取封包.   虽然可以使用    sudo wireshark    ...

  6. Linux下Wireshark的网络抓包使用方法

    Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使用pcap network ...

  7. 使用Wireshark对手机抓包设置说明

    一.原因 1.手机目前没有类似的抓包工具可以直接对手机进行抓包 2.一般数据交换的路线是:手机——>运营商——>服务器,可以在手机和运营商中间加一道网卡变成:手机——>PC网卡——& ...

  8. [Wireshark]_003_电子邮件抓包分析

    电子邮件是我们的生活工作中经常使用的一种服务,用来联系世界各地的朋友,客户.下面我们就用Wireshark对电子邮件进行抓包. 准备工作: 邮件客户端一款(Outlook,Foxmail,KooMai ...

  9. wireshark中的抓包过滤器和显示过滤器

    一  抓包过滤器 语法说明:BPF语法(Berkeley Packet Filter) 类型Tpye:host,net,port 方向Dir:src,dst 协议Proto:ether,ip,tcp, ...

随机推荐

  1. android端,webview内url跳转到app本地

    这是和一个前端同事沟通. app内嵌入他的web页,要通过web页内的url跳转到app的详细内容. 他的android同事,没有思路. 其实嵌入web页,用的webview控件,只要能找到webvi ...

  2. .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)

    前一篇发出来后引发了积极的探讨,起到了抛砖引玉效果,感谢大家参与. 吐槽一下:这个问题比其看起来要难得多得多啊. 大家的讨论最终还是没有一个完全正确的答案,不过我根据讨论结果总结了一个差不多算是最终版 ...

  3. 关于swap

    一个小小的swap确出现了好多个版本.不断的优化,不断的发现问题: 版本一: function swap(a,b){ var temp = a; a = b; b = temp; } 这个版本对于数组 ...

  4. Java中四种引用:强、软、弱、虚引用

    这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...

  5. lightoj 1427 - Substring Frequency (II) AC自动机

    模板题,找来测代码. 注意有相同单词 //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<c ...

  6. My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包

    是这样,我在我的android项目中想实现zxing也就是二维码的一些功能,但是需要的一个源码工程是androidstudio工程,想把这个工程转成eclipse工程并导成jar包在我的项目中使用. ...

  7. read函数返回值始终为1

    部分程序如下: while(count=read(fd_s,buf,512)>0)      printf("count=%d\n",count);      write(f ...

  8. 创建nim+安装vioc分区

    一.搭建nim服务器 1.安装须知 安装nim软件包,client随系统默认安装,这里需要安装的是bos.sysmgt.nim.master和bos.sysmgt.nim.spot,即bos.sysm ...

  9. 关于“float”的一次探索--遇到了一个span元素可以设置宽高引发的思考

    起初,这个问题和float还有设置宽高之间是没有任何关联的,一开始这是一个关于height和line-height的问题,目的是为了探究一下这两者之间的关系,但是在学习的过程中,我翻之前写的代码,发现 ...

  10. C++回顾map的用法

    map<T, T>是C++的STL中存储key-value键值对数据结构的最基础的模板类,相对于multimap可以重复的key值,map的key是非重复的. C++的reference这 ...