Creating proxies on large number of ports that forward to external proxy

I need some sort of proxy software (similar to Squid) that will work on Linux and allow me to create proxies listening on multiple ports. The proxies need to forward web requests to another external proxy (that requires authentication).

The issue with squid is that it has a max port limit of 128, and I'm looking to use 500+ ports on the server.

A connection to the proxies will look like this:

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

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

Any help would be greatly appreciated

1
задан 2 November 2018 в 13:23
1 ответ

То, что вам нужно, несколько похоже на мой ответ по более старому вопросу. Я реализовал программное обеспечение, которое требовало как для получения соединений на всех портах, так и для инициирования соединений с множества разных IP-адресов. Это два разных требования, но оказывается, что они могут быть выполнены очень похожими способами.

Чтобы получать соединения для многих номеров портов на одном сокете, вам необходимо использовать параметр IP_TRANSPARENT на socket и TPROXY в iptables.

Согласно https://wiki.squid-cache.org/Features/Tproxy4 , это поддерживается в Squid 3.1 или новее.

В вашем случае конфигурация iptables должна быть немного другой. Вам понадобится примерно такая запись в таблице mangle :

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

Вам нужно будет настроить IP-адрес и номера портов в соответствии с вашими требованиями.

1
ответ дан 3 December 2019 в 23:10

Теги

Похожие вопросы