tcpCopy 安装搭建
实现原理
- 运行tcpcopy把线上服务器流量拷贝到测试服务器
- 在测试服务器部署intercept,通过路由将应答(response)转移向助理服务器
- 助理服务器将响应数据丢弃
环境准备
3台服务器
10.154.157.1 (公开服务器,也是虚拟机) 作为线上服务器
10.154.157.41(公开服务器,也是虚拟机) 作为测试环境
10.154.157.40 (公开服务器,也是虚拟机) 作为助理服务器
线上服务器
tomcat port: 8303
测试机
tomcat port: 8303
安装TCPCopy
下载
wget https://github.com/session-replay-tools/tcpcopy/archive/1.0.0.tar.gz -O tcpcopy-1.0.0.tar.gz
安装依赖包;
yum -y install libpcap-devel
解压编译和安装;
tar zxvf tcpcopy-1.0.0.tar.gz
cd tcpcopy-1.0.0
./configure (默认raw socket方式抓包)
make
make install
运行tcpcopy
/usr/local/tcpcopy/sbin/tcpcopy -x 8303-10.154.157.41:8303 -s 10.154.157.40 -c 10.10.10.0 -n 5 -d -C 4 -l tcpcopy.log -P /var/run/tcpcopy.pid
指令说明:
-x 80-10.154.157.41:80将本机上80端口的流量复制到10.154.157.41(测试服务器)的80端口
-s指定intercept进程所在的服务器10.154.157.40。(丢包服务器)
-c修改请求的host地址为10.10.10.x,以便在230测试服务器上设置路由(设置路由是为了将应答转向丢219包服务器)
-C 开启4个进程
-d 以daemon形式运行
-l 记录日志
-P 记录pid
-n -5 请求扩大5倍
其他参数可以通过/usr/local/tcpcopy/sbin/tcpcopy -h查看
安装intercept
下载
wget https://github.com/session-replay-tools/intercept/archive/1.0.0.tar.gz -O intercept-1.0.0.tar.gz
安装依赖包
yum -y install libpcap-devel
解压编译与安装
tar zxvf intercept-1.0.0.tar.gz
cd intercept-1.0.0
./configure (默认raw socket方式抓包)
make && make install
运行intercept
/usr/local/intercept/sbin/intercept -i eth0 -l intercept.log -P /var/run/intercept.pid -F 'tcp and src port 8303' -d
指令说明:
-i 监控网卡接口
-l 记录日志
-F 监控的协议和端口
-P 记录pid
-d 以daemon形式运行
其他参数可以通过/usr/local/intercept/sbin/intercept -h查看
在测试服务器 10.154.157.41上设置一条路由
route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.154.157.40
启动
运行顺序
route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.154.157.40
/usr/local/intercept/sbin/intercept -i eth0 -l intercept.log -P /var/run/intercept.pid -F 'tcp and src port 8303' -d
/usr/local/tcpcopy/sbin/tcpcopy -x 8303-10.154.157.41:8303 -s 10.154.157.40 -c 10.10.10.0 -n 5 -d -C 4 -l tcpcopy.log -P /var/run/tcpcopy.pid
注意
- 三台服务器尽量在同一网段下
- tcpcopy和intercept 启动后,要看一下日志是否有报错
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ting723!