You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kali Linux中发送pcap文件数据包并重传Wireshark捕获的数据包

Kali Linux下重传pcap数据包的操作方法

以下两种方案可以完全替代Windows下ColaSoft Packet Builder的提取、修改、重传Wireshark捕获数据包的需求:

方法1:使用tcpreplay(快速重放pcap的首选工具)

tcpreplay是专门用于pcap包重放的工具,操作简单,支持调整重放速度、循环次数等参数:

  • 安装命令(Kali默认未预装时执行):apt update && apt install tcpreplay
  • 提前准备工作:先用ip a查询你用于发包的网卡名称(比如eth0、wlan0),如果只需要重放pcap中的特定数据包,先在Wireshark中筛选出目标包,单独导出为新的pcap文件即可
  • 基础重放命令:tcpreplay -i 你的网卡名 目标pcap文件路径
  • 常用可调参数:
    • -t:忽略原始数据包的时间间隔,全速重放
    • -x N:按N倍原始时间间隔的速度重放,比如-x 2就是2倍速重放
    • -l N:设置循环重放的次数,默认只重放1次

方法2:使用Scapy(支持自定义修改数据包内容)

如果你需要先修改数据包的MAC、IP、端口、载荷等内容再发送,推荐用Kali默认预装的Scapy工具:

  • 进入Scapy交互界面:执行sudo scapy
  • 读取pcap文件中所有数据包:packets = rdpcap("目标pcap文件路径")
  • 直接重放所有数据包:sendp(packets, iface="你的网卡名")
  • 提取特定范围的数据包重放:比如只重放第3到第6个包,执行sendp(packets[2:5], iface="你的网卡名")(索引从0开始计数)
  • 修改数据包后再重放示例:比如修改所有包的目标MAC地址后发送
    for p in packets:
        p[Ether].dst = "aa:bb:cc:dd:ee:ff"
    sendp(packets, iface="你的网卡名")
    

注意事项

  • 所有发包操作都需要root权限,命令前需加sudo或提前切换到root用户
  • 未获得授权的情况下不要在公共网络、生产网络中随意重放数据包,避免触发安全规则或造成网络故障
  • 如果重放TCP会话数据包时出现连接中断,大概率是系统内核自动回复了RST包,可执行iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 目标IP -j DROP临时屏蔽RST包发送

内容的提问来源于stack exchange,提问作者DownTop_oil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:36:07