我有一个非常好用的 Squid 透明代理。
为了节省客户端配置时间,我决定将端口 80 重定向到 3128,这样我就可以为所有客户端配置新的代理,只需更改 dhcp 服务器中的网关即可。一切顺利,我使用了以下规则:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
现在我可以毫无问题地从客户端浏览互联网,但似乎无法打开某些网站,例如 gmail。
它加载了很长时间,然后我看到一个空白页。
如果我在浏览器中手动设置代理值,它就可以正常工作。使用端口重定向对某些网站有效,但对其他网站无效...
怎么了?
编辑:
通过阅读,我发现一个常见问题可以通过各种(且困难的)方法解决,例如:http://www.rahulpahade.com/content/squid-transparent-proxy-over-ssl-https
我需要简单的命令来让 https 流量直接进入互联网...我该如何实现这一点?
答案1
那么通过其他端口离开 LAN 的数据包怎么办?您会丢弃它们吗?
如果是,我相信您还需要将通过端口 443(https)的数据包重定向到代理或在丢弃其余数据包之前接受它们。
同时将 https 重定向到代理:iptables -t nat -A PREROUTING -i eth0 -p tcp --dports 80,443 -j REDIRECT --to-port 3128
HTTPS 直接进入互联网:在您的重定向规则之前,添加以下内容:-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j [RETURN 或 ACCEPT(在 return 和 accept 之间进行选择取决于防火墙的其余部分)]。
如果你已经这样做了,请尝试检查 squid 日志看看它们说了什么。
最后,如果您在这里发布所有规则,将会很有帮助。