tcpreplay的安装与使用

  • 一、前言
  • 二、安装
  • 三、使用
  • 四、常见问题

一、前言

  tcpreplay是一系列工具的集合。包括(tcpprep、tcprewrite、tcpreplay和tcpbridge)其中tcpreplay是真正实现流量回放功能的工具,其他几个工具可以看作tapreplay的辅助工具,作为流量重放前期的准备工作,比如tcpprep可以划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发。tcprewrite可以就是修改2层, 3层, 4层报文头部,也就是可以将IP,MAC等信息修改为你期望的值。

官网: http://tcpreplay.appneta.com/


二、安装

  (1)在线安装

  CentOS环境下直接,在线安装执行下列命令即可:

yum -y install tcpreplay

  查看安装是否成功:

tcpreplay -V

  安装成功,会显示如下图所示信息:

  查看帮助文档命令如下:

tcpreplay -h

  会显示如下图所示信息:


  (2)离线安装

  当在线安装失败时可以选择离线安装,需要准备Bison、flex、libpcap、m4、tcpreplay依赖包,注意依赖包高低版本不兼容,以上均为离线包。为了节省大家时间,即将相应的依赖包整理好: 点击这里获取依赖包.

  1.把所需依赖包和tcpreplay上传至服务器

  2.执行脚本 sh libpcap-install

  3.执行完脚本,会出现四个安装包分别是Bison、flex、libpcap、m4

  4.依次进入Bison、flex、libpcap、m4执行以下命令:

./configure
make
make install

  命令完成且无报错后,libpcap才能正常使用。安装完libpcap后,可以安装tcpreplay,进入tcpreplay-4.1.2执行上一步的三个命令编译安装。安装完成后,执行tcpreplay -vesion能查看版本信息,-help查看帮助信息。

注意: 1.编译安装libpacp时,可能会报错configure:error: Your operating system’s lex is insufficient to compile libpcap
    2.编译安装bison时,可能会报错 configure:error: GNU M4 1.4 is required”
解决方案: 此时应确认服务器是否安装有GCC编译器,如果没有GCC编译器,请安装后,再次执行下面的安装操作,GCC编译器的安装方法不再阐述。


三、使用

  (1)快速使用

tcpreplay -i eth0 p.pcap

  快速使用: 其中 p.pcap 是用wireshark或者tcpdump抓取的流量包


  (2)高级使用

  查看本机网卡信息,命令如下:

tcpreplay --listnics

  可以 看到网卡信息,如下

Available network interfaces:
eth0
eth1
any

  将 p.pcap 文件进行 tcpprep 操作,制作 cache 文件

tcpprep -an client -i p.pcap -o p.cache –v

  执行发包语句参数说明:

tcpreplay -i eno2 -p 1000 -l 100000000 56to300010w.pcap

-i:所使用的网卡,如网卡为ens33或者eth0,那么改为正确的网卡名称
1000:每秒钟向接收机发送的eps速率
1000000000:最大发送的eps数量
56to300010w.pcap:用于tcpreplay回放syslog的.pcap文件


  (3)使用tcprewrite修改.pcap文件的相关参数

tcprewrite --srcipmap=0.0.0.0/0:10.0.0.101/24 --dstipmap=0.0.0.0/0:10.41.48.131/32 --enet-dmac=00:50:56:81:a9:fb  --infile=57_163.pcap --outfile=test.pcap -C

1.Srcipmap:模拟发送的设备IP、ip后缀/24为子网掩码,可填/24/32
/24为模拟同网络下多个ip回放报文,/32为单个ip回放报文。具体可视情况修改调试。

2.Dstipmap:回放报文的目标IP Enet-dmac: 目标mac,可在目标服务器使用ipconfig或者ip addr查看

3.Infile:打开的.pcap文件名 Outfile: 输出的.pcap文件名


四、常见问题

  (1)为什么在服务器上收不到tcpreplay回放的报文?
  在目标服务器上使用tcpdump命令进行抓包,抓取接收报文的网卡数据:
  检查输出信息,例命令如下:

tcpdump -i eth0 port 514

  (2)抓不到包,也接收不到报文。
  检查发包机和目标机是否能ping通,能ping通,再检查执行的tcpreplay命令参数和修改.pcap文件的语句是否正确。


  (3)常用命令实例:

tcpreplay -i eth0 -p 1000 -l 100000000 --limit=200000  test.pcap

  解释:使用eth0网口以每秒1000EPS的速率,向test.pcap文件中改写的 目标IP进行持续发包,限制最大发包数100000000,当发送包数达到200000 时,直接停止发送(–limit的作用)。


tcpreplay -i eth0 -p 5000 -l 100000000 --duration=10  test.pcap

  解释:使用eth0网口以每秒5000EPS的速率,向test.pcap文件中改写的 目标IP进行持续发包,限制最大包数100000000,当发包时间达到10秒时 (–duration), 停止发送。


nohup tcpreplay -i eth0 -p 5000 -l 100000000  test.pcap &

  解释:语句中的Nohup+&代表该命令会在后台开启一个线程来运行,若要停 止发送,执行ps -ef |grep tcpreplay ,kill -9 进程PID。


tcpreplay的安装与使用相关推荐

  1. tcpreplay工具安装使用

    一.Tcpreplay功能简介 首先推荐一个网站:http://tcpreplay.synfin.net/ ,上面有Tcpreplay的安装包和很多文档,包括手册.man页和FAQ等. Tcprepl ...

  2. linux发包密码,linux下网络发包工具(cp过来的)

    第1章.     说明 本文档只适用于Tcpreplay3.x. 第2章.     Tcpreplay系列工具 2.1. 概述 首先推荐一个网站:http://tcpreplay.synfin.net ...

  3. tcprewrite批量修改报文ip地址一

    简单的说,tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层 ...

  4. java libpcap,tcpreplay安装失败,libpcap / collect

    我无法在RHEL 6.6上安装tcpreplay 当我尝试运行./configure时出现以下错误 checking for inet_addr... yes checking for libpcap ...

  5. linux centos tcpreplay 重放数据

    tcpreplay是什么? 简单的说, tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意 ...

  6. centos下 Tcpreplay 重放数据(流量采集重放)

    tcpreplay是什么? 简单的说, tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意 ...

  7. suricata的netmap抓包模式安装

    suricata 简介 Suricata 是一个免费.开源.成熟.快速.健壮的网络威胁检测引擎.Suricata 引擎能够进行实时入侵检测(IDS).内联入侵预防(IPS).网络安全监控(NSM)和离 ...

  8. Libnet 特点 安装 开发流程 libnet_init libnet_destroy libnet_build_udp libnet_build_ipv4 libnet_build_ethern

    粉丝不过W Libnet 概念 专业的构造和发送网络数据包的开发工具包 是个高层次的 API 函数库,允许开发者自己构造和发送网络数据包 Libnet 特点 隐藏了很多底层细节,省去了很多麻烦:如缓冲 ...

  9. Tcpreplay让协议测试从此无忧

    我是一枚在软件测试行业泡了7年的妹纸,想分享点自己的一些心得体会.在我刚接触协议测试那会,相当迷茫.过程中一系列的问题便不约而至,例如: ·如何明确入参出参? ·如何掌控流量? ·如何重现bug? · ...

  10. linux环境下nacos的安装+启动,阿里云服务器安装nacos

    nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...

最新文章

  1. android pjsip 2.5编译,在Android中构建PJSiP时出错
  2. HSQLDB安装与使用
  3. 开启注册丨NeurlPS 2021论文预讲会议题全公开,4大主题和25场报告等你来
  4. android 8.0 intent,Android 8.0通知栏适配问题
  5. python中remove函数是什么意思,python中pop函数和remove函数有什么区别
  6. Ubuntu安装rabbitMQ及单机版rabbitMQ集群配置
  7. ct读片软件_伦琴影领影像诊断中心:这六大MRI读片技巧,影像医生必须掌握
  8. Zabbix的故障与恢复邮件设置
  9. ITK:在向量容器上迭代
  10. The import android cannot be resolved”错误解决方法
  11. iOS之深入解析多环境配置的实现方案
  12. lintcode 中等题:Single number III 落单的数III
  13. java 创建日程到期提醒_晓日程 微信日历加桌面日历,规划时间,掌握未来
  14. 如何将你的 MySQL 查询速度提升 300 倍
  15. TableViewCell 自定义分割线
  16. 易语言 火眼 哈勃 防分析源码
  17. js使用在指定数据前面或后面插入数据,对List数据排序
  18. 永磁同步直流无刷电机空间矢量SPWM,SVPWM
  19. 二进制,CPU,操作系统
  20. OneNote 与 OneNote 2016 有什么区别?

热门文章

  1. 【AAE】【Keras】实现merge出错:TypeError: ‘module‘ object is not callable
  2. 简简单单批量安装windows主机
  3. matlab 关于interpreter的使用
  4. JAVA时间字符串去空格、冒号和横杠
  5. struct files_struct和struct fdtable
  6. 编译原理(八)消除空产生式
  7. mysql计算年休假天数_年休假天数计算方法是怎样的
  8. IE8中怎样使用脚本隐藏弹出窗口的地址栏
  9. signature=3e113c2e337ada93de6227c65daceed1,Informed Consent: It Is More Than Just a Document
  10. EagleEye论文+代码