系统运维、技术分享、架构、方案

it运维技术文章分享

Wireshark网络分析入门篇

Wireshark是什么?

Wireshark是最流行的网络嗅探器之一,能在多种平台上抓取和分析网络包,比如Windows、Linux和Mac等。它的图形界面非常友好,但如果你觉得鼠标操作不够有范,也可以使用它的命令行形式——TShark。

 

 

 

学习Wireshark有何意义?

 

很显然,Wireshark并不能帮我们变成网络新贵,但它对技术上有所追求的攻城狮来说,有着金钱难以衡量的价值。用它来辅助学习,可以更深入地理解网络协议;用它来排查故障,可以更快地发现问题。假如你是团队中唯一掌握Wireshark的网络攻城狮,这个看家本领非常有助于你保持大牛地位。在同事们手足无措时,你可以用最快的速度摆平,然后平静地说一句:“问题解决了,我先去泡杯咖啡。”接下来就可以离开座位,让他们一脸崇拜地研究你满是Tshak命令的屏幕了。

 

 

Wireshark图形窗口介绍

 

《Wireshark网络分析入门篇》

 

WireShark 主要分为这几个界面:

1. Display Filter(显示过滤器)  用于过滤

2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。颜色不同,代表

3. Packet Details Pane(封包详细信息), 显示封包中的字段

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏,杂项)

《Wireshark网络分析入门篇》

显示过滤器

 

显示过滤器是在原来或者现在抓包的基础上,过滤掉其他的包,找到自己需要的数据报包。如图所示:

《Wireshark网络分析入门篇》

《Wireshark网络分析入门篇》

《Wireshark网络分析入门篇》《Wireshark网络分析入门篇》

过滤表达式的规则

表达式规则

  1. 协议过滤 比如TCP,只显示TCP协议。
  2. IP 过滤 比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102, ip.dst==192.168.1.102, 目标地址为192.168.1.102
  3. 端口过滤 tcp.port ==80, 端口为80的 tcp.srcport == 80, 只显示TCP协议的愿端口为80的。
  4. Http模式过滤 http.request.method==”GET”, 只显示HTTP GET方法的。
  5. 逻辑运算符为 AND/ OR 常用的过滤表达式
过滤表达式                                           用途http                                                只查看HTTP协议的记录ip.src ==192.168.1.102 or ip.dst==192.168.1.102     源地址或者目标地址是192.168.1.102

 

封包列表

 

封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。你可以看到不同的协议用了不同的颜色显示。

你也可以修改这些显示颜色的规则, View ->Coloring Rules.

《Wireshark网络分析入门篇》

《Wireshark网络分析入门篇》

封包详细信息

 

这个面板是我们最重要的,用来查看协议中的每一个字段。

各行信息分别为:

Frame:   物理层的数据帧概况

Ethernet II: 数据链路层以太网帧头部信息

Internet Protocol Version 4: 互联网层IP包头部信息

Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP

Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

《Wireshark网络分析入门篇》

 

我们用wireshark实际分析下三次握手的过程。打开wireshark, 打开浏览器输入 http://www.cr173.com 在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击”Follow TCP Stream”, 这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图

《Wireshark网络分析入门篇》

图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

第一次握手数据包

客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。如下图

《Wireshark网络分析入门篇》

第二次握手的数据包

服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图 《Wireshark网络分析入门篇》

第三次握手的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1,如下图: 《Wireshark网络分析入门篇》

就这样通过了TCP三次握手,建立了连接

 

Wireshark命令窗口介绍

 

Wireshark网络分析软件用命令窗口处理数据包的情况很少,在处理大包时,为节约资源同时也是有效地利用PC机硬件,不得不用wireshark的命令行来处理数据包,以达到预期目的。

命令行方式与wireshark图形界面等效的命令是:tshark.exe

不管是用安装版的还是绿色版的wireshark软件,只要找到安装目录,即可进行操作。

《Wireshark网络分析入门篇》

《Wireshark网络分析入门篇》

在命令窗口(DOS)输入dir *.exe,就会列出所有可执行文件。Tshark.exe就是wireshark的命令行文件,与窗口方式具有同等的功效(有点卖“野药”的感觉)。Tshark.exe有很多参数,可以通过命令后加-h查看帮助。

《Wireshark网络分析入门篇》有很多的参数
《Wireshark网络分析入门篇》

 

命令行工具功能很强大,参数多且可组合使用。如果我们在CDN机房或核心设备上做镜像抓包时,因数据量太大,图形界面抓包,几十秒或几秒钟的时间,电脑有可能就会蓝屏,造成电脑死机,达不到我们抓包的效果,所以,这时候我们就会用到命令行进行抓包。命令行捕获最大的优点就是资源占用少,可控性强。缺点是参数繁多,不易记忆和操作。

Tshark默认情况下选择的是电脑中的第一张网卡,我们可以利用参数-D(注意大小写,参数中大小写的定义会不同)来查看。

《Wireshark网络分析入门篇》

举例:如下图

《Wireshark网络分析入门篇》

 


												
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注