iptables - 从端口 80 转发到 Squid 端口 3128 的问题

iptables - 从端口 80 转发到 Squid 端口 3128 的问题

我有两个盒子:172.16.1.224 和 172.16.1.223。

两者都运行 Squid。我使用 Firefox 代理设置将浏览器连接到 xxx224、端口 3128。这样就没问题了。如果我使用 Firefox 代理设置将浏览器连接到 xxx223:3128,就可以正常工作。

现在,我正在尝试连接这两个盒子,这样当我使用 Firefox 代理设置连接 xxx224:3124 时,流量会被路由到 xxx223,然后再传输到网络。

关于如何做到这一点,您有什么想法吗? 我正在努力解决 iptables 问题。

提前谢谢了,

答案1

那应该可以做到:

iptables -t nat -A PREROUTING -p tcp -d x.x.x.224 --dport 3124 -j DNAT --to-destination x.x.x.223:3128

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

iptables -t nat -A POSTROUTING -p tcp -d x.x.x.223 --dport 3128 -j SNAT --to-source x.x.x.224

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

答案2

考虑到您要重现的网络配置(“真实” .223 和 .224 服务器之间的高延迟卫星链路),我不建议使用 iptables。

相反,我只需链接两个代理服务器 - 按照常问问题,你基本上必须将远程服务器配置为缓存对等体所以所有请求都会被转发给它。

这样,您可以更好地将客户端与连接(TCP)延迟隔离开来,并且可以轻松地在高延迟连接的“正确”侧缓存内容。

相关内容