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
То, что вам нужно, несколько похоже на мой ответ по более старому вопросу. Я реализовал программное обеспечение, которое требовало как для получения соединений на всех портах, так и для инициирования соединений с множества разных 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-адрес и номера портов в соответствии с вашими требованиями.