Squid 的 TPROXY 监听器可以成功接收客户端流量,但它与父级代理的连接却可能失败。在那条出站连接上保留源地址,对父级的网络路径而言可能并不合适。

在支持该选项的 Squid 版本中,把 no-tproxy 加到相应的现有 cache_peer 定义里。例如:

cache_peer parent.example.net parent 8118 0 no-query no-tproxy

no-tproxy 会关闭发往该对等体的连接上的客户端源地址伪装。它不会移除监听器的透明配置,也不会自行选择对等体。请保留部署中其他的父级选择选项与规则。如果这些规则允许经由未认证的父级访问公共目标,HTTP 代理列表可提供候选地址;不要保留现有的父级凭据,并逐个核验实际 CONNECT 目标的授权。

现在父级收到的是来自 Squid 自身出站地址的普通连接,并受任何 NAT 的影响。它的访问策略和认证必须允许这个下游代理。当父级使用 IP 限制时,请检查父级所看到的源地址。

该选项有文档说明适用于 Squid 7 及更早的受支持版本;配置参考标明它在 Squid 8 中不可用。请让做法与所用版本保持一致。

相关文章