Скрипт для резолва доменов, и роутинга на основании политик.
Go to file
Sazonov Andrey b7ccbf7574 fixik
2026-03-25 16:39:28 +03:00
.gitignore поправил, добавил возможность выбора определённой секции 2026-03-20 20:54:44 +03:00
config.ini.example поправил, добавил возможность выбора определённой секции 2026-03-20 20:54:44 +03:00
README.md поправил, добавил возможность выбора определённой секции 2026-03-20 20:54:44 +03:00
redirector.py fixik 2026-03-25 16:39:28 +03:00
requirements.txt поправил версию для совместимости 2026-03-25 16:25:55 +03:00

Redirector

Скрипт для:

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

Установка

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 и доменов (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")
  • Можно добавить несколько секций для нескольких конфигураций

Входной файл

input.txt

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

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

Запуск

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

Результат

Создать и наполнить таблицу маршрутизацию

apply_routing.sh

Добавляет таблицу (если её нет) и маршруты в таблицу.

Очистить и удалить таблицу маршрутизации

rollback_routing.sh

Удаляет:

  • все маршруты
  • правило policy routing

Как использовать

Включить:

./forced_vpn_ON.sh

Выключить:

./forced_vpn_OFF.sh