session-replay-tools / tcpcopy

An online request replication and TCP stream replay tool, ideal for real testing, performance testing, stability testing, stress testing, load testing, smoke testing, and more.
http://session-replay-tools.github.io/tcpcopy/
Other
4.48k stars 1.03k forks source link

流量打不到目标服务器 #358

Closed DongtianA closed 5 years ago

DongtianA commented 5 years ago

你好,我按照#173 里面新架构的部分 去修改了 还是不行

我开始命中了这一条 2.1) 在在线服务器利用tcpdump抓包,能抓到tcpcopy转发的数据包 如果能够抓到,说明路途过程中被干掉了,可以尝试利用tcpcopy的-c参数,修改客户端ip地址成合法的ip地址,最极端一点的就是修改成tcpcopy所在机器的ip地址(注意:存在nat的问题,而且如果intercept运行在测试服务器,需要注意tcpcopy的-c参数不能设置成tcpcopy连接intercept所用的ip地址,否则tcpcopy连接不上intercept)

于是 我改了-c 的server 为我的线上server 现在又变成了如下的情况

1.2) syn数据包后面紧跟reset数据包(注意:同一个session中,syn和reset数据包相隔不到1s) 说明路由设置有问题或者有冲突,导致了响应包直接返回给真实的客户端了.

这个路由设置应该怎么看呢

telnet是通的

wangbin579 commented 5 years ago

这个时候就不要设置路由了,在线上服务器设置iptables进行过滤。

具体如下: 1、测试机器和intercept部署到一台机器 2、tcpcopy端-c参数采用tcpcopy所在的线上机器ip地址 3、在线上机器设置iptables黑洞来过滤掉测试服务器的响应包 iptables -I INPUT -p tcp --sport 测试服务的端口 -j DROP -s 测试服务所在机器的ip地址 4、千万要注意在测试服务器不要设置路由了,否则会受到干扰

DongtianA commented 5 years ago

嗯嗯,成功了,谢谢大佬🙏