Iptables重定向到远程squid代理

Mud*_*sin 1 proxy redirect 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
Run Code Online (Sandbox Code Playgroud)

但上述规则不起作用.

leu*_*cos 5

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

iptables -t nat -A OUTPUT -p tcp -o lo --dport 80 -j DNAT --to publicip:3128
Run Code Online (Sandbox Code Playgroud)

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

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Run Code Online (Sandbox Code Playgroud)

如果它仍然不起作用,请求提供有关什么不起作用的其他详细信息(tcpdump跟踪,squid日志).