透明 Squid:记录客户端 IP 问题

透明 Squid:记录客户端 IP 问题

我在我的网络中使用 iptables 中的以下规则来使用透明代理

* iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128
* iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT --to iptables-box
* iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

但是我的 squid 日志总是记录网关 IP (172.16.0.1)

您知道不丢失客户端 IP 的替代方法吗?(当然要避免手动设置代理!)

答案1

我解决了在网关处安装 shorewall 的问题。

答案2

您可以通过将代理服务器悬挂在另一个路由器接口上来解决此问题。

如果这样做,您将不需要执行导致您丢失客户端 IP 的 SNAT 技巧,因为往返于代理的所有流量都将通过路由器。

答案3

您知道不丢失客户端 IP 的替代方法吗?

由于 SNAT 规则,您丢失了客户端 IP。我建议您删除该规则。如果您的 squid 盒位于网络内部(如您的评论所暗示的那样),那么我很确定您不需要执行 SNAT。

不幸的是,您并没有向我们提供太多有关您的网络设置的详细信息。因此,如果出于某种原因需要 SNAT,那么您可能需要重组您的网络。

另一件要考虑的事情是使用组策略和/或自动配置客户端WPAD让浏览器真正识别出正在使用的代理服务器确实有一些好处。

相关内容