流量录制回放 用于测试

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

你可能感兴趣的:(流量录制回放 用于测试)