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

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

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

一、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”的报文

相关推荐

OKHttp原理解析(okhttp的作用)

Okhttp应该是Android目前非常流行的第三方网络库,尝试讲解他的使用以及原理分析,分成几个部分:...

快速教会你优雅的解决TCP客户端端口耗尽的问题

Hello,我是Henry,相信各位开发老爷在使用大并发网络连接的时候,可能都遇到过TCP客户端端口耗尽的问题,这是一个常见问题,以下是系统性的解决方案及技术细节:1.理解端口限制的本质...

这3个接口基础知识,产品经理需要知道

产品经理在工作中,避免不了要阅读接口文档,希望本文能够帮助大家更好的了解接口。接口,即客户端(浏览器)向服务器提交请求,服务器向客户端返回响应。本质就是数据的传输与接收。本文主要介绍接口相关的基础知识...

Java 11新特性对开发者的影响:让编程更高效、更自由

Java11新特性对开发者的影响:让编程更高效、更自由在这个瞬息万变的编程世界里,每一代Java的更新都承载着无数开发者对性能优化、生产力提升以及代码美感追求的期望。作为继Java8之后的首个长期...

干货-okHttp的优点-收藏了(okhttp的好处)

OkHttp相较于其它的实现有以下的优点.支持SPDY,允许连接同一主机的所有请求分享一个socket。如果SPDY不可用,会使用连接池减少请求延迟。使用GZIP压缩下载内容,且压缩操作对用...

如何在 Java 项目中集成 DeepSeek

一、使用官方SDK基础集成1.添加依赖(Maven)<dependency><groupId>com.deepseek</groupId>...

spring cloud gateway 性能优化思路

SpringCloudGateway是一个高性能的API网关,但在实际的生产环境中,可能会遇到一些性能瓶颈。以下是一些SpringCloudGateway的性能优化方面:调整线程池...

你对Android中的okHttp的使用真的了解吗

框架下载地址:https://github.com/square/okhttp今天给大家讲解下网络框架okhttp的使用,这个框架非常强大,很多框架都用它来加载网络资源,目前很多开发者还在用As...

京东大佬问我,Nginx并发连接如何设置?详细说明

京东大佬问我,Nginx并发连接如何设置?详细说明首先,我需要回忆一下Nginx的并发模型。Nginx是基于事件驱动的异步架构,所以它的并发处理能力和配置参数有很大关系。主要的参数应该包括worker...

如何实现一个连接池?一文带你深入浅出,彻底搞懂

-前言-【2w1h】是技术领域中一种非常有效的思考和学习方式,即What、Why和How;坚持【2w1h】,可以快速提升我们的深度思考能力。...

Golang 网络编程(golang 系统编程)

TCP网络编程存在的问题:拆包:对发送端来说应用程序写入的数据远大于socket缓冲区大小,不能一次性将这些数据发送到server端就会出现拆包的情况。通过网络传输的数据包最大是1500字节,当TCP...

Spring6|Spring Boot3有哪些HTTP客户端可以选择

个人博客:无奈何杨(wnhyang)个人语雀:wnhyang...

10. 常用标准库(标准库有哪些)

本章深入解析Go语言核心标准库的关键功能与生产级应用技巧,结合性能优化与安全实践,提供高效开发指南。10.1fmt/io/os10.1.1fmt高级格式化...

Nginx之连接池(nginx 长连接 连接复用)

我们知道Nginx利用连接池来增加它对资源的利用率。下面我们一起来看看Nginx是如何使用连接池的。从上一节模块开始已经慢慢会接触一些Nginx的源码部分来。每个worker进程都有一个独立的ngx...

开发者必备的Android开发资源之OkHttp

小编在这里给各位Android开发者介绍的资源包括工具、库和网站等。有效地利用它们,将有助于减轻我们的工作量,提高我们的工作效率。为什么需要一个HTTP库Android系统提供了两种HTTP通信类,H...