简单来说,就是用tcpdump记录线上请求,用tcpcopy来重放,如下图所示:
上篇叙述了流量拷贝,在此不再赘述(TcpCopy复制流量)
一、分别在服务端和客户端安装 tcpcopy intercept
注:根据新旧框架,自行使用具体框架应用几台机器
安装过程中如遇到问题 :“can't find pcap.h”(网卡流量监控软件),需要安装libpcap-devel
1 yum list libpcap-devel*查到到对应的lib包名称
2 yum install libpcap-devel.x86_64
二、使用tcpdump录制pcap离线文件
tcpdump -i eth0 -w online.pcap tcp and port 8080
-i eth0:eth0为网卡,获取方式可在liunx系统下执行ifconfig查看所有的网卡,选取需要的那个。
-w online.pcap:为获取pcap文件进行回放,可设置路径,e.g. -w /home/user/test.pcap
tcp and port 8080:截获端口为80的tcp请求,也可添加udp请求,和更改服务端口8080,e.g. tcp and port 18808
-s 0:默认的话,tcpdump只显示部分数据包,-s snaplen是控制包长度的,默认是68字节,-s 0 则为全部字节,在使用过程中,如果添加-s则回放时会出现错误。可不使用该参数
三、回放
# 查看tcpcopy命令位置
1 [root@cstest ~]# whereis tcpcopy
# 服务端执行流量流转
2 ./tcpcopy -x 8080-[测试服务器IP]:8080 -s [流转服务器IP] -i /home/user/test.pcap
#服务端抓包测试
3 [root@cstest ~]# tcpdump -n port 8080