TCPCOPY 1.0 部署及使用

tcpcopy简介

TCPCOPY 是一个 tcp 流量的实时复制工具,其1.0版本由网易工程师 @tcpcopy 开发和维护。一般用来将生产环境的线上流量实时复制到测试环境进行测试。例如新系统上线前,如果我们希望进行一些基本的压力测试,那么我们可以直接利用 tcpcopy 来复制线上的流量过来对系统进行测试,这样的好处是测试数据接近真实水平,且实施起来相对简单。

一、部署环境
1.1、服务器列表

192.168.5.2      线上服务器
192.168.5.3      测试服务器
192.168.5.4      辅助服务器

二、部署tcpcopy和intercept服务
2.1、部署tcpcopy服务:

wget https://github.com/session-replay-tools/tcpcopy/archive/1.0.0.tar.gz
tar xvf 1.0.0.tar.gz
cd tcpcopy-1.0.0
./configure --prefix=/opt/tcpcopy/
make
make install

2.2、部署intercept服务:

yum -y install libpcap-devel
https://github.com/session-replay-tools/intercept/archive/1.0.0.tar.gz
tar xvf 1.0.0.tar.gz
cd intercept-1.0.0
./configure --prefix=/opt/tcpcopy/
make
make install

三、启动服务

3.1、首先启动辅助服务器intercept服务,不然tcpcopy服务起不来:
/opt/tcpcopy/sbin/intercept -i enp2s0 -l intercept.log -P /var/run/intercept.pid -F 'tcp and src port 8000' -d

3.1.1、参数说明:

-i 监控网卡接口
-l 记录日志
-F 监控的协议和端口
-P 记录pid
-d 以daemon形式运行

3.2、再次启动线上服务器tcpcopy服务:

/usr/local/tcpcopy/sbin/tcpcopy -x 8000-192.168.5.3:8000 -s 192.168.5.4 -c 192.168.4.254 -d -C 4 -n 2 -l tcpcopy.log  -P /var/run/tcpcopy.pid

3.2.1、参数说明:

-x 8000-192.168.5.3:8000将本机上8000端口的流量复制到192.168.5.3(测试服务器)的8000端口
-s 指定intercept进程所在的服务器192.168.5.4。(辅助服务器)
-c 修改请求的host地址为192.168.4.254,以便在(192.168.5.3)测试服务器上设置路由(设置路由是为了将应答转向丢192.168.5.4包服务器)
-C 开启4个进程
-d 以daemon形式运行
-l 记录日志
-P 记录pid
-n 指定包放大的倍数

3.2.2、线上服务器检查

[root@localhost ~]# ss -an |grep 192.168.5.4
tcp    ESTAB      0      0      192.168.5.2:45950              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45954              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45952              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45956              192.168.5.4:36524

3.2.3、辅助服务器检查:

[root@k8s-node1 ~]# ss -tlunp|grep 36524
tcp    LISTEN     0      5         *:36524                 *:*                   users:(("intercept",pid=5770,fd=5))

四、添加路由

测试服务器添加路由
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.5.4

五、使用python自带模块启动web服务

python -m SimpleHTTPServer

六、在其它服务器进行测试

curl 192.168.5.4:8000

七、查看流量的转发情况

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章