使用代理复制TCP流量

uff*_*fff 26 proxy tcp traffic duplicates haproxy

我需要从一台机器(端口)和两台不同的机器(端口)发送(重复)流量.我也需要处理TCP会话.

在beginnig中我使用了em-proxy,但在我看来,开销非常大(它超过了cpu的50%).然后我安装了haproxy,我设法重定向流量(不重复).开销合理(低于5%).

问题是我无法在haproxy配置文件中说出以下内容:
- 侦听特定地址:端口以及您在两台不同计算机上发现的任何内容:端口并丢弃其中一个的答案.

用于此的Em代理代码非常简单,但在我看来,EventMachine会产生大量开销.

在我挖掘haproxy代码并尝试更改(重复流量)之前,我想知道那里有类似的东西吗?

谢谢.

chr*_*usf 23

我已经为此目的创建了一个代理.

https://github.com/chrislusf/teeproxy

用法

./teeProxy -l :8888 -a localhost:9000 -b localhost:9001
Run Code Online (Sandbox Code Playgroud)

tee-proxy是一个反向代理.对于每个传入请求,它将请求克隆为2,然后将它们转发到2个服务器.服务器的结果a照常返回,但b忽略服务器的结果.

发球代理可以处理GET,POST以及其他HTTP方法.


Mat*_*ttH 9

iptables实验ROUTE target怎么样?它有一个用于镜像流量的"tee"选项:

http://www.netfilter.org/projects/patch-o-matic/pom-external.html#pom-external-ROUTE

哪个可以让您通过以下方式镜像流量:

iptables -A PREROUTING -t mangle -p tcp --dport 80 -j ROUTE --gw 1.2.3.4 --tee
iptables -A POSTROUTING -t mangle -p tcp --sport 80 -j ROUTE --gw 1.2.3.4 --tee

第二台机器需要在同一个子网上,并且需要监听目标IP地址(而不是回复arps)或者混杂地监听.