Redirect Iptables重定向到远程squid代理

Redirect Iptables重定向到远程squid代理,redirect,proxy,routing,iptables,squid,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.1

我想将从本地主机生成的任何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

但上述规则不起作用

就我理解你的问题而言,流量是在本地生成的。因此,数据包不会穿过预路由链。 您必须处理输出或后路由:

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日志)