Ground-Zerro / HydraRoute Public
Code Issues Pull requests Actions Releases View on GitHub ↗
Mirror — read-only view
README.md 10.1 KB
README.md

HydraRoute Classic

HydraRoute Classic v.1.0.1-final — Полностью переписана на Go, без bash-скриптов, с улучшенной синхронизацией iptables, ipset и AdGuard Home.


📚 Оглавление


🚀 Возможности

  • Полная автоматизация создания, синхронизации и удаления iptables/ipset.
  • Поддержка IPv4 и IPv6 с fallback и защитой от утечек трафика.
  • Проверка и восстановление AdGuard Home при сбоях.
  • Системный DNS отключается, 53 порт гарантированно освобождается перед запуском.
  • Встроенный web-интерфейс (порт 2000) с авторизацией и сменой пароля.
  • Автоматическая очистка неиспользуемых IP-адресов через 6 часов (кроме CIDR).
  • Загрузка доменных списков с GitHub или по прямому URL.
  • Поддержка CIDR-блоков IPv4 и IPv6 диапазонов.
  • Совместимость с WARP, Xray, Sing-Box.

📋 Системные требования

  • Роутер Keenetic с установленным Entware
  • Установите curl, если не установлен:
    opkg install curl
    

💾 Установка и обновление

⚠️ Важно: перед установкой HydraRoute 1.0.1 необходимо полностью удалить предыдущие версии.

HydraRoute 1.0.1 — мажорное обновление, несовместимое со старыми Classic.

  1. Полное удаление старой версии:

    curl -Ls "https://ground-zerro.github.io/release/keenetic/hr-uninstall.sh" | sh
    

    Пропустите этот шаг, если устанавливаете на чистый Entware.

  2. Добавление репозитория:

    curl -Ls "https://ground-zerro.github.io/release/keenetic/install-feed.sh" | sh
    
  3. Установка:

    opkg install hydraroute
    

    Запустите HydraRoute командой hr start

🔁 Обновление производится стандартной командой:

opkg update && opkg upgrade

Файлы domain.conf, ip.list и AdGuardHome.yaml сохраняются — они входят в conffiles.


📁 Работа с доменами

Через Web-интерфейс

Откройте WebUI: http://192.168.1.1:2000

  • Password: keenetic

💡 Примечание: домен hr.net больше не используется и полностью исключён из HydraRoute.

  • Добавляйте домены, группируйте их, добавляйте описания.
  • Импортируйте списки с GitHub или по ссылке.
  • Включайте и отключайте группы без удаления.
  • Назначайте политику для каждой группы.

Совет: очистите кэш браузера и DNS после изменения списков.

Вручную через терминал

Редактируйте файл /opt/etc/AdGuardHome/domain.conf:

nano /opt/etc/AdGuardHome/domain.conf

Пример:

youtube.com,googlevideo.com/HydraRoute1st,HydraRoute1stv6
openai.com,chatgpt.com/HydraRoute2nd,HydraRoute2ndv6
2ip.ru,2ip.io/HydraRoute3rd,HydraRoute3rdv6

⚠️ ИмяПолитикиv6 обязательно, если не хотите чтобы IPv6 трафик ходил через провайдера.

CIDR диапазоны редактируются в /opt/etc/AdGuardHome/ip.list:

##IP для HydraRoute1st
/HydraRoute1st
10.203.14.12/28
fd52:acbd:1234:7::10/64

##IP для HydraRoute2nd
/HydraRoute2nd
172.22.48.77/26
fd94:bbcc:8899:5::22/64

##IP для HydraRoute3rd
#/HydraRoute3rd
192.168.143.19/28
fd00:abcd:ef01:2::33/64

Группы отделяются пустыми строками и/или комментарием.
Включенные группы CIDR начинаются с /, отключенные с #/, комментарии с ##.

Количество отдельных блоков для одной Политики не огранчиено, пример:

##Google
/HydraRoute1st
10.203.14.12/28

##Youtube
#/HydraRoute1st <- отключенный блок
172.22.48.77/26
173.23.49.78/26

##Discord
/HydraRoute1st
192.168.143.19/28

Здесь ИмяПолитикиv6 для IPv6 указывать не нужно, будет создан автоматически.

Примечание: 💡 Для Политик v6 необходим, для CIDR нет - особенности работы AdGuardHome.


🌐 AdGuard Home

Настройки:

  • Включите статистику: Настройки → Основные → включить журнал и статистику.
  • Для доменов .local используйте переписи DNS-запросов.
  • Разблокировка сайтов выполняется через фильтры → пользовательские правила.

Статистика может ускорить износ USB или NAND-носителя. Включайте при необходимости.

При старте HydraRoute выполняется перезапуск AGH и отключение системного DNS (dns-override).


🔧 Политики доступа

  • Создаются автоматически при запуске HR или по hr restart.
  • Если политика удалена и в ней есть домены — она пересоздаётся.
  • Пустая политика в которой нет доменов не добавляется.
  • Не требуется добавлять устройства в политику HR.
  • При остановке HR (hr stop) трафик идёт напрямую без туннелей.

Приоритет маршрутизации задаётся в интерфейсе Keenetic: Приоритеты подключений → Политики доступа.
Если туннель недоступен — трафик доменов блокируется.


⚙️ Технические детали

Файлы конфигурации:

  • /opt/etc/AdGuardHome/domain.conf — список доменов и политик.
  • /opt/etc/AdGuardHome/ip.list — CIDR диапазоны IP.
  • /opt/etc/AdGuardHome/hrlogin.scrt — пароль доступа к WebUI.

Основные процессы:

При запуске (hr start|hr restart)

  • создание политик доступа
  • инициализация и очистка IPv4 и IPv6 ipset
  • добавление правил iptables
  • выполнение dns-override
  • перезапуск AdGuardHome

При остановке (hr stop)

  • удаление правил маршрутизации из iptables
  • очистка IPv4 и IPv6 ipset

Иное:

  • Таймаут ipset: 6 часов.

IP-адрес не обновлявшийся в ipset более 6 часов удаляется.

WebUI:

  • Работает на IP роутера, порт 2000.
  • Авторизация через cookie authenticated=1 (7 дней).
  • Смена пароля доступна через WebUI.

🔄 Управление

hr start     # Запуск HydraRoute
hr stop      # Остановка и очистка iptables
hr restart   # Перезапуск с восстановлением AGH и политик
hr status    # Проверка состояния службы

⚠️ Устранение неполадок

Если маршрутизация не работает корректно:

hr restart

Эта команда пересоздаcт политики, ipset, iptables, выполнит dns-override и перезапустит AdGuard Home.


❌ Полное удаление

curl -Ls "https://ground-zerro.github.io/release/keenetic/hr-uninstall.sh" | sh

Удаляет все iptables/ipset, политики, зависимости, службы, файлы HydraRoute и AdGuardHome, включает системный DNS (no dns-override).


ℹ️ Примечания и лицензия

HydraRoute распространяется бесплатно, «как есть». Автор не несёт ответственности за последствия использования.
Classic-ветка заморожена, поддержка ведётся только в рамках BugFix.

Сказать "Спасибо" можно на Boosty ❤️