如果服务器上使用多个 IP,是否可以将 Squid 配置为使用传入 IP 地址作为传出地址?

如果服务器上使用多个 IP,是否可以将 Squid 配置为使用传入 IP 地址作为传出地址?

目前我必须为所有本地 IP 定义如下规则:

acl ip1 localip 1.1.1.1/32
tcp_outgoing_address 1.1.1.1 ip1
acl ip2 localip 2.2.2.2/32
tcp_outgoing_address 2.2.2.2 ip2
acl ip3 localip 3.3.3.3/32
tcp_outgoing_address 3.3.3.3 ip3

因为我需要配置多个服务器,而且它们总是有不同的 IP,所以我想以某种方式配置 squid,使得用作传入地址的相同地址也用作传出地址。

这可能吗?

我也愿意尝试其他解决方案。我尝试了 tinyproxy,它有“bindsame”选项,但缺乏定义外部身份验证脚本的可能性。我还需要通过 squid 可以执行的程序进行外部身份验证。

答案1

简短回答:根据我的研究,squid 不支持任何类似 tinyproxy 的“BindSame”的东西。

细节:我一直在研究这个主题,因为我的情况和你完全一样:我想使用 tinyproxy 进行 BindSame 配置,但我需要身份验证,而 tinyproxy 不支持。不幸的是,我的结论是 squid 没有与 tinyproxy 的 BindSame 等效的功能。我看不到其他可用于指定传出 IP 地址的指令。

squid 参考文档,我们看到 tcp_outgoing_address 指令需要特定的 IP 地址作为参数。它不会接受“same”之类的内容或来自匹配 ACL 的变量。

我希望我能给你一个更有利的答案,因为如果我有的话,我也会使用它!

答案2

你想要的功能(如果我没有看错你的问题)是代理服务器- 这有效地使 squid IP 透明 - 它看起来就像客户端正在发出代理请求。

老实说,设置起来有点麻烦(需要输入多个指令),但它确实有效。

相关内容