首先,tcpcopy官方网址下载相关代码和文档:
https://github.com/wangbin579/tcpcopy/downloads
我使用的是比较新的0.6.5版本,上面的地址中也有文档可以下载。如果英语好的,可以自行去上面的地址下载使用。
接下来就是安装了,在线上和目标服务器上安装,
./configure
make
make install
安装完成后,
在测试机上做如下操作:
1.modprobe ip_queue
2.然后modprobe -l | grep ip_queue,应该就可以查看到此模块了。
3.iptables -I OUTPUT -p tcp --sport 8080 -j QUEUE,这里的8080端口是我测试机上跑的resin使用的就是8080端口。简单来说就是你要用哪个端口来接收线上服务过来的请求。
4. 执行./intercept
线上服务器上:
执行./tcpcopy -x 80-1.2.3.161:8080,这里80的意思是我线上服务端口,拷贝到测试机1.2.3.161的8080端口上。
现在1.2.3.161上查看resin的log就可以看到线上的请求源源不断的过来了。
补充两点:
执行./tcpcopy -x 80-1.2.3.161:8080 命令会发现是控制台前台执行方式,很不方便,若要后台执行 可以加-d参数,要加日志加 -l参数,使用实例tcpcopy -d -l /data/tcpcopy.log -x 8080-10.2.9.53:8008
执行./intercept 改为后台守护进程执行方式同上加参数-d 使用实例:intercept -d -l /data/intercept.log