我目前在 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 A
。Parent B
SquidSrv
我想在SquidSrv
和之间引入一个新的 NIC两个都和Parent A
。Parent 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 A
都Parent B
可以通过 NIC 1 或 NIC 2 进行访问SquidSrv
。 访问的机器SquidSrv
保持不变。
我的计划是机器 1探望父母双方仅有的通过第一个网卡,并且有机器 2探望父母双方仅有的通过第二个网卡。
起初,我以为应该像配置一样简单多个网关在 Squid 中,让它将ACL
s 绑定到每个接口。但是,Windows Server 上的 Squid 似乎无法通过接口请求路由。Google 给我的最接近的答案似乎tcp_outgoing_address
并没有实现我想要的功能。
我能想到的一个解决方案是拥有两个 Squid 实例,每个实例都连接到单个 NIC,并通过SquidSrv
本地 IP 进行访问。但是,我不想为了实现此目的而浪费两套 Squid 安装和配置文件的 VM 空间。
我还发现了一个专有软件,叫做温盖特它实际上可以绑定到各个网卡并提供 SOCKS 代理,可以通过私有网络。但我不想把它引入其中。
有没有一种简单的方法可以在 Windows Server 上的两个接口之间路由请求?在这种情况下,最好的策略是什么?