如何让 Squid 使用两个 NIC 工作?

如何让 Squid 使用两个 NIC 工作?

我目前在 Windows Server 2016 上安装了 Squid 3,并制定了一些规则,cache_peer根据一些预设将传入的数据中继到不同的父级ACL

 (10.0.1.5)
                    (172.16.0.1)
+----------+
| Parent A |       +------------+
+----------+-----> |            |
                   |  SquidSrv  |             +----+   +----+
                   |            |             | PC |   | PC |
+----------+-----> |            |======-> ... | 1  |...| 2  | ...
| Parent B |       +------------+             +----+   +----+
+----------+

 (10.0.2.6)

和使用单一接口进行物理连接Parent AParent BSquidSrv

我想在SquidSrv和之间引入一个新的 NIC两个都Parent AParent B让我们考虑一下这个图:

 (10.0.1.5)
+----------+                    (172.16.0.1)
| Parent A |
+----+-----+                   +------------+
     |                  =====> |            |
     |    (intranet)   //  (1) |  SquidSrv  |
     *==============>>XX       |            |
     |                 \\  (2) |            | ===> ...
     |                  =====> |            |
+----+-----+                   +------------+
| Parent B |
+----------+
 (10.0.2.6)

(机器保持不变,这里省略。)

请注意(1)(2)代表网卡, 和Parent AParent B可以通过 NIC 1 或 NIC 2 进行访问SquidSrv。 访问的机器SquidSrv保持不变。

我的计划是机器 1探望父母双方仅有的通过第一个网卡,并且有机器 2探望父母双方仅有的通过第二个网卡

起初,我以为应该像配置一样简单多个网关在 Squid 中,让它将ACLs 绑定到每个接口。但是,Windows Server 上的 Squid 似乎无法通过接口请求路由。Google 给我的最接近的答案似乎tcp_outgoing_address并没有实现我想要的功能。

我能想到的一个解决方案是拥有两个 Squid 实例,每个实例都连接到单个 NIC,并通过SquidSrv本地 IP 进行访问。但是,我不想为了实现此目的而浪费两套 Squid 安装和配置文件的 VM 空间。

我还发现了一个专有软件,叫做温盖特它实际上可以绑定到各个网卡并提供 SOCKS 代理,可以通过私有网络。但我不想把它引入其中。

有没有一种简单的方法可以在 Windows Server 上的两个接口之间路由请求?在这种情况下,最好的策略是什么?

相关内容