超详细的wireshark笔记(2)-wireshark的使用技巧
抓包
1.只抓包头
一般能抓到的每个包(称为“帧”更准确,但是出于表达习惯,本书可能会经常用“包”代替“帧”和“分段”)的最大长度为1514字节,启用了Jumbo Frame(巨型帧)之后可达9000字节以上,而大多数时候我们只需要IP头或者TCP头就足够分析了。在Wireshark上可以这样抓到包头。
新版本的wireshark(2.x以后)的Options对话框变化比较大,限制单包的方法是:捕获->选项,找到要抓包的接口,选中它,找到列表标题中的捕获长度(B),单击对应栏,发现变为可输出状态,在这里输入限制的单包大小即可(同旧版本的Limi each packet to)"Limit each packet to"的值。
一般设个偏大的数字:80字节,也就是说每个包只抓前80字节。这样TCP层、网络层和数据链路层的信息都可以包括在内。
如果问题涉及应用层,就应该再加上应用层协议头的长度。如果你像我一样经常忘记不同协议头的长度,可以输入一个大点的值。即便设成200字节,也比1514字节小多了。
用tcpdump命令抓包时可以用"s"参数达到相同效果。比如以下命令只抓etho上每个包的前80字节,并把结果存到/tmp/tcpdump.cap文件中。
[root@server/]#tcpdump -i eth0 -s 80 -w /tmp/tcpdump.cap
2.只抓必要的包
可以在开始捕获之前应用捕获过滤器,这样就可以过滤掉不需要的数据包
用tcpdump命令抓包时,也可以用"host"参数达到相同效果。比如以下命令只抓与1.1.1.1通信的包,并把结果存到/tmp/tepdump.cap文件中。
[root@server-1/]#tcpdump -i eth0 host 1.1.1.1 -w /tmp/tcpdump.cap
注意:设置过滤捕获器之前务必三思,以免把有用的包也过滤掉,尤其是容易被忽略的广播包。当然有时候再怎么考虑也会失算,比如我有一次把对方的IP地址设为filter,结果一个包都没抓到。最后只能去掉filter再抓,才发现是NAT(网络地址转换)设备把对方的IP地址改掉了。
3.标记数据包
抓的包除了要小,最好还能为每步操作打上标记。这样的包一目了然,赏心悦目。比如
要在Windows上抓一个包含三步操作的问题,我会这样抓。
ping <IP> -n 1-l 1ping <IP> -n 1-l 2ping <IP> -n 1-l 3ping <IP> -n 1-l 4
byte的数目表示是第几步,这样就算在步骤很多的情况下也不会混乱。
个性化设置
1.时间设置
我经常需要参照服务器上的日志时间,找到发生问题时的网络包。所以就把Wireshark的时间调成跟服务器一样的格式。
单击视图->时间显示格式->选择对应的时间格式,就可以实现此设置。
2.自定义数据包颜色
不同类型的网络包可以自定义颜色,比如网络管理员可能会把OSPF等协议或者与Spanning Tree Protocol(生成树协议)相关的网络包设成最显眼的颜色。
而文件服务器的管理员则更关心FTP,SMB和NFS协议的颜色。我们可以通过视图->着色规则来设置颜色。
如果已经有一套非常适合你工作内容的配色方案,可以请从导出,然后导入到你的Wireshark里。
3.更多设置
更多的设置可以在编辑->首选项窗口中完成。
这个窗口的设置精度可以达到一些协议的细节。比如在此窗口单击Protocols-->TCP就可以看到多个TCP相关选项,将鼠标停在每一项上都会有详细介绍。假如经常要对Sequence Number做加减运算,不妨选中Relative sequence numbers,这样会使Sequence number看上去比实际小很多。
过滤
很多时候,解决问题的过程就是层层过滤,直至找到关键包。前面已经介绍过抓包时的Capture Filter功能了。其实在包抓下来之后,还可以进一步过滤,而且这一层的过滤功能更加强大。
要说过滤的作用与技巧,就算专门写一本小册子都不为过。篇幅所限,本文只能“过滤”出最适合初学者的部分。
1.过滤规则
最简单的用法就是直接输入要过滤的协议,比如直接输入arp就会过滤出arp的数据包
2.追踪流
IP地址加port号是最常用的过滤方式。除了手工输入ip.addreq <IP地址>
&& tcporteq <端口号>之类的过滤表达式。
Wireshark还提供了更快捷的方式:右键单击感兴趣的包,选择追踪流(选择TCP还是UDP要视传输层协议而定)
就可以自动过滤,而且该Stream的对话内容会在新弹出的窗口中显示出来。
经常有人在论坛上问,Wireshark是按照什么过滤出一个TCP/UDP Stream的?
答案就是:两端的IP加port。
单击Wireshark的统计->Conversations,再单击TCP或者UDP标签就可以看到所有的Stream。
3.鼠标帮助过滤
我们有时因为Wireshark而苦恼,并不是因为它功能不够,而是强大到难以驾驭。比如在过滤时,有成千上万的条件可供选择,但怎么写才是合乎语法的?虽然http://www.wireshark.org/docs/dfref/提供了参考,但经常查找毕竟太费时费力了。
Wireshark考虑到了这个需求,右键单击Wireshark上感兴趣的内容,然后选择作为过滤器应用->选中,就会在Fiter 中自动生成过滤表达式。在有复杂需求的时候,还可以选择And,Or等选项来生成一个组合的过滤表达式。
让wireshark自动分析
有些类型的问题,我们根本不需要研究包里的细节,直接交给Wireshark分析就行了。
1.单击Wireshark的分析->专家信息,就可以在不同标签下看到不同级别的提示信息。比如重传的统计、连接的建立和重置统计,等等。在分析网络性能和连接问题时,我们经常需要借助这个功能。
2.单击统计->Service Response Time,再选定协议名称,可以得到响应时间的统计表。我们在衡量服务器性能时经常需要此统计结果。
3.单击统计->TCP 流图形,可以生成几类统计图。
4.单击统计->捕获文件属性,可以看到一些统计信息,比如平均流量等,这有助于我们推测负载状况。比如图中的网络包才35kbit/s,说明流量低得很。
5.可以通过统计->流量图更为直观的看到通信的过程
可以先编写一个过滤的规则
在流量图窗口选择限制显示过滤器就可以看到两个IP直接的通信了
最容易上手的搜索功能
与很多软件一样,Wireshark也可以通过"Control+F"搜索关键字。假如我们怀疑包里含有"error"一词,就可以按下"Control+F"之后选中"String",单选按钮,然后在Filter中输入"error"进行搜索,很多应用层的错误都可以靠这个方法锁定问题包。
将IP地址解析为域名
进入编辑->首选项->Name Resolution->resolve network(IP) addresses将IP地址解析为域名
文章整理自《wireshark网络分析就这么简单》
超详细的wireshark笔记(2)-wireshark的使用技巧相关推荐
- PHP取经(二)变量、标量、特殊类型、常量——超详细PHP学习笔记
初学小白超详细PHP学习笔记 定义变量 PHP-变量名的命名规则 变量的数据类型 标量类型--布尔类型 详述数据类型中的整型 标量类型 标量类型-浮点型 标量类型-字符串 当字符串中引号遇到美元咋办? ...
- python超详细的常用笔记
关注微信公众号:(新生程序员教程) 下载python的word笔记,了解更多编程语言和程序员学习网站,学习平台 目录 第1章:Python的基础篇 1.1计算机的组成[了解] 1.2.计算机如何处理程 ...
- Redis 超详细版教程笔记
视频教程:[狂神说Java]Redis最新超详细版教程通俗易懂 视频地址:https://www.bilibili.com/video/BV1S54y1R7SB 目录索引 nosql 阿里巴巴架构演进 ...
- JVM-内存与垃圾回收篇!女朋友看了都想当架构师的超详细保姆级笔记!呕心沥血之作!看完还不会你砍我!
1. JVM与Java体系结构 1.1 Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成. JVM平台的各种 ...
- 超详细Mybatis学习笔记(可供下载)
文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...
- Kafka原理--超详细(学习笔记)
一.概念理解 Kafka 是最初由Linkedin 公司开发,**是一个分布式.支持分区的(patition).多副本的(replica).**基于zookeeper协调的分布式消息系统,它的最大 ...
- python 大学教授整理_剑桥大学教授用时35天亲自整理,Python超详细的基础笔记
python简介 python是一种面向对象的解释型计算机程序设计语言,python的是吉多·范罗苏姆(Guido van Rossum)于1989年发明 任何语言都有优缺点,python也不例外,p ...
- redis zset转set 反序列化失败_7000字 Redis 超详细总结、笔记!建议收藏
Redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库 Redis 与 其他 key - value 缓存产品有以下三个特点: Redis ...
- Wireshark零基础使用教程(超详细)
「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<网络安全快速入门> Wiresha ...
最新文章
- ptam tracking
- sqlserver sql语句|经典sql语句|实用sql语句
- docker网络之macvlan
- 艾伟:详解AJAX核心 —— XMLHttpRequest 对象 (下)
- 三维数组设置索引_10-Unity入门学习之C#基础9「数组」
- 爱奇艺深度语义表示学习的探索与实践
- 【Python】密码生成器
- 3.3.4.5. 日期计算
- 几何深度深度学习的学习之路
- “SecureCRT遇到一个致命的错误且必须关闭”处理办法
- 《Python算法教程简及PDF电子版下载
- 云计算之IasS、PasS、SaaS
- 《机器学习实战》--资料下载和运行环境
- redis-trib.rb命令详解
- CDH集成ES MasterNotDiscoveredException问题解决
- 配置路由器console接口密码和vty接口密码
- 最大公约数用c语言表达,c语言求最大公约数(用c语言编写求最大公约数)
- Opencv入门(播放AVI视频)
- 某客服热线呼叫中心话务分析
- ZOJ Problem Set - 4043 Virtual Singers(2018acm 青岛赛区热身赛)