Балансировка, рапределение подключений и нагрузки в 3proxy

В качестве примера настройки конфигурации 3proxy для балансировки мы поднимем десяток socks5 прокси tor, при помощи 3proxy превратим их в единый http проксик на порту 3128, который будет использовать различные порты tor при каждом соединении — балансировать между ними.

Вообще, для конкретно простой задачи рандомизации ip лучше запускать требуемую программку через proxychains с директивой random_chain прописывая в прокси листе аля:

socks5 127.0.0.1 9060
socks5 127.0.0.1 9061
socks5 127.0.0.1 9062
socks5 127.0.0.1 9063
# ну и так далее

но, не для всех задач рандомизация через proxychains подходит.

Для начала нам понадобится собственно установить tor и 3proxy

apt update && apt install tor git make gcc -y
git clone https://github.com/3proxy/3proxy.git
cd ./3proxy
ln -s Makefile.Linux Makefile
make && make install

Поднимем себе несколько локальных socks5 tor проксиков, это просто:

service tor stop
for item in $(seq 9060 9070); do echo "SocksPort $item" >> /etc/tor/torrc ; done
service tor start

мы сейчас просто дописали в конфиг /etc/tor/torrc пул SocksPort портов 9060-9070 доступных на локальном интерфейсе socks5://127.0.0.1:9060

Итак у нас есть 11 штук доступных socks5 прокси, сразу проверим прямоту своих рук и их доступность на всякий случай:

curl --proxy socks5://127.0.0.1:9065 eth0.me

Теперь приступим к настройке балансировки данных проксиков через 3proxy. Там есть такая штука, называется weight — вес, он суммарно не должен превышать 1000 для всех родительских прокси. Вот эти 11 штук что мы подняли — это будут родительские прокси. 1000/11 = где то 90, так и пропишем, открываем конфиг:

nano /etc/3proxy/conf/3proxy.cfg

и пишем в него:

nscache 65536
nserver 8.8.8.8
nserver 8.8.4.4

log /logs/3proxy-%y%m%d.log D

auth iponly

allow *
parent 90 socks5 127.0.0.1 9060
parent 90 socks5 127.0.0.1 9061
parent 90 socks5 127.0.0.1 9062
parent 90 socks5 127.0.0.1 9063
parent 90 socks5 127.0.0.1 9064
parent 90 socks5 127.0.0.1 9065
parent 90 socks5 127.0.0.1 9066
parent 90 socks5 127.0.0.1 9067
parent 90 socks5 127.0.0.1 9068
parent 90 socks5 127.0.0.1 9069
parent 90 socks5 127.0.0.1 9070


proxy -p3128 -i127.0.0.1

сохраняем, и перезапускаем, там есть рестарт, но после него что то вечно отваливается, поэтому:

service 3proxy stop
service 3proxy start

можно тестить на локальном интерфейсе порт 3128!

while true ; do curl --proxy http://127.0.0.1:3128 eth0.me ; sleep 1; done

Мы должны увидеть рандом своих ip.  И тут можно наблюдать в логах как меняются порты:

tail -f /var/log/3proxy/3proxy-*.log

Готово. Вот так мы превратили 11 tor socks проксиков в один http распределяющий нагрузку прокси 3proxy на порту 3128.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *