# Redirector Скрипт для: - резолва доменов (с разных DNS) - объединения IP / CIDR - генерации routing-скрипта для policy routing - дополнительно можно использовать секцию `[Blackhole]` для блокировки нежелательных IP --- ## Установка ```bash git clone https://git.pikusone.ru/pikus/redirector.git && cd redirector ``` ```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ```` --- ## Конфиг ```bash cp config.ini.example config.ini ``` ```ini [redirector] exclude_cloudflare = # Исключить адреса CloudFlare (yes, no) filename = # Имя файла в котором списки ip, cidr и доменов (input.txt) script = # Имя готового скрипта (apply_routing.sh) rollback_script = # Имя скрипта для отката изменений (rollback_routing.sh) threads = # Количество потоков для dns-резолва (50) table = # Номер таблицы маршрутизации (1010) priority = # Приоритет таблицы (ниже цифра - выше приоритет) gateway = # IP шлюза на который направлять адреса (10.10.0.1) interface = # Интерфейс на который направлять адреса (awg0) run = # Shell команда которая выполнится после отработки скрипта (echo "lol kek") ``` - Можно добавить несколько секций для нескольких конфигураций #### Пример секции `[Blackhole]` ```ini [Blackhole] exclude_cloudflare = yes filename = blackhole_list.txt script = blackhole_ON.sh rollback_script = blackhole_OFF.sh threads = 50 table = 1001 priority = 10 run = ``` - Все домены и IP из файла `blackhole_list.txt` будут недоступны. --- ## Входной файл `input.txt` Поддерживает: ``` # комментарий google.com 1.1.1.1 8.8.8.0/24 example.org ``` --- ## Запуск - Обработать все секции в конфиге: ```bash python redirector.py ``` - Или определённую секцию: ```bash python redirector.py --env custom ``` --- ## Результат ### Создать и наполнить таблицу маршрутизацию ``` apply_routing.sh ``` Добавляет таблицу (если её нет) и маршруты в таблицу. ### Очистить и удалить таблицу маршрутизации ``` rollback_routing.sh ``` Удаляет: * все маршруты * правило policy routing --- ## Как использовать ### Включить: ```bash ./forced_vpn_ON.sh ``` ### Выключить: ```bash ./forced_vpn_OFF.sh ```