超详细的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 1

ping <IP> -n 1-l 2

ping <IP> -n 1-l 3

ping <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的?

答案就是:两端的IPport

单击Wireshark的统计->Conversations,再单击TCP或者UDP标签就可以看到所有的Stream。

 

3.鼠标帮助过滤

我们有时因为Wireshark而苦恼,并不是因为它功能不够,而是强大到难以驾驭。比如在过滤时,有成千上万的条件可供选择,但怎么写才是合乎语法的?虽然http://www.wireshark.org/docs/dfref/提供了参考,但经常查找毕竟太费时费力了。

Wireshark考虑到了这个需求,右键单击Wireshark上感兴趣的内容,然后选择作为过滤器应用->选中,就会在Fiter 中自动生成过滤表达式。在有复杂需求的时候,还可以选择AndOr等选项来生成一个组合的过滤表达式。

 

让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网络分析就这么简单》

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值