简单使用Wireshark分析数据包 By travelnight
前言: 每次看到400 大佬分析是不是觉得很牛?其实自己也可以做到! 使用这个软件,有时候更多是培养自己分析问题的一个思路,同时去熟悉数据交互原理。从而带来的能力的一个提升,也算是熟能生巧吧!
一 . Wireshark简介 Wireshark(前称Ethereal)是一个数据包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 这是一个非常强大的数据包分析软件,可以帮助我们很好的分析网络问题,学习底层协议内容。
二. Wireshark分析数据包 Wireshark分析数据包有两种方法:1.使用本机网口进行抓包。2.利用linux抓包命令或者其他软件抓好的数据包(pcap格式),用wireshark打开,进行分析。
1、本机网口,这种方法最为简单,抓取本机数据包直接在wireshark界面选择对应网口即可。分析其他终端的数据包可以和终端接同一个hub或者在交换机上镜像对应流量过来再抓包即可。
2、Linux下使用tcpdump命令抓包,然后保存下来。 比如需要抓eth1口的指定内容数据包: tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 andsrc net 192.168.1.0/24 -w ./target.cap 三.软件界面的简单调试 几个关键列的简单介绍 No :数据包的序列号 Time:数据抓取的时间 Source:源地址 Destination:目的地址 Protocol: 协议 Length:包长度 Info:数据包内容 这是数据包详细的所有内容。
是不是感觉这个界面不是很顺手?下面我们来改造一下。
1. 修改时间显示格式 在我们需要分析某个时间点的数据包的时候,默认的时间不好结合日期时间来分析。我们可以来调整一下。 2. 多节点分析数据包的时候。搞不清楚节点转发的对应数据包是哪一个?这个时候我们就可以调出identification(标识符)来识别数据包。 注意:nat环境下标识符是会变的 相应的,大家也可以把相应的自己喜欢的数据包字段应用为列,方便自己去分析。
四.数据简单分析实战 前两天客户反馈业务系统打开有时候会返回404,业务系统AD做了负载。远程的时候发现服务器状态都是正常的,而且配置的是HTTP监视器,和软件方确认过了监视的地址没有问题。这就比较奇怪了,后面定位到其中一台服务器会有这个现象。
这个时候就开启wireshark看一下到底发生了什么? 1. 用ip.addr== 表达式过滤数据包。 2. 这个时候就比较明显了 a.PC首先和服务器建立了TCP链接。 b.PC去请求/****/portal.jsp页面(这个也是监视器监视地址)
这个时候问题来了,服务器直接返回了302 moved 到了/****/login.jsp的页面。 c.可以选定数据包右键追踪流 这样就可以比较清晰的看到一个数据流过程。还可以看到自己的cookie,host,浏览器信息,等http数据包的详细内容。 d. PC去请求/login.jsp 结果404 not found。 e. 检查AD的http监视器,发现相应状态码里面有一个302。此时服务器返回302也是认为业务是正常的,所以会正常调度,去掉之后问题解决。同时反馈给软件方,解决问题。 扩展: 除此之外我们还可以去分析一些网络卡顿问题。比如内网业务系统打开卡慢。我们就可以去分析每个数据包的时间。来定位到底是卡在了哪一步。
举例: 每个http交互开始前,需要先建立TCP连接,这个时候我们就可以去分析,syn /ack的时间戳,假如PC发了一个syn出去。服务器经过很久才返回一个syn,ack。这就说明服务端可能出现了拥塞或者其他情况。 常用的wireshark表达式: https://blog.csdn.net/a2657222/article/details/7820036 |