一、背景介绍 tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层,
tcpreplay是一种pcap包的重放工具, 它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试。
tcpreplay本身包含了几个辅助工具(tcpprep、tcprewrite、tcpreplay和tcpbridge), 用于准备发包的cache, 重写报文等。
官网: http://tcpreplay.appneta.com/
Centos环境下直接在线安装:
yum -y install tcpreplay
ubuntu环境下直接在线安装(有bug,推荐离线):
sudo apt install libpcap-devsudo apt install tcpreplay
查看安装是否成功:
sudo tcpreplay -V
安装成功,会显示如下图所示信息:
查看帮助文档命令如下:
tcpreplay -h
解压依赖 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 [-flags] [-flag [value]] [--option-name[[=| ]value]]
命令参数如下图:
tcpreplay -i eth0 p.pcap
快速使用: 其中 p.pcap 是用wireshark或者tcpdump抓取的流量包
查看本机网卡信息,命令如下:
tcpreplay --listnics
可以 看到网卡信息,如下
Available network interfaces:vethea91bfcveth80236a7veth3676c9eens33veth230fd33veth9dc5845veth0023549br-a94abb025497veth2656707anyDocker0nflognfqueueusbmon1usbmon2
tcpprep -a client -i 1.pcap -o 2.pcap -v
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
tcpreplay -i eno2 -p 1000 -l 100000000 3.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。
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
来源地址:https://blog.csdn.net/SweetHeartHuaZai/article/details/127307208
--结束END--
本文标题: tcpreplay的安装与使用
本文链接: https://www.lsjlt.com/news/441766.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-21
2024-05-21
2024-05-21
2024-05-13
2024-05-13
2024-05-11
2024-05-11
2024-05-10
2024-05-07
2024-04-30
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0