squid透明代理的iptables规则阻止http请求

squid透明代理的iptables规则阻止http请求

我在 Linux 网关 (ubuntu server 12.04) 中设置了一些 iptables 规则,一切运行正常。我配置了一个透明的 squid 代理,它也能正常工作。我正在使用这个规则。

$IPT -t nat -A PREROUTING -p tcp --destination-port 80 \
-j REDIRECT --to-ports 3128 

但我必须使用该服务器进行 Web 开发测试和演示,并且拒绝来自互联网 (eht0) 的所有 http 请求。我可以从本地网络 (eth1) 毫无问题地访问。

当我注释掉上面的规则时,一切又恢复正常了。为什么这条规则会阻止来自 wan 网络的 http 请求?

答案1

实际上,此规则并不是阻止来自 Wan 的 http 流量,而是将该流量重定向到您的代理。

换句话说,您的实际规则将传入和传出的 http 流量重定向到端口 3128 上的网关。

我建议指定源/目标接口:

# Traffic from LAN to Internet is redirected to your Proxy
$IPT -t nat -A PREROUTING -p tcp -i eth1 -o eth0 --destination-port 80 -j REDIRECT --to-ports 3128

# Traffic from Internet is redirected to your gateway on port 80
$IPT -t nat -A PREROUTING -p tcp -i eth0 --destination-port 80 -j REDIRECT --to-ports 80

相关内容