tcpcopy 1.0 安装使用

转载文章(99%)

tcpcopy1.0.0安装使用git


在tcpcopy 1.0版本中对整个架构的一个改进,将本来须要运行在测试机上的intercept移除放到一个独立的辅助机上来,使得测试机须要作的操做少到仅仅是添加一条路由而已,对整个测试机的性能损耗能够忽略,排除了intercept运行在测试机上时产生的性能影响,使得测试数据更加接近真实水平。
github


1、系统环境

centos6.7 x86_64shell

线上服务器:192.168.241.130  (tcpcopy安装配置)
centos

辅助服务器:192.168.241.131  (intercept安装配置)
服务器

测试服务器:192.168.241.132  (添加路由)
session


2、线上服务器部署tcpcopy-1.0.0

git clone git://github.com/session-replay-tools/tcpcopy.git
cd tcpcopy
./configure  # 无特殊需求不须要加其余选项,默认安装在/usr/local/tcpcopy。
make && make install
#先不要启动,须要先启动intercept,并且若是intercept中止,tcpcopy也会停掉。
/usr/local/tcpcopy/sbin/tcpcopy -x 80-192.168.241.132:80 -s 192.168.241.131 -c 192.168.100.x -d -C 4 -l /tmp/tcpcopy.log
# -C 指定线程, -n 指定复制倍数


原理:将80端口收到的流量复制到测试机ip 192.168.241.132的80端口,并设置辅助机的ip地址为192.168.241.131,且将复制过去的流量中的源地址统一更改成192.168.100.x,这样作的好处是咱们在测试机上能够直接针对整个更改后的网段设置一条路由便可。架构


3、辅助服务器部署intercept-1.0.0

yum install -y libpcap
git clone  
cd intercept
./configuremake && make install
/usr/local/intercept/sbin/intercept -i eth0 -l /tmp/intercept.log -F 'tcp and src port 80 and src host 192.168.241.132' -d

原理:辅助机的 intercept 经过-F 参数制定捕获规则,捕获tcp链接中源端口为80的全部数据,也便是测试机的回应数据。其做用是将测试机路由过来的响应数据捕获下来,完成整个请求回应的流程且保证测试机产生的回应数据不会流向线上环境。intercept 会监听 tcp 36524 端口,并和线上机192.168.241.130的 tcpcopy 之间创建通讯,咱们经过ss命令能够观察到。须要注意的是辅助机和测试机必定要是同一网段。tcp


4、测试服务器部署

//添加路由
性能

route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.241.131

原理:线上机tcpcopy复制流量时将源地址改写为192.168.100网段的地址,那么在测试机上看到的流量中源地址所有是来源于这个网段,咱们仅仅须要将返回给这个网段的全部客户端的请求所有经过辅助机 192.168.241.131 路由出去,这样在辅助机上就能够对所有的回应包进行截获处理了
测试

相关文章
相关标签/搜索