通过 Squid 代理在 NAT 服务器上路由互联网

通过 Squid 代理在 NAT 服务器上路由互联网

我已经配置了 Squid 代理和 NAT 实例,两者都运行良好。

现在我想在 NAT 实例上配置代理服务器,以便 NAT 上的互联网通过 Squid 代理服务器路由。

此设置是在 CentOS 6.3 上配置的。

答案1

透明拦截流量使用基于策略的路由通过NAT将网络流量重定向到squid代理,然后拦截它。

  • 在 GW 或 NAT 盒上设置策略路由,调整 IP 和接口以适应。您的图表意味着可能不需要允许您的鱿鱼盒访问互联网的第一条规则。

    iptables -t mangle -A PREROUTING -j ACCEPT -p tcp --dport 80 -s squidip
    iptables -t mangle -A PREROUTING -j MARK --set-mark 8 -p tcp --dport 80
    ip rule add fwmark 8 table 2
    ip route add default via squidip dev eth0 table 2
    
  • 然后在 Squid Proxy 上进行拦截。如果端口 80 上的其他数据有可能需要通过此框,则此规则可以更加具体。

    iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3129
    
  • 在鱿鱼盒上,squid.conf

    http_port 3129 intercept
    

如果您需要支持IPV6,乌贼有一个tproxy 配置示例对于 CentOS。

相关内容