Tcpcopy复制流量-实战

1.环境配置
版本:TCPCopy --> TCPCopy V1.0.0
线上服务器 --> 192.168.88.88
测试服务器 --> 192.168.88.66
辅助服务器 --> 192.168.88.86

辅助IP(网关流转) 192.168.100.100

2.线上机器安装tcpcopy

在线上服务器上下载,然后编译安装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

3、辅助机器安装intercept

安装intercept有一些额外的依赖需要安装上,然后和tcpcopy一样的套路源码编译安装

# 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

4、部署

为了简单期间,我们在线上和测试服务器上各启一个简单的http服务器,最简单的办法,不用apache和nginx,直接用python自带的模块。HTTP服务启动命令如下:

# python -m SimpleHTTPServer

在线上服务器和测试服务器同时运行这个命令,开启一个监听在8000端口的简易HTTP服务器。

先在辅助服务器上开启intercept,步骤不能错,没有intercept的话,tcpcopy启动不起来:

# /opt/tcpcopy/sbin/intercept -i eth0 -F 'tcp and src port 8000' -d
  • -i, intercept会监听端口,和tcpcopy进行通信,-i就是指定监听在哪个端口。tcpcopy启动的时候会来连这个端口,如果连不上,就会启动失败。
  • -F, 过滤规则,语法和pcap一样。
  • -d, 已守护进程方式运行

还有其它参数可以使用,-h便可以查看,不详细解释了

然后,在线上服务器开启tcpcopy:

# /opt/tcpcopy/sbin/tcpcopy -x 8000-192.168.88.66:8000 -s 192.168.88.86 -c 192.168.100.100 -n 10 -d

注意:如果有防火墙,请再开启tcpcopy之前先加防火墙规则入下

  • -x, 是指本机8000端口的流量copy到192.168.88.66的8000端口
  • -s, 指定intercept机器的地址,tcpcopy要和intercept建立连接
  • -c 伪装地址,在把流量复制到测试服务器的时候,修改数据包的源地址为192.168.100.100,这样方便指定路由。也可以写成192.168.100.x,这样源地址就是指定网段中的地址了。
  • -n 流量放大倍数,如果不是压测目的就不用指定这个参数。
    -d 以守护模式运行。
:RH-Firewall-1-INPUT - [0:0]
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 36524 -j ACCEPT

最后,在测试服务器上开启路由(切记辅助服务器要和测试服务器在一个子网里):

# route add -host 192.168.100.100  gw 192.168.88.86

路由的意思是把发往192.168.100.100的数据包全部转给辅助服务器

测试效果

在另外一台机器上,向线上服务器发起请求,然后查看两个HTTP服务器的实时日志,
线上服务器的结果:

发起了1次请求,返回了10次的HTTP Code。再看测试服务器:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值