tcpreplay的安装与使用

这篇具有很好参考价值的文章主要介绍了tcpreplay的安装与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景介绍

tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试。

tcpreplay本身包含了几个辅助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge), 用于准备发包的cache, 重写报文等。

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

  • tcpprep - 简单的说就是划分哪些包是client的, 哪些是server的, 一会发包的时候client的包从一个网卡发, server的包可能从另一个网卡发。即区分pcap数据包的流向,即区分出客户端和服务器。
  • tcprewrite - 简单的说就是修改2层, 3层, 4层报文头部。即改写pcap数据包的2-4层的头部信息,即MAC地址、IP地址和PORT等。
  • tcpreplay - 真正发包, 可以选择主、从网卡, 发包速度等。即回放pcap文件中的数据包。
  • tcpreplay-edit-更写pcap数据并回放,将tcprewrite和tcpreplat一条命令实现。
  • tcpbridge - 利用tcprewrite的功能实现两个网络部分的桥接

二、安装

1、在线安装

CentOS环境下直接在线安装:

yum -y install tcpreplay 

Ubuntu环境下直接在线安装(有bug,推荐离线):

sudo apt install libpcap-dev
sudo apt install tcpreplay

查看安装是否成功:

sudo tcpreplay -V

安装成功,会显示如下图所示信息:
tcpreplay,网络,linux,服务器,tcp
查看帮助文档命令如下:

tcpreplay -h
2、离线安装
 解压依赖 tar zxvf libpcap-1.9.1.tar.gz
 
 编译 ./configure 
 
 make && make install
 
 解压安装包 tar zxvf tcpreplay-4.1.0.tar.gz
 
 编译 ./configure --enable-dynamic-link
 
 make && make install

三、tcpreplay工具使用

命令格式:tcpreplay [-flags] [-flag [value]] [--option-name[[=| ]value]] <pcap_file(s)>

命令参数如下图:
tcpreplay,网络,linux,服务器,tcp

(1)快速使用
tcpreplay -i eth0 p.pcap

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

(2)高级使用

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

tcpreplay --listnics

可以 看到网卡信息,如下

Available network interfaces:
vethea91bfc
veth80236a7
veth3676c9e
ens33
veth230fd33
veth9dc5845
veth0023549
br-a94abb025497
veth2656707
any
docker0
nflog
nfqueue
usbmon1
usbmon2

四、示例

1、将 1.pcap 文件进行 tcpprep 操作,制作 cache 文件
tcpprep -a client -i 1.pcap -o 2.pcap -v
2、使用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
  • Srcipmap:模拟发送的设备IP、ip后缀/24为子网掩码,可填/24/32
    /24为模拟同网络下多个ip回放报文,/32为单个ip回放报文。具体可视情况修改调试。
  • Dstipmap:回放报文的目标IP Enet-dmac: 目标mac,可在目标服务器使用ipconfig或者ip addr查看
  • Infile:打开的.pcap文件名 Outfile: 输出的.pcap文件名
3、执行发包语句参数说明:
tcpreplay -i eno2 -p 1000 -l 100000000 3.pcap
  • -i:所使用的网卡,如网卡为ens33或者eth0,那么改为正确的网卡名称
  • 1000:每秒钟向接收机发送的eps速率
  • 1000000000:最大发送的eps数量
  • 3.pcap:用于tcpreplay回放syslog的.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。文章来源地址https://www.toymoban.com/news/detail-786012.html

其他示例(1、2已验证)
1.预处理生成Cache:
tcpprep -a client -i test.pacp -o test.cache 
这条命令将PCAP文件分成客户端和服务端,默认为客户端。发送时packet将分别从客户端和服务端发出。

2.重写IP地址和MAC地址:
tcprewrite -e 192.85.1.2:192.85.2.2 --enet-dmac=00:15:17:2b:ca:14,00:15:17:2b:ca:15 --enet-smac=00:10:f3:19:79:86,00:10:f3:19:79:87 -c test.cache -i test.pcap -o 1.pcap  
这条命令将eth0设为服务端接口,eth1设为客户端接口,重写了IP和MAC,可通过wireshark等工具打开1.pcap,查看修改是否成功。
 
3.重放packet:
tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap

到了这里,关于tcpreplay的安装与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用串口重定向为服务器安装linux操作系统

    在不借助显卡,通过串口来完成安装过程中的配置等选项。总结整个流程如下,方法很简单。在信创x86的设备上所使用的是redhat 7.4以及kylinOS的操作系统,串口工具是secureCRT。 首先进入Bios将串口重定向打开,并选择boot management,进入安装盘的启动界面 然后在启动界面的第一

    2023年04月09日
    浏览(38)
  • Linux安装ntp并使用阿里云配置ntp服务器

    安装 NTP 客户端: 打开终端,以 root 权限执行以下命令来安装 NTP 客户端: 编辑 NTP 配置文件: 使用文本编辑器打开 NTP 的配置文件 /etc/ntp.conf ,例如使用 nano 编辑器: 配置 NTP 服务器: 在打开的配置文件中,查找并修改服务器行,添加阿里云的 NTP 服务器地址。注释掉现有

    2024年02月11日
    浏览(46)
  • Linux网络编程:socket、客户端服务器端使用socket通信(TCP)

    socket(套接字),用于网络中不同主机间进程的通信。 socket是一个伪文件,包含读缓冲区、写缓冲区。 socket必须成对出现。 socket可以建立主机进程间的通信,但需要协议(IPV4、IPV6等)、port端口、IP地址。          (1)创建流式socket套接字。                 a)此s

    2024年02月11日
    浏览(43)
  • linux 服务器搭建web网站防御秘籍之雷池WAF包含入门介绍-安装-使用-升级更新

    我们在安装了Linux服务器并使用了宝塔面板后发现,宝塔的WAF需要升级版本才能使用。尽管市面上有很多免费的开源WAF解决方案,但我们对它们的学习成本感到有些高,而且对于我们这个刚开始建站的小型项目来说,也不想花费一千多块钱来购买商业WAF每年的许可费。 因此,

    2024年02月03日
    浏览(39)
  • 【超简易安装】在linux集群服务器上使用conda安装高版本cuda(cuda-11.8)和pytorch2.0

    由于项目代码要求pytorch2.0版本,而pytorch2.0版本需要cuda11.8,高于我之前的11.0的cuda版本。 因此考虑使用conda新建一个虚拟环境,在里面使用高版本的cuda和pytorch。 我使用的是lunix多人集群服务器。集群服务器需要用作业调度系统,也就是bsub命令之后才能提交作业,运行任务。

    2024年03月17日
    浏览(35)
  • Linux - 进阶 NFS服务器 详解网络共享服务器 ( 预备知识)

               N  :  就是 网络 Network          F   :     就是  File  文件         S   :  system          简称为 网络文件系统                 官方   :               NFS 是一种古老的用于UNIX/LINUX主机之间进行文件共享的协议              Network  File  System 网

    2024年02月13日
    浏览(35)
  • win11 使用 WSL2 安装 linux 子系统 ubuntu 出现错误:无法解析服务器的名称或地址

    解决方法: 记事本打开 C:WindowsSystem32driversetchosts 文件, 添加如下解析地址 #raw.githubusercontent.com 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com ifconfig /flushdns 查看可安装的 WSL wsl --list --onlin

    2024年04月27日
    浏览(45)
  • linux并发服务器 —— linux网络编程(七)

    C/S结构 - 客户机/服务器;采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互;C/S结构中,服务器 - 后台服务,客户机 - 前台功能; 优点 1. 充分发挥客户端PC处理能力,先在客户端处理再提交服务器,响应速度快; 2. 操作界面好看,满足个性化需求; 3.

    2024年02月09日
    浏览(58)
  • 使用 WSL 在 Windows 上安装 Linux提示无法解析服务器的名称或地址及0x80370114问题解决

    开发人员可以通过WSL在windows电脑上安装Linux发行版,并可以直接在电脑上使用Linux应用程序、实用程序和Bash命令行工具等。 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 在管理员模式下打开 PowerShell 或 Windows 命令提示符

    2024年02月07日
    浏览(33)
  • linux 17day 堡垒机 堡垒机下载 堡垒机安装 堡垒机使用 堡垒机管理服务器 堡垒机管理数据库

    https://jumpserver.org/ 没有注册的需要注册一个账号 即可下载 配置站点url 配置邮箱 创建要管理的服务器 现在还不能 管理 因为还没有配置用户名和密码 创建 特权用户用于管理 创建普通用户 添加命令过滤 命令过滤创建好 之后就需要 给用户名 和管理添加 管理用户也是一样的

    2024年02月20日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包