TCPCOPY 1.0 安装使用

简介

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

一,架构

二,安装

测试中用到的3台服务器信息如下:

线上服务器 online server       内网IP地址 192.168.0.8/24    外网IP 214.167.0.8/28

测试服务器 test server        内网IP地址 192.168.0.230/24   外网IP 214.167.0.13/28

辅助服务器 assistant server   内网IP地址 192.168.0.219/24   外网IP 214.167.1.76/24

192.168.0.8是线上服务器,192.168.0.230和192.168.0.219是测试环境。我们在192.168.0.8上运行tcpcopy把线上流量拷贝到192.168.0.230,在192.168.0.230上我们通过路由将应答转向

192.168.0.219,在192.168.0.219上把应答丢弃。

第一步,在 online server 192.168.0.8上安装并运行 tcpcopy daemon :

我们从github上下载1.0版本的源码包;

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 80-192.168.0.230:80 -s 192.168.0.219 -c 10.10.10.x -d -C 4 -l tcpcopy.log  -P /var/run/tcpcopy.pid

指令说明:

-x 80-192.168.0.230:80将本机上80端口的流量复制到192.168.0.230(测试服务器)的80端口

-s指定intercept进程所在的服务器192.168.0.219。(丢包服务器)

-c修改请求的host地址为10.10.10.x,以便在230测试服务器上设置路由(设置路由是为了将应答转向丢219包服务器)

-C 开启4个进程

-d 以daemon形式运行

-l 记录日志

-P 记录pid

其他参数可以通过/usr/local/tcpcopy/sbin/tcpcopy -h查看

成功运行后可以观察到的网路连接状态:

#ss -an|grep 192.168.0.219

ESTAB      0      0                192.168.0.8:49034         192.168.0.219:36524

ESTAB      0      0                192.168.0.8:49035         192.168.0.219:36524

ESTAB      0      0                192.168.0.8:49032         192.168.0.219:36524

ESTAB      0      0                192.168.0.8:49033         192.168.0.219:36524

第二步,在 auxiliary server 192.168.0.219上安装并运行 intercept daemon :

从github上下载1.0版本的源码包;

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(CentOS6系统直接yum安装即可1.4版本)

注意CentOS5系统libpcap-devel版本是libpcap-devel-0.9.4-15.el5,intercept-1.0需要libcap-devel1.4以上版本此时需要源码包安装

yum remove libpcap

wget http://www.tcpdump.org/release/libpcap-1.4.0.tar.gz

tar zxvf libpcap-1.4.0.tar.gz

cd libpcap-1.4.0

./configure

make

make install

解压编译和安装;

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 eth1 -l intercept.log -P /var/run/intercept.pid -F ‘tcp and src port 80‘ -d

指令说明:

-i 监控网卡接口

-l 记录日志

-F 监控的协议和端口

-P 记录pid

-d 以daemon形式运行

其他参数可以通过/usr/local/intercept/sbin/intercept -h查看

成功运行后可以观察到的网路连接状态:

# ss -an |grep 36524

LISTEN     0      5                         *:36524                    *:*

ESTAB      0      66             192.168.0.219:36524           192.168.0.8:49034

ESTAB      0      0              192.168.0.219:36524           192.168.0.8:49035

ESTAB      0      66             192.168.0.219:36524           192.168.0.8:49032

ESTAB      0      0              192.168.0.219:36524           192.168.0.8:49033

第三步,在 test server 192.168.0.230上设置一条路由 :

[[email protected] ~]# route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.0.219

成功运行测试时可以观察到的网络连接状态:

# ss -an |head

State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port

LISTEN     0      0                 127.0.0.1:199                      *:*

LISTEN     512    0                         *:80                       *:*

ESTAB   0      0              192.168.0.230:80           10.10.10.1:62602

ESTAB   0      0              192.168.0.230:80           10.10.10.4:54595

ESTAB   0      0              192.168.0.230:80           10.10.10.3:53566

ESTAB   0      0              192.168.0.230:80           10.10.10.6:49260

ESTAB   0      0              192.168.0.230:80           10.10.10.8:57598

ESTAB   0      0              192.168.0.230:80           10.10.10.7:64454

ESTAB   0      0              192.168.0.230:80           10.10.10.1:63081

参考链接:

http://blog.csdn.net/wangbin579/article/details/8949315

http://blog.csdn.net/wangbin579/article/details/8950282

时间: 2024-10-08 13:01:49

TCPCOPY 1.0 安装使用的相关文章

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

Windows环境下Android Studio v1.0安装教程

Windows环境下Android Studio v1.0安装教程 Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包. 要求:JDK 7以及以上版本. Android Studio安装文件. Windows: exe(包含SDK) (813 MB) exe(不包含SDK) (250 MB) zip (235 MB) Mac dmg (234 MB) zip (233 MB) Linux: zip (233 MB) 说明: 32位系统和64位系统是同一个安

VMware Workstation11.0安装Mac OS X 10.10最完整指南(包含所需所有资源下载)

前言说明:最近换了新的电脑,配置好很多了,想装下虚拟机来玩下IOS,其中也遇到了几个大坑,现在刚完全装好,把所有步骤以及资源整合到一处,后面的朋友可以避免浪费很多无谓的百度时间. ""我先把使用到的程序以及版本说明下,因为这非常总要,使用虚拟机安装mac,其实就是装黑苹果,这要依赖很多破解工具,但这些工具都是有版本支持的.我这些版本装的没问题,但是你如果下载网上其他版本,我就不能确保一定没问题了,只能是自己试了."" VMware 11.0 永久不过期激活密钥 1F

Hadoop2.6.0安装 — 集群

文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自己学习的过程做以记录,另一方面希望也能帮助到和LZ一样的Hadoop初学者,去搭建自己的学习和练习操作环境,后期的 MapReduce 开发环境的配置和 MapReduce 程序开发会慢慢更新出来,LZ也是边学习边记录更新博客,路人如有问题欢迎提出来一起探讨解决,不足的地方希望路人多指教,共勉! 目

zabbix3.0安装部署文档

zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白开的<ZABBIX从入门到精通v3.0.1 - 运维生存时间(2016)>一书. 关于zabbix及相关服务软件版本: Linux:centos 6.6 nginx:1.9.15 MySQL:5.5.49 PHP:5.5.35 一.安装nginx: 安装依赖包: yum -y install gcc gcc-c++ autoconf

记:MySQL 5.7.3.0 安装 全程截图

前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 选择安装类型 检查需要组件 准备安装 准备配置MySQL 配置MySQL实例 设置MySQL账号 Server服务配置 配置完毕 安装&配置完毕 完成安装 MySQL Workbench工作台 MySQL Workbench工作台主界面 结尾 MySQL 5.7.3.0 安装 全程截图 经典的MyS

Hadoop-2.4.0安装和wordcount执行验证

Hadoop-2.4.0安装和wordcount执行验证 下面描写叙述了64位centos6.5机器下,安装32位hadoop-2.4.0,并通过执行 系统自带的WordCount样例来验证服务正确性的步骤. 建立文件夹 /home/QiumingLu/hadoop-2.4.0,以后这个是hadoop的安装文件夹. 安装hadoop-2.4.0,解压hadoop-2.4.0.tar.gz到文件夹 /home/QiumingLu/hadoop-2.4.0就可以 [[email protected]

CentOS 7.0安装配置Vsftp服务器步骤详解

安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止

【转】Windows环境下Android Studio v1.0安装教程

原文网址:http://ask.android-studio.org/?/article/9 http://android-studio.org/index.php/docs/experience/158-androidstudio-v1-0-win-install Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包.要求:JDK 7以及以上版本. Android Studio安装文件. Windows:exe(包含SDK) (813 MB)exe(不包含