目前我必须为所有本地 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 透明 - 它看起来就像客户端正在发出代理请求。
老实说,设置起来有点麻烦(需要输入多个指令),但它确实有效。