128 lines
3.0 KiB
Markdown
128 lines
3.0 KiB
Markdown
# 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
|
||
```
|