Wireshark网络分析入门篇

简介: Wireshark网络分析入门篇

Wireshark是什么?


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


学习Wireshark有何意义?


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


Wireshark图形窗口介绍


640.jpg

WireShark 主要分为这几个界面:


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

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

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

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏,杂项)

显示过滤器


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

640.png

640.jpg

640.jpg

过滤表达式的规则


表达式规则

  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.

640.png

640.png


封包详细信息


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


各行信息分别为:

Frame:   物理层的数据帧概况

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

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

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

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

640.jpg


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


640.jpg

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


第一次握手数据包


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

640.jpg

第二次握手的数据包


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

640.jpg


第三次握手的数据包


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

640.jpg


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


Wireshark命令窗口介绍

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


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


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


640.jpg

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

640.png


多的参数

640.jpg


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


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

640.png

举例:如下图

640.png


其他的一些命令的参数和用法,请参考-h帮助或相关资料研究学习。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3天前
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
30 8
|
24天前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
67 3
图卷积网络入门:数学基础与架构设计
|
14天前
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
64 2
|
21天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
54 3
|
28天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
1月前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
148 0
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
130 1
|
26天前
|
运维 监控 网络协议
网络诊断必备:Ping、Traceroute、Wireshark的实用技巧详解
网络诊断必备:Ping、Traceroute、Wireshark的实用技巧详解
199 0
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!