Iptables重定向到远程squid代理

时间:2013-11-27 09:41:17

标签: redirect proxy routing iptables squid

我想将从本地主机生成的任何http流量重定向到远程squid。

位于一个数据中心的HTTP服务器,如果生成任何基于Web的(http)出站请求,则应将其重定向到远程squid服务器(位于远程数据中心)。我已经验证了squid代理工作正常。

HTTP服务器有一个接口eth0。我已经编写了以下iptables规则,但它无法正常工作。

Web服务器IP = 192.168.1.1
代理服务器IP /端口= publicip:3128

iptables -t nat -A PREROUTING -p tcp -s 192.168.1.1 --dport 80 -j DNAT --to-destination  publicip:3128
iptables -t nat -A POSTROUTING -j MASQUERADE

但是上述规则不起作用。

1 个答案:

答案 0 :(得分:5)

据我了解您的问题,流量是在本地生成的。因此,数据包不会遍历PREROUTING链。 你必须处理OUTPUT或POSTROUTING:

iptables -t nat -A OUTPUT -p tcp -o lo --dport 80 -j DNAT --to publicip:3128

另外,请务必以透明代理模式设置Squid:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

如果它仍然不起作用,请求提供有关不起作用的更多详细信息(tcpdump痕迹,squid日志)。