iptables – 从端口80转发到squid端口3128的问题

我有两个框:172.16.1.224和172.16.1.223。

两者都在运行Squid。 我使用Firefox代理设置将我的浏览器连接到xxx224,端口3128。 这工作正常。 如果我使用Firefox代理设置将我的浏览器连接到xxx223:3128,它可以正常工作。

现在,我试图连接这两个盒子,这样当我使用Firefox代理设置连接o xxx224:3124时,stream量将被路由到xxx223,然后进入networking。

任何想法,我怎么可能做到这一点? 我正在努力与iptables

提前谢谢了,

这应该做到这一点:

iptables -t nat -A PREROUTING -p tcp -d xxx224 --dport 3124 -j DNAT --to-destination xxx223:3128 

此外,如果你还没有其他的伪装规则,你需要

 iptables -t nat -A POSTROUTING -p tcp -d xxx223 --dport 3128 -j SNAT --to-source xxx224 

如果你这样做,你不需要在.224上运行squid,只需要在.223上运行。 但为什么你不能让客户直接连接到.223?

考虑到你试图复制的networkingconfiguration(“真正”.223和.224服务器之间的高延迟卫星链路),我build议对iptables。

相反,我只是链接两个代理服务器 – 按照常见问题 ,你基本上必须configuration远程服务器作为caching对等 ,所有的请求都转发给它。

这样,您可以更好地将客户端从连接(TCP)延迟中分离出来,并且可以轻松地在高延迟连接的“正确”一侧上caching内容。