Скрипт для резолва доменов, и роутинга на основании политик.
Go to file
Sazonov Andrey 6b9ce8c522 fixik
2026-04-02 17:55:27 +03:00
.gitignore поправил, добавил возможность выбора определённой секции 2026-03-20 20:54:44 +03:00
config.ini.example Добавлен режим блокировки через роутинг в blackhole 2026-04-01 17:38:17 +03:00
README.md fixik 2026-04-02 16:54:53 +03:00
redirector.py fixik 2026-04-02 17:55:27 +03:00
requirements.txt поправил версию для совместимости 2026-03-25 16:25:55 +03:00

Redirector

Скрипт для:

  • резолва доменов (с разных DNS)
  • объединения IP / CIDR
  • генерации routing-скрипта для policy routing
  • дополнительно можно использовать секцию [Blackhole] для блокировки нежелательных IP

Установка

git clone https://git.pikusone.ru/pikus/Redirector.git && cd Redirector
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Конфиг

cp config.ini.example config.ini
[Redirector]
exclude_cloudflare =    # Исключить адреса CloudFlare (yes, no)
filename =              # Имя файла в котором списки ip, cidr и доменов
script =                # Имя готового скрипта для применения политик
rollback_script =       # Имя скрипта для отката изменений
threads =               # Количество потоков для dns-резолва (50)
table =                 # Номер таблицы маршрутизации (1010)
priority =              # Приоритет таблицы (ниже цифра - выше приоритет)
gateway =               # IP шлюза на который направлять адреса (10.10.0.1)
interface =             # Интерфейс на который направлять адреса (awg0)
run =                   # Команда которая выполнится после отработки скрипта, например путь до скрипта активации
  • Можно добавить несколько секций конфигураций, например для реализации раздельного туннелирования.

Пример секции [Blackhole]

[Blackhole]
exclude_cloudflare = yes
filename = blackhole_list.txt
script = blackhole_ON.sh
rollback_script = blackhole_OFF.sh
threads = 50
table = 1001
priority = 10
run = /root/Redirector/blackhole_ON.sh
  • Все домены и IP из файла blackhole_list.txt будут недоступны.

Входной файл

Поддерживает:

# комментарий
google.com
1.1.1.1
8.8.8.0/24
example.org

Запуск

  • Обработать все секции в конфиге:
python redirector.py
  • Или определённую секцию:
python redirector.py --env custom