【网络分析工具】网络工具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 过滤
tcp
过滤所有 TCP 协议的数据包。tcp.port == 80
过滤 TCP 端口为80
的数据包(HTTP 流量)。tcp.port == 443
过滤 TCP 端口为443
的数据包(HTTPS 流量)。tcp.srcport == 8080
过滤 TCP 源端口为8080
的数据包。tcp.dstport == 22
过滤 TCP 目标端口为22
的数据包(SSH 流量)。
TCP 连接状态过滤
tcp.flags.syn == 1 && tcp.flags.ack == 0
过滤 TCP SYN 包(第一次握手)。tcp.flags.syn == 1 && tcp.flags.ack == 1
过滤 TCP SYN-ACK 包(第二次握手)。tcp.flags.ack == 1 && tcp.flags.syn == 0
过滤 TCP ACK 包(第三次握手)。tcp.flags.fin == 1
过滤 TCP FIN 包(断开连接请求)。tcp.flags.reset == 1
过滤 TCP RST 包(重置连接)。
TCP 数据分析
tcp.payload
过滤包含 TCP 负载的数据包。tcp.len == 100
过滤 TCP 负载长度为100
字节的数据包。tcp.len > 500
过滤 TCP 负载长度大于500
字节的数据包。
TCP 重传和异常
tcp.analysis.retransmission
过滤 TCP 重传的数据包。tcp.analysis.zero_window
过滤 TCP 零窗口数据包(接收方缓冲区已满)。tcp.analysis.window_update
过滤 TCP 窗口更新的数据包。tcp.analysis.duplicate_ack
过滤 TCP 重复确认的数据包。
组合过滤
tcp && ip.src == 192.168.1.1 && tcp.port == 80
过滤源 IP 为192.168.1.1
且端口为80
的 TCP 数据包。(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (tcp.flags.fin == 1)
过滤 TCP 建立连接和断开连接的数据包。tcp.analysis.retransmission || tcp.analysis.zero_window
过滤 TCP 重传和零窗口的数据包。
保存过滤结果
- 在 Wireshark 中应用过滤后,点击菜单栏的
File
->Export Specified Packets
。 - 选择
All packets
或Displayed
。 - 保存为
.pcap
或.pcapng
文件。
示例场景
tcp.port == 80
过滤所有 HTTP 流量(TCP 端口为 80)。tcp.flags.syn == 1 && tcp.flags.ack == 0
过滤 TCP 握手的 SYN 包。tcp.analysis.retransmission
过滤所有 TCP 重传的数据包。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
相关文章:

【网络分析工具】网络工具wireshark、TCPdump、iperf使用详解
这里写目录标题 1. wireshark1.1. 过滤包1.2. 常见分析 2. tcpdump3. iperf 1. wireshark **ip.dst eq 10.0.0.21** 是用于网络流量分析工具(例如 Wireshark 或 tcpdump)的过滤器表达式。 它的作用是筛选出所有目标IP地址为 10.0.0.21 的数据包 IP.add…...

debian中笔记本的省电选择auto-cpufreq
在reddit中,看评论区出现这个软件,于是打算尝试一下,应该能对不使用电源时笔记本的省电起到一定的作用。 https://github.com/AdnanHodzic/auto-cpufreq?tabreadme-ov-file#why-do-i-need-auto-cpufreq 作用 One of the problems with Linux…...

力扣热题100之环形链表 II
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…...

【记录】HunyuanVideo 文生视频工作流
HunyuanVideo 文生视频工作流指南 概述 本指南详细介绍如何在ComfyUI中使用腾讯混元HunyuanVideo模型进行文本到视频生成的全流程操作,包含环境配置、模型安装和工作流使用说明。 参考:https://comfyui-wiki.com/zh/install/install-comfyui/install-c…...

SpringCloud之Ribbon基础认识-服务负载均衡
0、Ribbon基本认识 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端 负载均衡的工具。 Ribbon 主要功能是提供客户端负载均衡算法和服务调用 Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。 Ribbon 会基于某种规则(如简单…...
[Java实战]Spring Boot 静态资源配置(十三)
[Java实战]Spring Boot 静态资源配置(十三) 引言 静态资源(如 HTML、CSS、JavaScript、图片等)是 Web 应用的基石。Spring Boot 通过自动化配置简化了静态资源管理,但面对复杂场景(如多模块项目、CDN 集成…...

重生之我在2024学Fine-tuning
一、Fine-tuning(微调)概述 Fine-tuning(微调)是机器学习和深度学习中的一个重要概念,特别是在预训练模型的应用上。它指的是在模型已经通过大量数据训练得到一个通用的预训练模型后,再针对特定的任务或数据…...

Selenium Web自动化测试学习笔记(一)
自动化测试 技术手段模拟人工,执行重复性任务,准确率100%,高于人工 selenium 可通过浏览器驱动控制浏览器,通过元素定位模拟人工,实现web自动化,没有焦点(把浏览器放在最小化依然可以&#x…...

2025年5月15日前 免费考试了! Oracle AI 矢量搜索专业认证
2025年5月5日前 免费考试了! Oracle AI 矢量搜索专业认证 立刻预约吧 文章目录 2025年5月5日前 免费考试了! Oracle AI 矢量搜索专业认证立刻预约吧🔍 探索 AI 向量搜索的强大功能!🎯 学习路径目标Ὦ…...
服务器不备案有影响吗
在当今数字化的时代,服务器成为了众多企业和个人开展业务、展示自我的重要工具。然而,有一个问题常常被忽视,那就是服务器不备案到底有没有影响? 答案是肯定的!服务器不备案,影响可不小。据相关数据显示&a…...

EasyRTC嵌入式音视频通话SDK驱动智能硬件音视频应用新发展
一、引言 在数字化浪潮下,智能硬件蓬勃发展,从智能家居到工业物联网,深刻改变人们的生活与工作。音视频通讯作为智能硬件交互与协同的核心,重要性不言而喻。但嵌入式设备硬件资源受限,传统音视频方案集成困难。EasyRT…...
力扣-21.合并两个有序链表
题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 class Solution { public:ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {ListNode *l new ListNode(-1);ListNode *p l;while (list1 &&…...
多线服务器具有什么优势
在当今数字化飞速发展的时代,多线服务器宛如一位低调的幕后英雄,默默为我们的网络世界提供着强大的支持。那么,多线服务器到底具有哪些令人瞩目的优势呢 首先,多线服务器的最大优势之一就是网络访问的高速与稳定。想象一下&#x…...
ESP32 PWM音频应用及场景说明
ESP32芯片的PWM(脉冲宽度调制)功能在音频应用中具有广泛用途,尤其是在低成本、低功耗的场景中。以下是具体的应用举例和应用场景说明: 一、ESP32 PWM音频应用举例 1. 简单音频播放 实现方式:通过PWM生成模拟音频信号&…...
C++.变量与数据类型
C++变量与数据类型 1. C++变量与数据类型1.1 基本数据类型1.2 复合数据类型2.1 定义方式2.2 常量类型3.1 数据类型修饰符3.2 存储类修饰符3.3 类访问修饰符4.1 算术运算符4.2 关系运算符4.3 逻辑运算符4.4 赋值运算符4.5 条件运算符4.6 位运算符5. 总结5.1 变量与数据类型5.2 常…...
Compose笔记(二十二)--NavController
这一节主要了解一下Compose中的NavController,它是实现导航功能的核心组件,提供了强大而灵活的页面管理能力,用于管理导航图中的目的地和执行导航操作。 API navigate(route: String) 含义:导航到指定路由的目的地。 作用&#x…...
SQL:SELF JOIN(自连接)与CROSS JOIN(交叉连接)
目录 SELF JOIN(自连接) CROSS JOIN(交叉连接 / 笛卡尔积) 示例: SELF JOIN CROSS JOIN 如果没有 DATEDIFF() 函数怎么办? 🔍 SELF JOIN vs CROSS JOIN 对比总结 SELF JOIN(自…...
互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-1
互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-1 场景背景 在某互联网大厂的技术面试中,技术总监张总正在面试一位名为郑薪苦的求职者。郑薪苦虽然对技术充满热情,但回答问题时总是带着幽默感,有时甚至让人哭笑不得。…...

Ubuntu 22.04.5 LTS 基于 kubesphere 安装 cube studio
Ubuntu 22.04.5 LTS 基于 kubesphere 安装 cube studio 前置条件 已经成功安装 kubesphere v4.3.1 参考教程: https://github.com/data-infra/cube-studio/wiki/%E5%9C%A8-kubesphere-%E4%B8%8A%E6%90%AD%E5%BB%BA-cube-studio 1. 安装基础依赖 # ubuntu安装基础依赖 apt insta…...

1.短信登录
1.0 问题记录 1.0.1 redis 重复 token 问题 每次用户登录时,后端会创建一个新的 token 并存入 Redis,但之前登录的 token 还没有过期。这可能会导致以下问题: 1. Redis 中存在大量未过期但实际已不使用的 token2. 同一用户可能有多个有效 …...

Linux-Ubuntu安装Stable Diffusion Forge
SD Forge在Win上配置起来相对简单且教程丰富,而在Linux平台的配置则稍有门槛且教程较少。本文提供一个基于Ubuntu24.04发行版(对其他Linux以及SD分支亦有参考价值)的Stable Diffusion ForgeUI安装配置教程,希望有所帮助 本教程以N…...

MixTeX - 支持CPU推理的多模态LaTeX OCR
文章目录 一、项目概览相关资源核心特性技术特点 二、安装三、使用说明环境要求 四、版本更新五、当前限制 一、项目概览 MixTeX是一款创新的多模态LaTeX识别小程序,支持本地离线环境下的高效CPU推理。 无论是LaTeX公式、表格还是混合文本,MixTeX都能轻…...
生成了一个AI算法
import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms # 1. 数据预处理 transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)) # MNIST单通道归一化 ]) train_da…...

23、DeepSeek-V2论文笔记
DeepSeek-V2 1、背景2、KV缓存优化2.0 KV缓存(Cache)的核心原理2.1 KV缓存优化2.2 性能对比2.3 架构2.4多头注意力 (MHA)2.5 多头潜在注意力 (MLA)2.5.1 低秩键值联合压缩 (Low-Rank Key-Value …...
关键字where
C# 中的 where 关键字主要用在泛型约束(Generic Constraints)中,目的是对泛型类型参数限制其必须满足的条件,从而保证类型参数具备特定的能力或特性,增强类型安全和代码可读性。 约束写法说明适用场景举例C#版本要求w…...

【算法专题十一】字符串
文章目录 1. leetcode.14.最长公共前缀1.1 题目1.2 思路1.3 代码 2. leetcode.5.最长回文字串2.1 题目2.2 思路2.3 代码 3. leetcode.67.二进制求和3.1 题目3.2 思路3.3 代码 4. leetcode.43.字符串相乘4.1 题目4.2 思路4.3 代码 1. leetcode.14.最长公共前缀 1.1 题目 题目链…...

美化IDEA注释:Idea 中快捷键 Ctrl + / 自动注释的缩进(避免添加注释自动到行首)以及 Ctrl + Alt + l 全局格式化代码的注释缩进
打开 Settings 界面,依次选择 Editor -> Code Style -> Java,选择 Code Generation, 取消 Line comment at first column 和 Block comment at first column 的勾选即可, 1、Line comment at first column (行注释在第一列…...
如何为APP应用程序选择合适的服务器
搭建一个成功的APP应用程序,服务器选择是至关重要的决策之一。合适的服务器不仅能确保应用流畅运行,还能节省成本并保障安全性。本文将为您详细解析如何为APP选择最佳服务器方案。 一、了解您的APP需求 在选择服务器前,首先需要明确您的应用…...

赛灵思 XCZU11EG-2FFVC1760I XilinxFPGAZynq UltraScale+ MPSoC EG
XCZU11EG-2FFVC1760I 是 Zynq UltraScale MPSoC EG 系列中性能最强的器件之一,集成了四核 ARM Cortex-A53 应用处理器、双核 Cortex-R5 实时处理器与 Mali-400 MP2 GPU,并结合了 653,100 个逻辑单元与丰富的片上存储资源,可满足高性能计算、A…...

Android Camera HAL v3 and Video4Linux 2
《小驰行动派的知识星球》 ———————————————— 推荐阅读: 关于博主 《小驰Camera私房菜》小册目录 采用v4l2loopback来实现 虚拟Camera Camera基础及一些基本概念 Android Camera 学习路线 | 个人推荐 Android Camera开发系列(干货满满&a…...