Tcpcopy 辅助服务器:
- 安装Intercept(需要root权限)
git clone git://github.com/session-replay-tools/intercept.git
yum -y install gcc gcc-c++
yum install libpcap-devel
cd /usr/local/intercept/sbin 开启Intercept
sudo ./intercept -i eth0 -l intercept.log -P /var/run/intercept.pid -F ‘tcp and src port 80’ -d
参数说明:
-i 制定监听的网卡
-l 日志
-P PID保存路径
-F 拦截过滤规则
-p 设置监听端口,默认36525,tcpcopy连接辅助服务器时使用查看现网服务器已连接到本地端口
ss -an |grep 36524 171->local生产Nginx服务器安装Tcpcopy:
- 下载Tcpcopy
git clone git://github.com/session-replay-tools/tcpcopy.git 安装(需要root权限)
./configure
编译参数:可以不设置,默认安装在/usr/local/tcpcopy/sbin--prefix=PATH set installation prefix --sbin-path=PATH set tcpcopy binary pathname --conf-path=PATH set plugin.conf pathname --pid-path=PATH set tcpcopy.pid pathname --builddir=DIR set build directory
make
make install- 开启Tcpcopy 导流,需要root权限,辅助服务器已经开启
/usr/local/tcpcopy/sbin
sudo ./tcpcopy -x 80-192.168.143.77:80 -s 192.168.143.45 -c 18.18.18.x -d -C 4 -l tcpcopy.log -P /var/run/tcpcopy.pid
参数说明:
-x 导流80 端口的数据流到 192.168.143.77:80
-c 61.135.250.x,61.135.251.x 修改流量来源为制定网段,多个网段用逗号隔开
-s 10.120.12.161:36525,10.120.12.161:36525 指定辅助服务器和端口,默认端口36525
-f 1 开启多个tcpcopy实例时使用,f参数的值必须是不同,达到多倍流量复制效果,单个不用设置 - 查看是否成功连接到辅助服务器
查看tcpcopy.log
ss -an|grep 192.168.143.45
tcpdump 查看是否有流量导向测试服务器
sudo tcpdump -i eth0 host 192.168.143.77 and port 80
新机房服务器:
- 添加路由信息(需要root权限)
把tcpcopy -c 参数里面的ip地址或者网段全部添加到路由表里面,转换到辅助服务器
sudo route add -net 18.18.18.0 netmask 255.255.255.0 gw 192.168.143.45 - 查看添加成功
sudo route del -net 18.18.18.0 netmask 255.255.255.0
route
# ss -an |head
tcpdump 查看是否有流量从修改的请求源到达测试服务器
tcpdump port 80 and src net 18.18.18.0/24