Ротирующие IPv6 прокси на 3proxy: автоматическая смена IP по таймеру
Что такое ротирующий прокси и зачем он нужен
В предыдущей статье IPv6 прокси из подсети 47 на одном VPS мы разбирали как настроить статические ipv6 прокси на VPS. В этой статье покажем как можно настроить ротацию ipv6.
Ротирующий прокси это прокси который автоматически меняет выходной IP через заданный интервал времени. При подключении к одному и тому же адресу и порту каждые N минут запросы уходят в интернет с нового IP
Как это работает
- 3proxy запущен с одним выходным IPv6 адресом
- Скрипт по cron каждые N минут генерирует новый случайный IPv6 из вашей подсети
- Обновляет конфиг 3proxy
- Перезапускает сервис
- Клиент продолжает подключаться к тому же порту, но выходит уже через новый IP
-
Note
На Litnets VPS доступны IPv4 и подсеть IPv6 /47, поэтому сервер можно использовать как основу для собственной прокси-инфраструктуры.
Настройка
Базовый конфиг 3proxy для ротации
В отличие от статики здесь всего один порт на одного клиента. IP в конфиге будет меняться скриптом:
nano /etc/3proxy/3proxy.cfg
daemon
pidfile /run/3proxy.pid
nscache 65536
nscache6 65536
timeouts 1 5 30 60 180 1800 15 60
log /tmp/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
users $/etc/3proxy/passwd
flush
auth strong
allow *
# Ротирующий прокси — IP меняется скриптом
proxy -64 -p5000 -i0.0.0.0 -e2a0d:6c2:17:c92::1
Добавляем пользователя:
rotateuser и yourpassword - ваш логин и пароль
echo "rotateuser:CL:yourpassword" >> /etc/3proxy/passwd
systemctl restart 3proxy
Скрипт ротации
меняет выходной IPv6 на случайный из подсети
nano /root/rotate-ipv6.sh
#!/bin/bash
SUBNET="2a0d:6c2:17:c92" # ваша подсеть без ::
INTERFACE="ens192" # ваш интерфейс
CONFIG_FILE="/etc/3proxy/3proxy.cfg"
PORT=5000 # порт из конфига
# Генерируем случайный суффикс (от 1 до 65535)
SUFFIX=$(printf "%x" $((RANDOM % 65535 + 1)))
NEW_IPV6="${SUBNET}::${SUFFIX}"
# Удаляем старый IP с интерфейса
OLD_IPV6=$(grep "proxy -64 -p${PORT}" "$CONFIG_FILE" | grep -oP '(?<=-e)[^\s]+')
if [ -n "$OLD_IPV6" ]; then
ip -6 addr del "${OLD_IPV6}/64" dev "$INTERFACE" 2>/dev/null
fi
# Добавляем новый IP на интерфейс
ip -6 addr add "${NEW_IPV6}/64" dev "$INTERFACE" 2>/dev/null
# Обновляем конфиг
sed -i "s|-e${OLD_IPV6}|-e${NEW_IPV6}|g" "$CONFIG_FILE"
# Перезапускаем 3proxy
systemctl restart 3proxy
echo "$(date): IP сменён на ${NEW_IPV6}"
Проверяем что скрипт работает:
rotateuser и yourpassword - ваш логин и пароль
5000 - порт из конфига
https://api6.ipify.org - сайт для проверки ipv6
bash /root/rotate-ipv6.sh
curl -s -x http://rotateuser:yourpassword@127.0.0.1:5000 https://api6.ipify.org
Запускаем ещё раз и проверяем что IP изменился:
bash /root/rotate-ipv6.sh
curl -s -x http://rotateuser:yourpassword@127.0.0.1:5000 https://api6.ipify.org
ip меняется каждый раз после выполнения скрипта, значит скрипт работает
Настраиваем автоматическую ротацию через cron
crontab -e
Варианты интервалов на выбор:
Выберите один и добавьте строку в cron
# Каждые 5 минут
*/5 * * * * /root/rotate-ipv6.sh >> /var/log/rotate-ipv6.log 2>&1
# Каждые 10 минут
*/10 * * * * /root/rotate-ipv6.sh >> /var/log/rotate-ipv6.log 2>&1
# Каждый час
0 * * * * /root/rotate-ipv6.sh >> /var/log/rotate-ipv6.log 2>&1
Проверяем лог ротации через некоторое время, после того как скрипт выполнится несколько раз.
tail -f /var/log/rotate-ipv6.log
Должны видеть записи вида:
Mon Aug 24 12:00:00 UTC 2026: IP сменён на 2a0d:6c2:17:c92::a3f2
Mon Aug 24 12:05:00 UTC 2026: IP сменён на 2a0d:6c2:17:c92::1b44
Mon Aug 24 12:10:00 UTC 2026: IP сменён на 2a0d:6c2:17:c92::f201
При проверке в браузере прокси также показывает разные ip
В итоге вы получаете один прокси с доступами, которые не меняются
195.133.17.28:5000:rotateuser:yourpassword
Подключение всегда к одному адресу, но выходной IP меняется автоматически по расписанию. Не нужно ничего перенастраивать.
Tариф Custom
Windows OS доступны с минимальными характеристиками: 2 vCPU, 2 GB RAM, и 20 GB SSD
Цена:
1vCPU - 180₽ (1 бесплатно)
1GB RAM - 230₽
1GB SSD - 15₽
1 ipv4 - 200₽ (1 бесплатно)