1 个路由器,多个 HTTP 代理

1 个路由器,多个 HTTP 代理

有没有办法让一台路由器连接多台设备并使用不同的 HTTP 代理?例如,一台连接了 10 台设备的路由器需要让每台设备连接到不同的代理。如果您好奇我为什么不直接在机器上设置代理,那么代理无法在机器上设置。我对路由器不熟悉,所以请用外行人能理解的术语来讲。

barlop 的注释

纠正了他的问题,指出 HTTP 代理,这才是他的意思,而不仅仅是代理,这有点含糊不清。

答案1

不,你不能,而且这听起来也是一个非常糟糕的设计选择。

代理管理从设备到服务(通常是 Web 服务)的连接,但如果设备本身没有设置代理,设备将不知道该去哪里,那么设备将只尝试标准连接,而您的代理必须在传输过程中捕获来自设备的尝试连接。这通常称为透明代理。

但是,所有这些拦截仍然需要在同一个地方(路由器)进行捕获,并使用相同的规则来匹配连接类型。您不能将多个代理服务绑定到同一个服务规则,因为没有硬件知道您要运行哪一个。您没有为每个设备配备一个路由器,您只有一个路由器,因此您只有一个代理服务。

您可能应该重新检查您正在尝试解决的任何问题,看看是否有其他方式来查看或重新表述它。研究路由器和代理通常也可能有帮助。根据您的情况,可能可以配置单个代理以对不同的客户端设备应用不同的策略,但我对此类服务不够熟悉,无法说明如何做到这一点。

答案2

我想说的第一点是:永远不要要求别人“帮我做一些奇怪的事情,但只能说我的语言”。在提出要求之前,你总是必须学习他们的语言。所以你没有其他选择,只能让自己更熟悉所有这些路由器的东西,或者付钱给已经熟悉并可以为你做这项工作的人。

因此,您需要一个能够将数据包重定向到代理的路由器;大多数(如果不是全部) SOHO 路由器都无法做到这一点。此外,您应该能够输入任意防火墙规则,而不仅仅是单个复选框“执行透明代理”。这可能是运行某些 Linux 发行版的传统 PC,或某些 Cisco 路由器,或类似的东西。任何能够完成您的任务的路由器都会有一个命令行界面,并且 CLI 将是主要的和推荐的,甚至是配置它的唯一方法。

您需要在某个地方运行这些代理。例如,这可能是运行某些代理软件的 10 个独立实例的同一台传统 PC(在一个系统中运行 10 个独立代理不是一件容易的事),或者带有代理的 10 个虚拟机(或 OS 容器),这可能更容易,但需要更多资源。我经常使用 Squid 进行代理,它可以进行透明代理,我更喜欢 LXC 容器,但我不确定 LXC 环境是否足够,这需要调查。

确定如何识别您的设备。这可能是 IP 地址,或者如果您的路由器和这些设备之间没有其他路由器,则可能是 MAC 地址。

当您完成所有决定后,您可以返回这里并询问如何配置您选择的内容。

相关内容