tcpcopy 流量复制工具

一、作用

tcpcopy可以复制线上真实流量到测试环境做压力测试,返回信息进过处理进入黑洞一般,无需担心返回给客户。

二、原理

tcpcopy和intercept两个组件

-tcpcopy

安装在生产主机上,生产主机会接受正常流量,正常流量被tcpcopy复制并发送至测试环境主机。

- intercept

 安装intercept组件的主机被称作辅助主机,他接收测试环境主机返回的响应信息(测试环境将路由指向辅助主机),辅助主机返回响应信息给安装tcpcopy的生产主机,完成一次请求流程。

三、实验

192.168.31.100  测试环境主机(指路由)      nginx开启80端口

192.168.31.101  生产环境主机(tcpcopy)    nginx开启80端口

192.168.31.200  辅助主机(intercept)

1. 下载

tcpcopy

https://github.com/session-replay-tools/tcpcopy/releases

intercept

https://github.com/session-replay-tools/intercept/releases

./configure
make && make install

2. 辅助主机操作

- 辅助主机不返回给客户端响应信息,所以关闭路由转发

echo "0" > /proc/sys/net/ipv4/ip_forward

- 辅助主机先开启intercept组件,不开启tcpcopy无法启动

intercept组件监听抓取测试主机对应端口返回的响应信息

./intercept -i eth0 -F 'tcp and src port 8000' -d
-i 监听指定网卡送来的信息
-F 过滤信息
-d 以守护进程形式启动

3. 生产主机操作

./tcpcopy -x 80-192.168.31.100:80 -s 192.168.31.200 -c 192.168.31.201 -n 2 -d
-x 指定本地复制的端口,以及复制流量发送到的主机及端口
-s 辅助主机intercept的ip,将tcpcopy会和intercept建立连接,默认连接36524端口
-c 伪装地址,修改复制流量的原地址,测试主机返回响应信息时候指了路由,将伪装地址转发给辅助主机做处理
-n 放大流量,2就是两倍
-d 以守护进程方式启动

4. 测试主机

指定路由将响应请求发送给辅助主机做处理

route add -host 192.168.31.201 gw 192.168.31.200

猜你喜欢

转载自www.cnblogs.com/yunweixiaoxuesheng/p/9085728.html