在大量端口上创建代理并转发到外部代理

在大量端口上创建代理并转发到外部代理

我需要某种可以在 Linux 上运行的代理软件(类似于 Squid),并允许我创建监听多个端口的代理。代理需要将 Web 请求转发到另一个外部代理(需要身份验证)。

squid 的问题在于它的最大端口限制为 128,而我希望在服务器上使用 500 多个端口。

与代理的连接将如下所示:

Client --> proxy1 (port 1000) --> external proxy 1 --> website

Client --> proxy2 (port 1001) --> external proxy 2 --> website

任何帮助将不胜感激

答案1

你需要的是有点类似于我的答案关于一个老问题。我实施的软件既需要在所有端口上接收连接,也需要从许多不同的 IP 发起连接。这是两个不同的要求,但事实证明它们可以用非常相似的方式实现。

为了在单个套接字上接收许多端口号的连接,您需要使用IP_TRANSPARENT套接字上和TPROXYiptables 中的选项。

根据https://wiki.squid-cache.org/Features/Tproxy4Squid 3.1 或更高版本支持此功能。

您的 iptables 配置需要略有不同。您需要一个大致如下所示的条目mangle

-A PREROUTING -d 192.0.2.42 -p tcp -m tcp --dport 80:65535 -j TPROXY --on-port 3129

您需要调整 IP 地址和端口号以满足您的要求。

相关内容