tcpcopy 使用

TcpCopy是一种请求复制(所有基于tcp的packets)工具,可以把在线流量导入到测试系统中去。

tcpcopy运行需要intercept的支持,tcpcopy负责抓包和发包工作,而intercept负责截获应答包

tcpcopy代码下载地址:

wget http://github.com/session-replay-tools/tcpcopy

configure:

./configure (默认raw socket方式抓包)

或者

./configure –pcap-capture (pcap方式抓包,在某些场景下,丢包率会高于raw socket方式抓包,这时候需要类似pf_ring的支持)

对于intercept:

代码下载地址:

wget http://github.com/session-replay-tools/intercept

configure方式:

./configure

1.环境

192.168.10.10

192.168.10.20

192.168.10.30

30是线上服务器,10和20是测试环境。在30上运行tcpcopy把线上流量拷贝到20,在20上我们通过路由将应答转向10,在10上把应答丢弃。

30和20上是nginx,端口是8080

2.操作

在线上机器10.30上面运行tcpcopy(root权限):利用-c参数,修改客户端源IP地址,方便设置路由
./tcpcopy -x 8080 -192.168.10.20:8080 -s 192.168.10.10 -c 192.168.100.x

将本机的8080流量cp到10.20的8080端口

-s指定intercept进程所在的服务器。(丢包服务器)

-c修改请求的host地址为192.168.100.x,以便在20上设置路由(设置路由是为了将应答转向10(丢包服务器))

-n流量放大倍数

10.20上设置路由

route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.10.10

10.10上运行intercept
intercept -i bond -F tcp and src port 8080 -d

 

原创文章,作者:赛福,如若转载,请注明出处:https://www.safecdn.cn/linux/2016/08/76.html