【网络分析工具】网络工具wireshark、TCPdump、iperf使用详解

这里写目录标题

      • 1. wireshark
          • 1.1. 过滤包
          • 1.2. 常见分析
      • 2. tcpdump
      • 3. iperf

1. wireshark

**ip.dst eq 10.0.0.21** 是用于网络流量分析工具(例如 Wireshark 或 tcpdump)的过滤器表达式。 它的作用是筛选出所有目标IP地址为 10.0.0.21 的数据包

IP.addr == 10.0.0.1 搜索指定ip

1.1. 过滤包

会弹出来的

  • 协议过滤

  • quic:过滤所有 QUIC 协议的数据包。

  • udp:过滤所有 UDP 协议的数据包(QUIC 基于 UDP)。

  • tcp:过滤所有 TCP 协议的数据包。

  • http2:过滤所有 HTTP/2 协议的数据包。

  • tls:过滤所有 TLS 协议的数据包。

  • IP 地址过滤

  • ip.src == 192.168.1.1:过滤源 IP 为 192.168.1.1 的数据包。

  • ip.dst == 192.168.1.1:过滤目标 IP 为 192.168.1.1 的数据包。

  • ip.addr == 192.168.1.1:过滤源或目标 IP 为 192.168.1.1 的数据包。

  • 端口过滤

  • udp.port == 443:过滤 UDP 端口为 443 的数据包(QUIC 通常使用 443 端口)。

  • tcp.port == 80:过滤 TCP 端口为 80 的数据包。

  • tcp.srcport == 8080 过滤 TCP 源端口为 8080 的数据包

  • 逻辑运算符

  • &&:与(例如 quic && ip.src == 192.168.1.1)。

  • ||:或(例如 quic || tls)。

  • !:非(例如 !tcp)。

基本 TCP 过滤

  1. tcp 过滤所有 TCP 协议的数据包。
  2. tcp.port == 80 过滤 TCP 端口为 80 的数据包(HTTP 流量)。
  3. tcp.port == 443 过滤 TCP 端口为 443 的数据包(HTTPS 流量)。
  4. tcp.srcport == 8080 过滤 TCP 源端口为 8080 的数据包。
  5. tcp.dstport == 22 过滤 TCP 目标端口为 22 的数据包(SSH 流量)。

TCP 连接状态过滤

  1. tcp.flags.syn == 1 && tcp.flags.ack == 0 过滤 TCP SYN 包(第一次握手)。
  2. tcp.flags.syn == 1 && tcp.flags.ack == 1 过滤 TCP SYN-ACK 包(第二次握手)。
  3. tcp.flags.ack == 1 && tcp.flags.syn == 0 过滤 TCP ACK 包(第三次握手)。
  4. tcp.flags.fin == 1 过滤 TCP FIN 包(断开连接请求)。
  5. tcp.flags.reset == 1 过滤 TCP RST 包(重置连接)。

TCP 数据分析

  1. tcp.payload 过滤包含 TCP 负载的数据包。
  2. tcp.len == 100 过滤 TCP 负载长度为 100 字节的数据包。
  3. tcp.len > 500 过滤 TCP 负载长度大于 500 字节的数据包。

TCP 重传和异常

  1. tcp.analysis.retransmission 过滤 TCP 重传的数据包。
  2. tcp.analysis.zero_window 过滤 TCP 零窗口数据包(接收方缓冲区已满)。
  3. tcp.analysis.window_update 过滤 TCP 窗口更新的数据包。
  4. tcp.analysis.duplicate_ack 过滤 TCP 重复确认的数据包。

组合过滤

  1. tcp && ip.src == 192.168.1.1 && tcp.port == 80 过滤源 IP 为 192.168.1.1 且端口为 80 的 TCP 数据包。
  2. (tcp.flags.syn == 1 && tcp.flags.ack == 0) || (tcp.flags.fin == 1) 过滤 TCP 建立连接和断开连接的数据包。
  3. tcp.analysis.retransmission || tcp.analysis.zero_window 过滤 TCP 重传和零窗口的数据包。

保存过滤结果

  1. 在 Wireshark 中应用过滤后,点击菜单栏的 File -> Export Specified Packets
  2. 选择 All packetsDisplayed
  3. 保存为 .pcap.pcapng 文件。

示例场景

  1. tcp.port == 80 过滤所有 HTTP 流量(TCP 端口为 80)。
  2. tcp.flags.syn == 1 && tcp.flags.ack == 0 过滤 TCP 握手的 SYN 包。
  3. tcp.analysis.retransmission 过滤所有 TCP 重传的数据包。
  4. tcp && ip.src == 192.168.1.1 && ip.dst == 192.168.1.2 过滤源 IP 为 192.168.1.1 且目标 IP 为 192.168.1.2 的 TCP 数据包。
1.2. 常见分析

1,

2,

3,

4,Window Full

61622 109.780413297 10.0.0.1 10.0.0.9 openFlow 194 [TCP Window Full] Type: OFPT EXPERIMENTER

是指的发送端发送的数据已经达到的接受窗口的上限。
继而停止发送,等待新的接收窗口的通告

此时接收端返回的是TCP zero window,表示接收端窗口为0

openflow:表示这个数据包是openflow协议, "TCP Window Full"指示符通常表示接收端TCP接收缓冲区已满。这意味着接收端已经接收了所有能够接收的数据,并且其接收窗口已满,无法再接收更多的数据,直到一些数据被应用程序处理并从缓冲区中移除。 :发送端会根据接收端的接收窗口大小来控制发送的数据量。当接收端的接收窗口为零时,发送端将停止发送新的数据,直到接收端的缓冲区有更多空间。

5,Zero Window

传输层协议TCP—滑动窗口(9)_tcp zerowindow-CSDN博客

Zero Window(0窗口)指的是 TCP 发送方的滑动窗口大小为0,其本质上是因为 TCP 接收方的接收缓存已经满了,没有空间再接收数据。当处于 Zero Window 时,TCP 发送方是不能向对方发送数据的——即使发送也会被对方给怼回来

6,TCP ACKed unseen segment

7,TCP Previous segment not captured

[TCP Previous segment not captured]报文指的是在TCP发送端传输过程中,该Seq前的报文缺失了。一般在网络拥塞的情况下,造成TCP报文乱序、丢包时,会出现该标志。

需要注意的是,[TCP Previous segment not captured]解析文字是wireshark添加的标记,并非TCP报文内容。

例子:

流媒体服务器39.135.135.81,端口80,发送序号Seq=147154的包,长度Len=1360,那么下一个数据包序号应该为Seq=147154+1360=148514,可以看到客户端请求的也是Ack=148514。而服务器下一个包序号为Seq=149874,中间的包丢失了。

8,RST

TCP异常终止的情形

2. tcpdump

你可以使用 host 关键字来筛选目标IP地址。例如:

tcpdump -i eth0 dst host 10.0.0.21

这将捕获所有目标IP地址为 10.0.0.21 的数据包。

tcpdump -i eth0 icmp

筛选eth0端口的icmp包

tcpdump -nni port300781 icmp 这样才能抓到包 用-nni

tcpdump -nni any icmp 抓该节点所有端口的icmp包

tcpdump -nni port300781 icmp -w test.pacp 抓取的数据包保存到文件 **test.pcap** 中 ,导入到wireshark进行分析

还有个抓包工具tshark

21:26:49.013621 IP 172.20.20.1.15605 > 172.20.20.2.5920: Flags [P.], seq 49:97, ack 106048, win 4723, length 48

Flags 标识符#

使用 tcpdump 抓包后,会遇到的 TCP 报文 Flags,有以下几种:

  • [S] : SYN(开始连接)
  • [P] : PSH(推送数据)
  • [F] : FIN (结束连接)
  • [R] : RST(重置连接)
  • [.] : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)

使用 **host**基于IP过滤

  • tcpdump host 192.168.10.100
  • 根据源ip进行过滤:tcpdump -i eth2 src 192.168.10.100
  • 根据目标ip进行过滤:tcpdump -i eth2 dst 192.168.10.200

基于网段进行过滤:net

  • tcpdump net 192.168.10.0/24
  • 根据源网段进行过滤$ tcpdump src net 192.168

3. iperf

Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。

iperf -s -p 12345 -i 1 -M 1460
iperf -c 10.0.0.1 -p 9190 -i 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django rest_framework 信号机制生成并使用token

1、在setting.py 中增加设置 DEFAULT_AUTHENTICATION_CLASSES:[rest_framework.authentication.BasicAuthentication,#基本的用户名密码验证rest_framework.authentication.SessionAuthentication,rest_framework.authentication.TokenAuthentication,# token 认证], INSTALLE…

SQL Server To Paimon Demo by Flink standalone cluster mode

需求:使用 Flink CDC 测试 SQL Server 连接 Paimon 操作:启动 Flink standalone cluster 后,接着启动 Flink SQL Client,则通过 Flink SQL Client 提交 insert & select job 到该 8081 cluster Flink SQL Client 执行案例 -…

MySQL 从入门到精通(四):备份与恢复实战——从逻辑到物理,增量备份全解析

数据是企业的核心资产,而数据库作为数据存储的 “心脏”,其备份与恢复策略直接关系到业务的连续性。本文将结合 MySQL 的日志体系与备份工具,深入讲解逻辑备份、物理备份、增量备份的实战操作,帮助你构建可靠的数据库保护方案。 目…

鸿蒙编译boost整合linux跨平台应用

openharmony deveco 4.1支持armeabi-v7a deveco 5.0后不支持arm32位系统 boost编译 使用deveco的写cmake集成boost boost使用1.88的最新版本,带cmake工具链 https://github.com/boostorg/boost.git boost的源码都在sub_module中 deveco 4.1的版本sdk最高到9&am…

机器视觉的平板电脑屏幕组件覆膜应用

在现代智能制造业中,平板电脑屏幕组件覆膜工序是确保产品外观和功能完整性的重要环节。随着技术的进步,传统的覆膜方式已经无法满足高速度、高精度的生产需求。而MasterAlign视觉系统的出现,将传统覆膜工艺转变为智能化、自动化的生产流程。在…

android-ndk开发(10): use of undeclared identifier ‘pthread_getname_np‘

1. 报错描述 使用 pthread 获取线程名字, 用到 pthread_getname_np 函数。 交叉编译到 Android NDK 时链接报错 test_pthread.cpp:19:5: error: use of undeclared identifier pthread_getname_np19 | pthread_getname_np(thread_id, thread_name, sizeof(thr…

【前端基础】6、CSS的文本属性(text相关)

目录内容 text-decoration:设置文本装饰线text-transform:文本中文字的大小写转换text-indent:首行缩进text-align:设置文本对齐方式 一、text-decoration:设置文本装饰线 常见值: None:没有…

【Ansible】模块详解

一、ansible概述 1.1 ansible介绍 Ansible 是一个基于 Python 开发的配置管理和应用部署工具,近年来在自动化管理领域表现突出。它集成了许多传统运维工具的优点,几乎可以实现 Pubbet 和 Saltstack 所具备的功能。 1.2 ansible能做什么 批量处理。An…

Git实战经验分享:深入掌握git commit --amend的进阶技巧

一、工具简介 git commit --amend是Git版本控制系统的核心补救命令,主要用于修正最近一次提交的元数据。该命令不会产生新的提交记录,而是通过覆盖原提交实现版本历史的整洁性,特别适合在本地仓库进行提交优化。 二、核心应用场景 提交信息…

软考 系统架构设计师系列知识点之杂项集萃(56)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(55) 第91题 商业智能关注如何从业务数据中提取有用的信息,然后采用这些信息指导企业的业务开展。商业智能系统主要包括数据预处理、建立()、数据分…

Spark任务调度流程详解

1. 核心调度组件 DAGScheduler:负责将Job拆分为Stage,处理Stage间的依赖关系。 TaskScheduler:将Task分配到Executor,监控任务执行。 SchedulerBackend:与集群管理器(如YARN、K8s)通信&#x…

第04章—技术突击篇:如何根据求职意向进行快速提升与复盘

经过上一讲的内容阐述后,咱们定好了一个与自身最匹配的期望薪资,接着又该如何准备呢? 很多人在准备时,通常会选择背面试八股文,这种做法效率的确很高,毕竟能在“八股文”上出现的题,也绝对是面…

Go语言的逃逸分析是怎么进行的

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

ARM 芯片上移植 Ubuntu 操作系统详细步骤

一、准备工作 (一)硬件准备 ARM 开发板:确保 ARM 开发板的型号与 Ubuntu 官方支持的 ARM 架构兼容,常见的 ARM 架构有 ARMv7、ARMv8 等。例如树莓派系列开发板,广泛用于 ARM 系统移植,其采用 ARM 架构。存…

两台服务器之前共享文件夹

本文环境 服务器A:ubuntu24.22系统 IP:10.0.8.1 服务器B:ubuntu24.22系统 IP:10.0.8.10 本操作旨在将服务器B的/opt/files目录共享给服务器A得/opt/files 在 B 服务器上设置共享 安装 NFS 服务: sudo apt -y install nfs-kernel-server编辑/etc/exports文件&…

超市销售管理系统 - 需求分析阶段报告

1. 系统概述 超市销售管理系统是为中小型超市设计的信息化管理解决方案,旨在通过信息化手段实现商品管理、销售处理、库存管理、会员管理等核心业务流程的数字化,提高超市运营效率和服务质量,同时为管理者提供决策支持数据。 2. 业务需求分…

GPIO控制

GPIO是General Purpose I/O的缩写,即通用输入输出端口,简单来说就是MCU/CPU可控制的引脚, 这些引脚通常有多种功能,最基本的是高低电平输入检测和输出,部分引脚还会与主控器的片上外设绑定, 如作为串口、I2…

Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库

介绍 Nexus 是广泛使用的仓库管理工具,常用于管理 Java 构件(如 JAR、WAR、EAR 文件)。它可以作为一个本地的 Maven 仓库,用来存储和管理项目的依赖包和构建产物。支持多种仓库类型,能够帮助开发团队更高效地管理构件…

Android 13 默认打开 使用屏幕键盘

原生设置里,系统-语言和输入法-实体键盘-使用屏幕键盘 选项, 关闭时,外接物理键盘,如USB键盘,输入时不会弹出软键盘。 打开时,外接物理键盘,如USB键盘,输入时会弹出软键盘。 这个选…

关于ubuntu下交叉编译arrch64下的gtsam报错问题,boost中boost_regex.so中连接libicui18n.so.55报错的问题

交叉编译gtsam时遇到的报错信息如下:gtsam需要连接boost, 解决办法: 1.重新编译boost可解决。 2.自己搞定生成一个libicui18n.so.55。 由于我们的boost是公用的,因此1不太可能(我试过重新编译完boost,在编译gtsam完…