tcpcopy 案例来说需要三台机器
server_src 源服务器(可以理解为正式机器 流量来源) (执行 tcpdump )
server_desc 目标服务器(可以理解为测试机器 流量回放的机器)( 执行 tcpcopy )
server_intercept 测试服务器收到请求后 返回的response需要这个服务器进行拦截 避免返回到正式的服务器上 (执行intercept的机器)
这里便于测试 都为一台服务器 10.6.62.229
tcpcopy 和 intercept 命令的安装方法参照
https://github.com/session-replay-tools/tcpcopy
安装完成之后的路径一般为 /usr/local/tcpcopy 和 /usr/local/intercept
流量录制
tcpdump -i em1 -w 8080.pcap tcp and port 8080
-i em1 :em1 为网卡,配合 ifconfig 命令
-w 8080.pcap:录制请求保存文件为 8080.pcap 文件
tcp and port 8080 : 录制8080端口上的tcp请求
截获desc返回的数据(response)
./intercept -i em1 -l /home/yiwu/intercept.log -F 'tcp and src port 8080' -d
-i em1 : 监视 em1 网卡 配合 ifconfig 使用
-l /home/yiwu/intercept.log : 日志
-F 'tcp and src port 8080' : 过滤规则
-d : run as a daemon 作为一个守护线程运行
copy 流量
./tcpcopy -l /home/yiwu/tcpcopy.log -x 8080-10.6.62.229:8080 -s 10.6.62.229 -c 10.0.0.1 -i /home/yiwu/8080.pcap
-l /home/yiwu/tcpcopy.log : 这个谁都看得懂把 保存日志
copy 8080.pcap 流量
-x 8080-10.6.62.229:8080 : 把8080.pcap中的8080端口的流量copy到10.6.62.229:8080端口中
-s 10.6.62.229 : intercept server list 这里是把所有机器都放到一台了 所以 这里的intercept server 也为本机
-c 10.0.0.1 : change the client IP to one of IP addresses when sending to the target server. 改原来src ip 防止回溯到正式的ip上 这里改为一个不能方位的ip即可
注明 如果 intercept 机器在不同的机器上(如10.6.62.221) 则需要在 desc上执行
route add -net 10.0.0.1 netmask 255.255.255.0 gw 10.6.62.221
####### 10.0.0.1 为 tcpcopy命令总 -c 后面的ip地址(这里应该是分网段的 不过简单点也行 所有机器都应该为同一网段)
##########参考资料
############ https://www.jianshu.com/p/8df317dbf653
网友评论