百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

网络封包分析软件——Wireshark抓包教程

csdh11 2025-03-02 16:53 3 浏览

一、Wireshark简介

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以通过免费的途径取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

二、Wireshark抓包示例

1、下载并且安装好Wireshark后打开软件(本文以Wireshark Version 3.4.9 介绍)打开后我们可以看到,Wireshark可以自动识别出电脑上面的网卡(包括虚拟网卡),这里我们双击我们需要抓包的网卡。

2、双击进入此界面后,Wireshark已经自动开始了抓包过程,如果网卡在与其他网络设备通讯,我们就能看到如下图所示的各种网络协议报文。

3、ping www.ebyte.com

4、由于Wireshark抓取的是网卡物理层的数据,所以所有通过该网卡收发的数据都会被Wireshark抓取,这就让我们从海量数据中找到我们需要关注的网络包就如同大海捞针,但是Wireshark提供了强大的数据包过滤功能,我们就能比较轻松地找到对应的包。比如上面我已经ping了我司官网,现在Wireshark已经抓取了两万多条报文,只要通过在过滤器输入”ip.addr == 101.37.40.78 && icmp“就能找到对应的报文。

三、TCP报文抓包分析示例

1、开启Wireshark的抓包功能后,通过电脑连接到本地搭建的回显服务器,电脑上面的客户端发送了一段数据到服务器,服务器回传到电脑上的客户端。

2、此时我们在Wireshark的过滤栏中输入“ip.addr == 192.168.3.6”就能过滤出网络报文中基于IP协议簇,且IP地址(源地址或目标地址)为192.168.3.6的网络报文。如下图所示:

Wireshark在封包展示界面中根据网络协议模型,展示出了各层协议的重要信息如下图所示:

Frame:表示物理层

Ethernet II :数据链路层信息,包括源主机MAC,目标主机MAC与协议类型如IPV4(0x0800)

Internet Protocol Version 4:IP协议帧信息,包括源主机IP地址,目标主机IP地址等

Transmission Control Protocol:TCP协议相关信息,包括源端口与目标端口号,接收窗口大小等

3、TCP握手过程

四、Wireshark常用过滤器设置

1、Wireshark中的逻辑运算符

1.1比较运算符如:== (等于)、!=(不等于) 、>(大于) 、<(小于) 、>=(大于等于) 、<=(小于等于)

ip.src == 192.168.3.6 过滤源主机IP地址或者目标主机IP地址为192.168.3.6的报文

1.2逻辑运算符如:&&(与)、||(或)、!(非)

ip.src == 192.168.3.6 && && tcp.srcport == 8001,则只显示报文源主机地址为192.168.3.6且源端口为为8001的报文

2、协议过滤

根据网络协议过滤报文,即在抓包过滤框中输入协议相关字段即可,包括”TCP”,”UDP””HTTP””ICMP”等。

3、MAC地址过滤

eth.addr == 38:3b:26:88:02:dd 过滤源主机MAC地址或者目标主机MAC地址为38:3b:26:88:02:dd的报文

eth.src== 38:3b:26:88:02:dd 过滤源主机MAC地址为38:3b:26:88:02:dd的报文

eth.dst== 38:3b:26:88:02:dd 过滤目标主机MAC地址为38:3b:26:88:02:dd的报文

4、ip地址过滤

Ip.addr == 192.168.3.6 过滤源主机IP地址或者目标主机IP地址为192.168.3.6的报文

Ip.src== 192.168.3.6 过滤源主机IP地址为192.168.3.6的报文

ip.dst == 192.168.3.240 过滤目标主机IP地址为192.168.3.240的报文

5、端口过滤

tcp.port==80 过滤基于TCP协议且目标端口号或源端口号为80的报文

udp.srcport == 8001 过滤基于UDP协议且端口号为8001的报文

tcp.dstport == 8001 过滤基于TCP协议且目标端口号为8001的报文

6、Http模式过滤

http.request.method=="GET", 过滤基于http协议且http请求方式为”GET”的报文

相关推荐

万字硬核解析!RocketMQ集群环境搭建

一、RocketMQ集群架构通过之前安装单台RocketMQ,并演示了消息的收发,已经基本了解了RocketMQ是怎么样工作的,下面就来搭建一个集群...

推荐一款单机10W+的可用即时通讯工具

今天给大家推荐一款单机10W+的可用即时通讯工具,她就是:courier-信使。她是一款简洁轻量的即时通讯工具。?展示截图...

tar、gzip、zip、jar是什么,怎么查看?

...

建议收藏!深入理解Java虚拟机:JVM垃圾回收算法+垃圾收集器

02JVM垃圾回收算法2.1什么是垃圾回收?...

Spring boot——Actuator 详解

一、什么是ActuatorSpringBootActuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理SpringBoot应用。...

JVM 参数调优

时至今日,生产环境中依旧是JDK8占据主流,因此,本文将围绕JDK8常用的CMS和G1进行相关参数的讲解。...

Java开发工程师进阶篇- 扫盲Java中的各种锁,你学会了吗?

-Java中锁的概念...

Linux入门手册

Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播。Linux是众多操作系统之一,目前流行的服务器和PC端操作系统有Li...

java:Cassandra入门与实战——下

Cassandra入门与实战——上...

带你来搭建虚拟机和Redis集群,记得收藏

来源于公众号Java爱好者社区,作者东升的思考1、前言我们看到分析Redis使用或原理的文章不少,但是完整搭建一套独立的Redis集群环境的介绍,并不是很多或者说还不够详细。那么,本文会手把...

做开发这么久了,还不会搭建服务器Maven私有仓库?这也太Low了吧

大家好,我是冰河~~...

JDK 17 之 JVM调优 史诗级 教程

JDK17之JVM调优史诗级教程文章目录...

带你认识JDK8中超nice的Native Memory Tracking

本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪...

JVM 堆外内存泄漏排查

现象:operation服务持续内存增长不释放导致超过80%阈值告警,通过观察内存不会下降,而且占用内存为14G超过了jvm参数-Xmx10G的限制...

Spring Boot整合MybatisPlus和Druid

在Java中,我比较ORM...