四个代理端口并不自动等于四个公网 IP。Squid 通常让操作系统为它的出站连接选择源地址。要让端口选择真正有意义,需要把它与明确的出站地址策略关联起来。

在支持这些指令的 Squid 7 配置中,路由片段可以使用命名监听器:

http_port 3128 name=exit_a
http_port 3129 name=exit_b
acl on_a myportname exit_a
acl on_b myportname exit_b
tcp_outgoing_address 192.0.2.10 on_a
tcp_outgoing_address 192.0.2.11 on_b

这些地址只是文档示例。请把它们替换为你主机上已分配且可用的地址。这为原本已受限的代理配置增加了路由;它并不提供身份验证或客户端访问规则。

源地址选择只是路径的一部分

出站地址参考说明了按顺序匹配以及地址族的选择。IPv4 源不能成为 IPv6 连接的源。当不同地址来自不同运营商时,主机的路由策略必须为每个地址使用兼容的网关。

上游 NAT 可能把两个选定的本地地址转换成一个公网地址。因此监听器映射可以在本地生效,却未必产生你预期的公网身份。父级代理也可能成为最终面向网站的出口。

现有连接值得注意。Squid 文档提醒要留意依赖客户端的出站规则以及服务器端的持久连接。复用按旧策略建立的连接,可能让已经改变的源地址选择看起来毫无效果。

请结合本地策略和一条新连接来解读网站所见的地址。不同的入站端口只是一个选择信号,而不是 IP 地址分配机制。

相关文章