IPv6 прокси из подсети /47 на VPS: настройка 3proxy
Настройка IPv6 прокси из подсети /47
IPv6 прокси из подсети /47: статические адреса
Что такое статический IPv6 прокси и зачем он нужен
Статический IPv6 прокси это фиксированный адрес из вашей подсети, который не меняется между сессиями. Клиент всегда выходит через один и тот же IPv6, как через выделенный IPv4, что позволяет использовать большое количество адресов из выделенной подсети без заказа отдельного IPv4 для каждого адреса
Для каких задач подходят статические IPv6
Статические IPv6-прокси подходят для задач, где требуется несколько независимых сетевых адресов:
- Тестирование сайтов и приложений — проверка работы сервисов через разные IPv6-адреса.
- SEO и аналитика — проверка доступности сайтов и поисковой выдачи с разных сетевых адресов.
- Разработка — тестирование приложений, которые работают с IPv6 и прокси-серверами.
- Автоматизация — запуск собственных скриптов и приложений через отдельные прокси.
- Сетевые сервисы — распределение подключений между несколькими IPv6-адресами.
Преимущества перед IPv4
Если требуется несколько сетевых адресов, IPv6 позволяет использовать большую подсеть без необходимости заказывать отдельный IPv4 для каждого адреса.
IPv4 остается универсальным вариантом, т.к. его поддержка больше распространена. IPv6 подходит для сервисов и приложений, которые поддерживают этот протокол.
Если конкретный ресурс не поддерживает IPv6, для него можно использовать IPv4-прокси из предыдущей статьи: Пул IPv4 прокси на 3proxy
IPv6-подсеть на VPS Litnets
На VPS Litnets по умолчанию выдается 1 IPv4 и подсеть IPv6 /47. Это позволяет использовать VPS не только для одного IPv6 прокси, но и создавать несколько независимых прокси с разными исходящими IPv6-адресами.
В отличие от IPv4, для каждого дополнительного IPv6 не нужно заказывать отдельный адрес. Можно использовать адреса из выданной подсети /47.
Note
На Litnets VPS доступны IPv4 и подсеть IPv6 /47, поэтому сервер можно использовать как основу для собственной прокси-инфраструктуры.
Проверяем подсеть на сервере
На серверах litnets подсеть уже прописана в netplan при настройке сервера. Проверяем:
ip addr show ens192 | grep inet6
Должны увидеть ваш ipv6 адрес
inet6 2a0d:6c2:17:c92::/47 scope global
Проверяем что IPv6 маршрутизируется наружу:
ping6 -c 3 google.com
Если пингуется, то подсеть работает.
Добавляем маршрут для подсети
Сейчас система знает что подсеть существует, но не знает что может использовать любой адрес из неё как исходящий. Маршрут local говорит что все адреса из этой подсети локальные.
Сначала проверяем, возможно маршрут уже есть:
ip -6 route show table local | grep "local 2"
Если видите строку вида local 2a0d:6c2:16::/47 dev lo, то маршрут уже поднят автоматически и ничего делать не нужно, переходите к следующему шагу.
Если строки нет, добавляем вручную:
ip -6 route add local ВАША_ПОДСЕТЬ/47 dev lo
Важно: подсеть в маршруте может отличаться от той что прописана в netplan. Например в netplan 2a0d:6c2:17:c92::/47, а маршрут поднимается как 2a0d:6c2:16::/47 — это нормально, /47 объединяет две /48 подсети. Используйте ту подсеть которую показывает команда проверки.
Создание базового файла конфигурации
Убедитесь, что 3proxy установлен. Как установить 3proxy на VPS разбирали в статье Как установить и настроить 3proxy на VPS
Создаём директорию и файл конфигурации:
mkdir -p /etc/3proxy
mkdir -p /var/log/3proxy
touch /etc/3proxy/3proxy.cfg
touch /etc/3proxy/passwd
Минимальный рабочий конфиг:
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 *
# IPv4 прокси
proxy -p3001 -i0.0.0.0 -e195.133.17.28
# === GENERATED IPV6 PROXIES ===
Здесь IPv4-прокси оставлен для проверки основной конфигурации, если он не нужен, его можно убрать.
IPv6-прокси будут автоматически добавлены после запуска скрипта генерации.
Настройка systemd-сервиса
Настройка с помощью systemd позволит запускать прокси фоном, автоматически поднимать прокси после перезагрузки и легко управлять процессом.
cat > /etc/systemd/system/3proxy.service << 'EOF'
[Unit]
Description=3proxy Proxy Server
After=network.target
[Service]
Type=forking
PIDFile=/run/3proxy.pid
ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Если появился статус active, то сервис запущен
Скрипт автоматизирующий создание статических IPv6 прокси
Если необходимо создать несколько IPv6-прокси, добавлять каждый адрес и отдельную директиву proxy вручную неудобно. Для этого можно использовать скрипт, который автоматически создаст нужное количество конфигураций.
- Очищает старые хвосты конфигурации по маркеру
# === GENERATED IPV6 PROXIES ===. - Переводит номер итерации в шестнадцатеричный вид (
printf "%x"), формируя валидный суффикс IPv6. - Вешает адрес на сетевой интерфейс (
ip -6 addr add). - Генерирует надежные случайные пароли через
openssl. - Прописывает директивы
proxy -64для корректной маршрутизации.
nano generate-ipv6-proxies.sh
#!/bin/bash
# generate-ipv6-proxies.sh
SERVER_IP="195.133.17.28" # IPv4 сервера для подключения
SUBNET="2a0d:6c2:17:c92" # Ваша подсеть без ::
OUTPUT_FILE="/root/proxies-ipv6.txt"
PASSWD_FILE="/etc/3proxy/passwd"
CONFIG_FILE="/etc/3proxy/3proxy.cfg"
START_PORT=4001
COUNT=10 # Сколько IPv6 прокси создать
# 1. Очищаем старые сгенерированные прокси из конфига по маркеру
if grep -q "# === GENERATED IPV6 PROXIES ===" "$CONFIG_FILE"; then
sed -i '/# === GENERATED IPV6 PROXIES ===/,$d' "$CONFIG_FILE"
fi
# Возвращаем маркер на место
echo "# === GENERATED IPV6 PROXIES ===" >> "$CONFIG_FILE"
# 2. Очищаем старые временные файлы выдачи и паролей
> "$OUTPUT_FILE"
> "$PASSWD_FILE"
# 3. Генерация прокси в цикле
for i in $(seq 1 $COUNT); do
PORT=$((START_PORT + i - 1))
# Генерируем IPv6 (суффикс в шестнадцатеричном формате: 1, 2... a, b... 10)
SUFFIX=$(printf "%x" $i)
IPV6="${SUBNET}::${SUFFIX}"
# Генерируем уникальные доступы
USER="useripv${i}"
PASS=$(openssl rand -hex 6)
# Добавляем IPv6-адрес на сетевой интерфейс сервера (маска /64)
ip -6 addr add "${IPV6}/64" dev ens192 2>/dev/null
# Записываем пользователя в файл passwd
echo "${USER}:CL:${PASS}" >> "$PASSWD_FILE"
# Добавляем строку прокси с флагом -64 (ВАЖНО для вашей версии 3proxy)
echo "proxy -64 -p${PORT} -i0.0.0.0 -e${IPV6}" >> "$CONFIG_FILE"
# Формируем список прокси для импорта в софт/браузер
echo "${SERVER_IP}:${PORT}:${USER}:${PASS}" >> "$OUTPUT_FILE"
done
# 4. Перезапуск сервиса для применения настроек
systemctl restart 3proxy
echo "Готово! Успешно создано $COUNT IPv6 прокси."
echo "Список прокси сохранен в: $OUTPUT_FILE"
echo "----------------------------------------"
cat "$OUTPUT_FILE"
bash generate-ipv6-proxies.sh
Здесь для каждого прокси используются:
один порт;
отдельный IPv6-адрес;
отдельный логин;
отдельный пароль.
Полученный список также сохраняется в /root/proxies-ipv6.txt.
Пример конфига который получился
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 *
# IPv4 прокси
proxy -p3001 -i0.0.0.0 -e195.133.17.28
# === GENERATED IPV6 PROXIES ===
proxy -64 -p4001 -i0.0.0.0 -e2a0d:6c2:17:c92::1
proxy -64 -p4002 -i0.0.0.0 -e2a0d:6c2:17:c92::2
proxy -64 -p4003 -i0.0.0.0 -e2a0d:6c2:17:c92::3
proxy -64 -p4004 -i0.0.0.0 -e2a0d:6c2:17:c92::4
proxy -64 -p4005 -i0.0.0.0 -e2a0d:6c2:17:c92::5
proxy -64 -p4006 -i0.0.0.0 -e2a0d:6c2:17:c92::6
proxy -64 -p4007 -i0.0.0.0 -e2a0d:6c2:17:c92::7
proxy -64 -p4008 -i0.0.0.0 -e2a0d:6c2:17:c92::8
proxy -64 -p4009 -i0.0.0.0 -e2a0d:6c2:17:c92::9
proxy -64 -p4010 -i0.0.0.0 -e2a0d:6c2:17:c92::a
Проверяем
Проверка что порты из конфига слушаются
ss -tlnp | grep 3proxy
Можно проверить каждый порт скриптом, вставьте его в терминал и выполните
while IFS=: read -r IP PORT USER PASS; do
RES=$(curl -s -x "http://${USER}:${PASS}@127.0.0.1:${PORT}" --connect-timeout 4 https://api6.ipify.org)
if [ -n "$RES" ]; then
echo "Порт $PORT работает → $RES"
else
echo "Порт $PORT ОШИБКА (нет ответа от IPv6)"
fi
done < /root/proxies-ipv6.txt
Каждый порт должен отдавать свой уникальный IPv6 адрес.
Можно проверить отдельно соединение локально с сервера на котором запущен 3proxy
curl -s -x http://useripv1:7099190b75e0@127.0.0.1:4001 https://api6.ipify.org
Или из вне, например с домашнего компьютера. Соединение будет проходить по вашему внешнему ip и перенаправляться на ipv6
curl -s -x http://useripv1:7099190b75e0@195.133.17.28:4001 https://api6.ipify.org
195.133.17.28 — IPv4-адрес VPS;
4001 — порт первого IPv6-прокси;
useripv1 — логин;
7099190b75e0 — пароль;
api6.ipify.org — сервис для проверки исходящего IPv6.
Или если требуется отладочная информация то замените -s на -v
curl -v -x http://useripv1:7099190b75e0@127.0.0.1:4001 https://api6.ipify.org
Настройка IPv6-прокси на компьютере
После проверки подключения прокси можно использовать в браузере или настроить его на уровне операционной системы.
Для подключения понадобятся IPv4-адрес VPS, порт, логин и пароль соответствующего прокси.
Браузер (Chrome/Firefox) в настройках сети указывается:
Тип: HTTP
Адрес: 195.133.17.28
Порт: 4001
Логин: useripv1
Пароль: 7099190b75e0
Системно (Windows) — Параметры → Сеть → Прокси → Ручная настройка
Системно (Mac) — Системные настройки → Сеть → Прокси
Например в Windows
Добавляем свой ip и порт, сохраняем
В браузере появится возможность авторизации, вводим логин и пароль
При проверке видим ваш ipv6 адрес
Сохраняем настройки после перезагрузки
После перезагрузки сервера IPv6 адреса добавленные скриптом через ip -6 addr add слетают, т.к это временные адреса.
Пароли и конфиг 3proxy остаются нетронутыми, но прокси перестают работать потому что адресов на интерфейсе нет.
Чтобы это исправить прописываем все IPv6 адреса в netplan. Тогда они будут подниматься автоматически при каждой загрузке, а пароли останутся прежними.
Запускаем скрипт один раз:
nano fix-ipv6-persistent.sh
#!/bin/bash
# fix-ipv6-persistent.sh
SUBNET="2a0d:6c2:17:c92"
COUNT=10 # Столько же сколько создавали прокси
CONFIG="/etc/cloud/cloud.cfg.d/90-installer-network.cfg"
for i in $(seq 1 $COUNT); do
SUFFIX=$(printf "%x" $i)
IPV6="${SUBNET}::${SUFFIX}/47"
# Добавляем только если ещё нет
grep -q "$IPV6" "$CONFIG" || \
sed -i "/- ${SUBNET}::\\/47/a\\ - ${IPV6}" "$CONFIG"
done
netplan apply
echo "Готово."
bash fix-ipv6-persistent.sh
перезагружаем сервер
Проверяем что адреса появились:
ip -6 addr show ens192 | grep "c92::"
Перезагружаемся и убеждаемся что всё осталось:
reboot
После перезагрузки:
# Адреса на месте
ip -6 addr show ens192 | grep "c92::" | wc -l
# Прокси работают с теми же паролями
curl -s -x http://useripv1:7099190b75e0@127.0.0.1:4001 https://api6.ipify.org
Теперь при подключении к вашему ip по разным портам будет происходить перенаправление трафика на ipv6 адрес, который указан в конфиге.
В следующей статье разберем, как настроить автоматическую смену IPv6-адреса через заданный интервал, сохраняя те же параметры подключения: Ротирующие IPv6 прокси на 3proxy. Автоматическая смена IP по таймеру
Используйте прокси только в соответствии с законодательством, правилами используемых сервисов и условиями вашего VPS-провайдера. Не допускайте использования сервера для спама, атак, обхода ограничений и другой запрещенной активности.
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 бесплатно)