iptables是否允许Squid处理请求,然后将响应数据包redirect到另一个端口?

我试图testing一个花哨的stream量分析器应用程序,我已经在8890端口上运行。

我目前的计划是让任何HTTP请求进入Squid的端口3128,让它处理请求,然后就在它发回响应之前,使用iptables将响应数据包(离开端口3128)redirect到端口8890。

我已经研究了这一整夜,并尝试了很多iptables的命令,但我失去了一些东西,我的头发掉了。

以为这样的事情会起作用:
iptables -t nat -A OUTPUT -p tcp --sport 3128 -j REDIRECT --to-ports 8990
这个规则得到创build好,但它永远不会redirect任何东西。

这甚至有可能吗? 如果是这样,什么iptables咒语可以做到这一点? 如果不是的话,在给定多个远程浏览器客户端的情况下,有什么想法可以在单个主机上工作?

我不知道是否Apache与mod_proxy可能是这个设置的候选人,而不是Squid?

如果我只能告诉Squid(或Apache或任何其他HTTP代理)将响应发送到不同的本地端口,而不是返回到远程客户端,那么也可以工作(即使没有iptables)。

任何具有此function的HTTP代理的build议都会很棒。

原来我原来的计划是不可能的。

但是我可以实现最初的预期目标,即允许任何远程客户端通过在主机上运行OpenVPN来查看这个stream量分析器的function,然后以典型的方式使用iptables从一个子网捕获端口80的数据包(隧道),并redirect到另一个子网(主机的正常)。 这与分析器的devise一起工作,分析器期望网关本身被修改用于这种types的redirect。

与TEE使用iptables应该让你在你需要的地方。

http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/