Этот скрипт предназначен для автоматического добавления статических маршрутов на роутер Keenetic. Он загружает список CIDR-блоков из указанного URL, объединяет их с предопределенным списком пользовательских CIDR-блоков и добавляет их в таблицу маршрутизации роутера через SSH-соединение. ## Требования - Python 3.x ## Установка Убедитесь, что у вас установлен Python 3.x. Если нет, скачайте и установите его с официального сайта Python. Установите необходимые библиотеки с помощью pip: ```bash pip install -r requirements.txt ``` Скачайте скрипт и сохраните его в файл, например update_routes.py. ## Переменные окружения Перед запуском скрипта убедитесь, что установлены следующие переменные окружения: - KEENETIC_USERNAME: Имя пользователя для роутера Keenetic (по умолчанию: admin) - KEENETIC_PASSWORD: Пароль для роутера Keenetic (обязательно) - KEENETIC_HOST: IP-адрес роутера Keenetic (по умолчанию: 192.168.0.1) - KEENETIC_PORT: SSH-порт роутера Keenetic (по умолчанию: 22) - KEENETIC_INTERFACE: Интерфейс, через который отправлять трафик (по умолчанию: Wireguard0) ## Пользовательский список CIDR Скрипт включает предопределенный список CIDR-блоков для YouTube. Вы можете изменить этот список в переменной CUSTOM_CIDR_LIST. ## Использование Чтобы запустить скрипт, выполните следующую команду в терминале: ```bash python3 update_routes.py ``` ## Логика работы - Скрипт загружает список CIDR-блоков из указанного URL. - Объединяет загруженный список с пользовательским списком CIDR-блоков. - Преобразует CIDR-нотацию в IP-адреса и маски подсети. - Устанавливает SSH-соединение с роутером Keenetic. - Для каждого маршрута: - Удаляет существующий маршрут (если есть). - Добавляет новый маршрут. - В случае ошибки "Channel closed" повторяет попытку выполнения команды до 3 раз. ## Обработка ошибок Скрипт включает обработку ошибок для следующих ситуаций: - Ошибки при загрузке CIDR-списка - Ошибки при подключении к роутеру - Ошибки при выполнении SSH-команд - Повторные попытки при ошибке "Channel closed" ## Примечание Убедитесь, что у вас есть необходимые права доступа к роутеру Keenetic для выполнения команд по SSH. Также проверьте, что указанный интерфейс KEENTIC_INTERFACE существует на вашем роутере.