Автоматическое назначение IPv6-адресов для 3proxy через HTTP-запросы

Эта инструкция позволит вам автоматически изменять IPv6-адреса в файле конфигурации 3proxy с помощью HTTP-запросов. Это удобно для динамического управления прокси без необходимости редактировать файлы вручную.

Перед началом убедитесь, что ваш сервер с 3proxy уже настроен и работает. Если 3proxy не установлен, воспользуйтесь этой инструкцией:

Автоматическая настройка IPv6 прокси с помощью скрипта

1. Для работы скрипта потребуется веб-сервер Apache с поддержкой PHP.

Установите их:

apt update
apt install apache2 php libapache2-mod-php -y


После установки проверьте, что Apache работает:

systemctl status apache2


Если сервер не запущен, включите его:

systemctl enable --now apache2


2. Размещение скрипта assign_ip.php

Создадим каталог для скриптов:

mkdir -p /var/www/html/proxy
cd /var/www/html/proxy


Добавим файл assign_ip.php:

Создайте файл:

nano /var/www/html/proxy/assign_ip.php


Вставьте код (замените 185.220.35.75 на свой IPv4-адрес сервера):

<?php

$portsListFile = '/home/3proxy/ports.list';
$password = $_GET['password'] ?? '';
$port = $_GET['port'] ?? '';
$ipv6 = $_GET['ipv6'] ?? '';
$ipv4 = '185.220.35.75';  // Укажите ваш IPv4-адрес

if ($password !== '7Xm8VAZewq') {
    die("Ошибка: Неверный пароль");
}

if (!$port || !$ipv6) {
    die("Ошибка: Не указан порт или IPv6-адрес");
}

if (!file_exists($portsListFile)) {
    die("Ошибка: Файл ports.list не найден!");
}

$portsList = file_get_contents($portsListFile);

if (empty($portsList)) {
    die("Ошибка: Файл ports.list пуст!");
}

$pattern = "/proxy -s0 -(6|64) -n -a -p$port -i[0-9.]+ -e[0-9a-f:]+/i";
$replacement = "proxy -s0 -6 -n -a -p$port -i$ipv4 -e$ipv6";

if (preg_match($pattern, $portsList)) {
    $portsList = preg_replace($pattern, $replacement, $portsList);
} else {
    $portsList .= "\n$replacement";
}

if (!empty($portsList)) {
    file_put_contents($portsListFile, $portsList);
    echo "IPv6 $ipv6 успешно назначен для порта $port.";
} else {
    die("Ошибка: Новый файл ports.list пуст! Запись отменена.");
}

?>


Сохраните (Ctrl+X, затем Y и Enter).

3. Настройка прав доступа

Дадим права Apache на этот файл:

chown www-data:www-data /var/www/html/proxy/assign_ip.php
chmod 644 /var/www/html/proxy/assign_ip.php


Теперь дадим Apache права на запись в /home/3proxy/ports.list:

chown www-data:www-data /home/3proxy/ports.list
chmod 666 /home/3proxy/ports.list


4. Настройка Apache (виртуальный хост)

Создадим конфиг для виртуального хоста:

nano /etc/apache2/sites-available/proxy.conf


Добавьте туда:

<VirtualHost *:80>
    ServerAdmin admin@yourdomain.com
    DocumentRoot /var/www/html/proxy
    <Directory /var/www/html/proxy>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
    CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>

Активируем сайт:

a2ensite proxy.conf
systemctl reload apache2


Проверка работы скрипта

Теперь можно проверить работу скрипта.
Пример запроса:

curl "http://localhost/proxy/assign_ip.php?password=7Xm8VAZewq&port=30004&ipv6=2a07:14c0:0:a725::45ed:b844:5633"


Если всё настроено правильно, вы увидите:

IPv6 2a07:14c0:0:a725::45ed:b844:5633 успешно назначен для порта 30004.


Теперь ваш сервер поддерживает автоматическое назначение IPv6-адресов через HTTP-запросы. Это значительно упрощает управление 3proxy и позволяет обновлять IP-адреса без ручного редактирования файлов.
  • +1
  • 12 января 2025, 16:09
  • agaraev

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.