Tcpdump配合Tcpreplay回放实现网络…

tcpdump与Wireshark协同抓包分析原理与实战指南 网络抓包是排查连接超时、DNS异常、服务通信失败等基础问题的核心手段。其底层依赖Linux内核PF_PACKET套接字与BPF过滤机制,实现报文在进入协议栈前的高效筛选与零拷贝采集;Wireshark则基于RFC规范进行逐层协议解析,通过Frame/Ethernet/IP/Transport四层解码还原通信行为。技术价值在于以最小系统开销获取高保真网络证据,支撑从流量定位、协议验证到根因定界的完整排障链路。典型应用场景包括生产环境HTTP/TCP异常诊断、容器网络流量捕获、DNS解析超时分析等。本文聚焦li 阅读详情
  • 实际上,这个需求来自IT的监控,监控的根本目标是随时发现局域网内的非法DHCP服务器,以报警。
  • 实现的具体策略:找一台机器,每分钟跑一次cron,执行检查并在出错时报警(邮件或者短信)。具体的核心策略是:模拟广播DHCP DISCOVER包,在规定时间内给出DHCP REPLY的就是当前有效的DHCP服务器,假设我们局域网内唯一合法的DHCP是192.168.1.1,当给出REPLY的主机列表中没有 192.168.1.1或者又其他的主机回复时,那就报警。整个策略的关键问题其实就是模拟广播DHCP DISCOVER包,其他的问题都很容易做。
  • 前提,不得不说,对于网络编程和C的libnet等库的理解非常少,所以首选的做法不是编写程序,而是打算找一个现成的发包工具。当然,现在想来如果使用 Perl的库来做这件事情似乎也并不难,只不过还没打算用这个办法,事情就已经解决了 smile
  • 为了避免说明有误解,我先把自己的测试环境说明一下:
       OS CentOS 4.7

        Tcpdump rpm tcpdump-3.8.2-12.el4_6.1
                tcpdump version 3.8
                libpcap version 0.8.3

        Tcpreplay rpm tcpreplay-3.3.2-1.el4.rf
                tcpreplay version: 3.3.2 (build 2065)
                Copyright 2001-2008 by Aaron Turner 
                Cache file supported: 04
                Not compiled with libnet.
                Compiled against libpcap: 0.8.3
                64 bit packet counters: enabled
                Verbose printing via tcpdump: disabled
                Packet editing: enabled
                Fragroute engine: enabled

 

DHCP扫盲

 

 

尝试过程

  • 首先我们需要了解自己发送的包应该长成什么样子,最直接的思路就是tcpdump或者wireshark(升级版ethereal) 抓l来看看
# 这里是两个工具的抓包命令详解,当然,这里我们只简单介绍一下我们用到的几个参数
 shell> tcpdump -s0 -vv -e -i eth0 -nn port 67 -c 100 -w yfang.cap
# -e: 打印连接层信息

# -vv: 打印详细信息
# -i eth0: 监听eth0网卡
# -nn:保留输出中的端口和协议使用数字格式
# -c 100:抓取满足条件的100个包,结束。否则会一直抓下去
# -s0: 这个参数对我们这次实验起着非常重要的作用,-s0表明不对包的尺寸进行裁剪,保持原来大小

# port 67: 不用多解释,因为DHCP协议主要是客户端与服务器端的67和68两个端口的信息交互
# -w yfang.cap: tcpdump默认把截获的包以文字形式输出到标准输出,-w参数强制按照cap格式输出到文件yfang.cap,用于后面我们replay
shell> wireshark
# 这个不用解释了,简单说一下,对于wireshark-gnome-1.0.3,filter格式会类似于“udp.port == 67”,而不支持以前的版本ethereal中 “port 67”这样的格式 # 另外一个问题,使用wireshark抓到很多包,如果想要保存其中选中的包,正解是:File->Save As->Selected packet only->写好文件名,保存就好了
  • 上面的命令是没有问题的,而在实验中开始没有加-s0参数,结果只截取到了一个不完整的包,导致后面replay失败。
  • 这里描述一下replay受挫详细过程
#首先截获一个DHCP包,注意,没有加-s0参数
 root@S71[1]~15:28:04
# tcpdump -e -i eth0 -nn port 67 -c 1 -w yfang.cap
#接下来replay这个包,不做任何修改,这里只用了两个参数 -i eth0不解释了,-l 3表示连续发这个包3次,其实测试的话,发一次也OK
root@S71[1]~15:28:14
# tcpreplay -i eth0 -l 3 yfang.cap
sending out eth0 processing file: yfang.cap processing file: yfang.cap processing file: yfang.cap Actual: 3 packets (288 bytes) sent in 0.23 seconds Rated: 12007.5 bps, 0.09 Mbps/sec, 125.08 pps Statistics for network device: eth0 Attempted packets: 3 Successful packets: 3 Failed packets: 0 Retried packets (ENOBUFS): 0 Retried packets (EAGAIN): 0
# 花开两支,在刚才那个命令执行之前,先在另一台服务器S172上(其实同一台也OK,为的是表明局域网其他机器可以看到包)监听包 [root@S172 ~]
# tcpdump -i eth0 port 67 -c 10

 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 15:28:16.023336 IP truncated-ip - 279 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:1b:77:59:ed:d2, length: 333 15:29:14.583293 IP truncated-ip - 279 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:1b:77:59:ed:d2, length: 333 15:29:14.591208 IP truncated-ip - 279 bytes missing! 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:1b:77:59:ed:d2, length: 333
# 我们注意到后面三行,三个奇怪的包,被truncate过了,这一点使用wireshark打开cap文件查看包的信息会看到下面这样的警告

# [Packet size limited during capture: BOOTP/DHCP truncated]
# 经过检查发现是-s参数的作用,加上-s0参数就好了
  • 现在我们已经知道怎么抓包了,如何简单区分DHCP各个包的具体信息呢,其实这一点上我个人推荐使用wireshark来分析,他不单会帮你抓好包,还会 标明DHCP的标志信息,比如是DISCOVER,REQUEST,ACK,OFFER 等等。不用自己去分析标志位。即便如此,这里还是为感兴趣的朋友列一下DHCP Massage Type 的区别
TCP协议核心机制与Linux内核调优实战指南 TCP协议作为传输层核心协议,通过滑动窗口、拥塞控制等机制保障网络通信可靠性。其流量控制原理基于动态窗口调整,配合BBR等算法可显著提升带宽利用率。在分布式系统与微服务架构中,合理配置tcp_syn_retries、tcp_tw_reuse等Linux内核参数,能有效解决高并发下的连接管理问题。典型应用场景包括视频直播流量优化、跨国文件传输加速等,通过tcp_window_scaling和tcp_congestion_control等参数调优,可实现40%以上的性能提升。 阅读详情

相关推荐

Wireshark抓包分析TCP协议实战指南

TCP协议作为传输层核心协议,通过序列号、确认应答和流量控制机制实现可靠数据传输。其三次握手建立连接、滑动窗口流量控制和四次挥手断开连接等机制,是网络工程师必须掌握的基础知识。借助Wireshark网络协议分析工具,可以直观观察TCP报文结构、标志位变化和连接状态转换,这对理解TCP工作原理和排查网络问题极具价值。本文以HTTP通信为例,演示如何使用Wireshark捕获TCP三次握手过程,解析源/目的端口、序列号、ACK号等关键字段,并介绍重传机制和流量控制等高级分析技巧,帮助开发者深入掌握网络协议分析能

weixin_34032621的博客 356

IP Truncated-ip 问题

今天碰到了一个诡异的网络问题:1、 一台机器Ping包开始延时很高或者大量丢包。2、 负载极低,什么都没有干。第一次碰到,赶紧抓包看看情况:很明确,原包应该是64字节,而机器只收到了43自己,少了21字节!!god, what's wrong?这样的情况往往是驱动或者底层内核模块处理包的时候导致,因为包的传输中可能涉及到内存拷贝。建议,升级驱动后者检查内核模块解决。 ...

weixin_34128237的博客 1749

Zynq/ZynqMP PL端以太网实战:从RGMII时序到Linux驱动深度适配

RGMII接口是嵌入式FPGA以太网设计的核心物理层标准,其本质是以精确时序补偿换取布线简化;理解RGMII的skew约束、时钟相位关系与IDELAYE2/ODDR硬件补偿机制,是实现千兆稳定通信的前提。在此基础上,PL端以太网将MAC控制权交还FPGA,带来确定性延迟、协议卸载和PHY兼容性解放等关键价值,但需深度协同Linux驱动、设备树、DMA引擎与EMIO系统资源。本文聚焦Zynq与ZynqMP平台,覆盖从Vivado时序约束、PHY初始化、axienet驱动七步移植到产线级RGMII眼图校准的全链

weixin_34111790的博客 381

Linux 下Tcpreplay 回放、tcprewrite改包、Tcpdump抓包 使用记录

tcreplay回放、tcprewrite修改报文、tcpdump抓包使用记录

Reality 5415

FPGA跑通100G UDP协议栈:移植适配与上板测试全记录

在高速网络传输场景中,FPGA凭借确定性延迟和可定制的数据路径,成为实现100G UDP协议栈的理想载体。与TCP复杂的状态机和重传机制相比,UDP无连接、无确认的特性大幅简化了硬件逻辑,使其在纳秒级帧间隔下依然能高效处理数据。基于verilog-ethernet等开源方案,开发者可以完全掌控RTL代码,灵活调整ARP、IP、UDP各层行为。这类方案广泛应用于高速数据采集回传、网络测试仪、分布式存储互联等场景,也是验证RoCEv2数据通路的前置步骤。不过实际移植过程中,参考时钟配置、AXI-Stream握手

weixin_33782386的博客 314

网络入侵检测系统NIDS实现指南:从抓包到告警聚合的完整路径

网络安全运维的核心挑战之一,是在攻击造成实际破坏前感知异常行为。基于网络的入侵检测系统(NIDS)通过旁路镜像交换机流量,在不影响业务的前提下持续分析报文,识别扫描、暴力破解、DDoS等威胁,成为流量安全方向的关键技术。其实现链路涉及抓包、协议解析、流表聚合、特征提取与规则匹配等多环节,既要平衡误报率与漏报率,也需合理设计告警聚合机制。实践经验表明,借助Scapy等工具可快速构建原型,结合公开数据集与自建攻击流量进行验证,并用tcpreplay回放实现回归测试。NIDS不仅适用于安全专业学生的毕业设计,也是

weixin_34161029的博客 341

Linux Tcpdump 详解

Content-type: text/html TCPDUMP Section: User Commands (1) Updated: 05 March 2009 Index Return to Main Contents   NAME tcpdump - dump traffic on a network   SYNOPSIS tcpdump [ -AdDe

米菲的泰迪 5223

入侵检测系统设计与实现:从架构选型到落地避坑

入侵检测系统(IDS)是网络安全防御体系中的关键组件,它通过旁路部署和流量分析实现网络攻击的感知与发现。理解IDS的原理,需要从数据采集、检测引擎选型、特征工程与模型训练等环节入手。误用检测依赖规则匹配,准确但难以应对未知威胁;异常检测通过流量基线识别偏离行为,泛化能力强但误报率较高。在实际工程中,往往采用规则引擎与机器学习模型协同的方式,结合Suricata等开源工具实现检测链路。本文还探讨了告警去重、降噪、基线检查与靶场验证等落地方法,帮助安全工程师规避从原型到生产过程中的典型问题,构建真正可用的网络安

weixin_34344403的博客 313

计算机网络是如何通信的「三」DNS

DNS是 Domain Name System 的缩写,也就是 域名解析系统,它的作用非常简单,就是根据域名查出对应的 IP地址。 你可以把它想象成一本巨大的电话本,比如当你要访问域名www.163.com,首先要通过DNS查出它的IP地址是112.48.162.8。 为啥需要DNS NS服务器: 说白了, 就是一台翻译 名字到IP 的 软件。 IP: IP就是IP, 详细看通信第一章,IP是协助我们实现跨设备、跨网络之间的通信协议。 下面, 我们来看一下逻辑关系: 假设某设备(充当DNS客户端)

qq_35789269的博客 4912

从零实现入侵检测系统:规则引擎、误报率调优与避坑指南

网络安全防护体系中,入侵检测系统(IDS)是区别于防火墙的动态监控核心,其价值在于对网络流量进行深度解析与行为建模,从而发现已知与未知威胁。IDS的工作原理通常分为数据采集、协议解析、规则匹配与告警输出四个环节,而衡量其有效性的关键指标并非检测率而是误报率——过高的误报会淹没真实攻击。在工程实践中,规则引擎的设计需分层考虑包级、流级与行为级检测,并通过统计基线、离线回放与证据留存等手段持续调优。无论是课程设计、毕业设计还是企业内网安全建设,掌握从零构建轻量级IDS的能力,理解自研引擎与Snort/Suric

weixin_34198881的博客 116

大数据环境下云计算入侵检测系统设计与实践

大数据与云计算环境的流量特征复杂多变,传统规则型NIDS难以应对高并发与瞬时攻击。围绕入侵检测系统的数据驱动改造,本文阐述了一套分层采集、实时计算与自适应告警的完整架构:通过Packetbeat与Kafka构建数据底座,利用Flink进行窗口特征聚合,引入孤立森林识别异常,并以z-score动态基线降噪。该方案适用于云平台安全监控,可有效降低误报率,提升未知威胁发现能力。从概念到工程实践,为云上安全平台建设提供参考。

weixin_33850015的博客 364

Tcpdump配合Tcpreplay回放实现网络探测

实际上,这个需求来自IT的监控,监控的根本目标是随时发现局域网内的非法DHCP服务器,以报警。 实现的具体策略:找一台机器,每分钟跑一次cron,执行检查并在出错时报警(邮件或者短信)。具体的核心策略是:模拟广播DHCP DISCOVER包,在规定时间内给出DHCP REPLY的就是当前有效的DHCP服务器,假设我们局域网内唯一合法的DHCP是192.168.1.1,当给出REPLY的主机

LBY8203XJ的专栏 4033

【模拟电子设计实战】开源!基于Multisim与AD620的心电采集电路仿真与优化

本文详细介绍了基于Multisim与AD620的心电采集电路仿真与优化实战。通过分析心电信号采集的挑战,重点讲解了AD620仪表放大器和OP07运算放大器的选型优势及电路设计技巧,包括对抗50Hz工频干扰和基线漂移的优化方法。文章还分享了Multisim仿真参数设置与实测对比经验,最终实现性能达标的心电采集电路设计。

weixin_30555125的博客 95

tcpreplay 流量回放实战:pcap 改造、速率控制与双网卡靶场

网络抓包生成的 pcap 文件记录了真实链路层字节、协议组合与时序,但要让这些历史流量在测试环境重新生效,需要绕过内核协议栈、按原始套接字把帧注入网卡。流量回放工具 tcpreplay 的价值在于复现内容正确、时序真实的混合流量,而不是生成固定五元组压测流。配合 tcprewrite 改写 MAC/IP/端口并修复校验和,tcpprep 标记双向流量,可搭建双网卡串接靶场,用于 IDS/IPS、WAF、DPI 检测率验证和故障复现。实际落地还要关注速率控制、校验和 offload、网卡过滤与发送端瓶颈。围绕

weixin_34302798的博客 357

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1079

(SCADA)监控与数据采集系统

SCADA应用于监控和采集数据来控制工业过程软件。它通过收集和传输实时数据,帮助操作员监视和控制各种设备和过程。

软件技术的专栏 4541

Tcpreplay教程

第1章. 说明 本文档只适用于Tcpreplay3.x。 第2章. Tcpreplay系列工具 2.1. 概述 首先推荐一个网站:http://tcpreplay.synfin.net/,上面有Tcpreplay的安装包和很多文档,包括手册、man页和FAQ等。本文也是在参考这个网站的基础上,通过一些实验而得出的。 Tcpreplay是一系列工具的总称,包括tcpreplay、tcprewrite

nuoline的专栏 4191

Labelme AI-Polygon闪退排查与修复指南

本文详细介绍了Labelme AI-Polygon功能闪退问题的排查与修复方法,包括环境配置检查、模型路径设置、依赖库版本控制等关键步骤。通过系统性的解决方案和实用技巧,帮助用户快速解决闪退问题,确保数据标注工作的高效进行。

weixin_29311017的博客 139

Kuse Cowork AgentLoop深度拆解:多轮工具调用与流式响应的Rust实现原理

Kuse Cowork 是一款开源的 Claude Cowork 桌面应用替代品,基于 Tauri + Rust 构建,其核心引擎 AgentLoop 用不到 1000 行 Rust 代码实现了多轮工具调用循环与 SSE 流式响应解析,让 AI 能自主读取文件、执行命令并持续迭代直至任务完成。本文带你逐层拆解 AgentLoop 的运行机制。 [![Kuse Cowork 应用图标](https

gitblog_00757的博客 396

大疆OcuSync系统背后的黑科技:跳频扩频技术如何让你的无人机飞得更稳

本文深入解析了大疆OcuSync系统如何运用跳频扩频技术等先进无线通信方案,显著提升无人机在复杂环境下的飞行稳定性。系统通过跳频扩频与直接序列扩频技术协同工作,结合双频智能切换与多天线MIMO,有效对抗信号干扰与多径效应,确保控制指令与高清图传的可靠、低延迟传输,为用户带来更安心、更流畅的飞行体验。

ol7890123的博客 627

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 625
上一篇: Linux网络发包工具PK
下一篇: Tcpreplay教程
nuoline
博客等级 码龄18年 345粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值