我一直在使用几种不同的正向代理软件,主要是 CCProxy 和 Squid Proxy/Cache。我有一个专用服务器,它有一个 NIC,并分配了多个 IP。一个 IP 是静态的,其余的是动态的。静态 IP 充当主地址,这是我访问代理服务器的方式,其他 IP 是用于网页抓取和其他任务的动态 IP 地址。我在 CCProxy 中创建了一个代理,它允许您将用户链接到特定的出站 IP 地址,这对我正在做的事情非常有用,允许我将不同的任务分配给不同的 IP。
所以我想知道这是否可以在 Squid Proxy 中实现?
我喜欢 Squid 的可定制性,但我真的不需要这个功能。
提前致谢,乔
答案1
执行此操作的选项是tcp_outgoing_address
:
允许您根据发出请求的用户的用户名或源地址将请求映射到不同的传出 IP 地址。
“传出 IP 地址”实际上是指“源 IP”。现在您可以选择一个访问控制列表通过任何可用的方式区分您的用户、客户端 IP(acl ... src ...
),简单代理认证(auth_param
+basic_ncsa_auth
) ETC。
示例改编自文档,使用源 IP 作为选择器,其中 squid 服务器将拥有 LAN 中的各种 IP192.0.2.0/24
及其主 IP 192.0.2.1
。将其添加到典型示例中squid.conf
:
acl allowed_clients src 198.51.100.0/24
http_access allow allowed_clients
acl dedicated_client1 src 198.51.100.174
tcp_outgoing_address 192.0.2.174 dedicated_client1
tcp_outgoing_address 192.0.2.10 allowed_clients
tcp_outgoing_address 192.0.2.5
将允许来自 的客户端allowed_clients
,并让它们使用传出 IP 192.0.2.10
,但来自 的客户端除外,198.51.100.174
它将获得192.0.2.174
。除此示例之外在其他地方配置的任何其他客户端都将使用192.0.2.5
,并且永远不会使用服务器的主 IP。