# HydraRoute Classic **HydraRoute Classic v.1.0.1-final** — Полностью переписана на Go, без bash-скриптов, с улучшенной синхронизацией iptables, ipset и AdGuard Home. --- ## 📚 Оглавление - [🚀 Возможности](#-возможности) - [📋 Системные требования](#-системные-требования) - [💾 Установка и обновление](#-установка-и-обновление) - [📁 Работа с доменами](#-работа-с-доменами) - [🌐 AdGuard Home](#-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](https://help.keenetic.com/hc/ru/articles/360021214160) - Установите `curl`, если не установлен: ```bash opkg install curl ``` --- ## 💾 Установка и обновление > ⚠️ **Важно:** перед установкой HydraRoute 1.0.1 необходимо полностью удалить предыдущие версии. > > HydraRoute 1.0.1 — мажорное обновление, несовместимое со старыми Classic. 1. Полное удаление старой версии: ```bash curl -Ls "https://ground-zerro.github.io/release/keenetic/hr-uninstall.sh" | sh ``` > Пропустите этот шаг, если устанавливаете на чистый Entware. 2. Добавление репозитория: ```bash curl -Ls "https://ground-zerro.github.io/release/keenetic/install-feed.sh" | sh ``` 3. Установка: ```bash opkg install hydraroute ``` > Запустите HydraRoute командой `hr start` 🔁 Обновление производится стандартной командой: ```bash opkg update && opkg upgrade ``` > Файлы `domain.conf`, `ip.list` и `AdGuardHome.yaml` сохраняются — они входят в conffiles. --- ## 📁 Работа с доменами ### Через Web-интерфейс Откройте WebUI: [http://192.168.1.1:2000](http://192.168.1.1:2000) - Password: `keenetic` > 💡 **Примечание:** домен `hr.net` больше **не используется** и полностью исключён из HydraRoute. - Добавляйте домены, группируйте их, добавляйте описания. - Импортируйте списки с GitHub или по ссылке. - Включайте и отключайте группы без удаления. - Назначайте политику для каждой группы. **Совет:** очистите кэш браузера и DNS после изменения списков. ### Вручную через терминал Редактируйте файл `/opt/etc/AdGuardHome/domain.conf`: ```bash nano /opt/etc/AdGuardHome/domain.conf ``` Пример: ```text 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`: ```text ##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 начинаются с `/`, отключенные с `#/`, комментарии с `##`. Количество отдельных блоков для одной Политики не огранчиено, пример: ```text ##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 - Доступ: [http://192.168.1.1:3000](http://192.168.1.1:3000) - Login: `admin` - Password: `keenetic` **Настройки:** - Включите статистику: Настройки → Основные → включить журнал и статистику. - Для доменов `.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. --- ## 🔄 Управление ```bash hr start # Запуск HydraRoute hr stop # Остановка и очистка iptables hr restart # Перезапуск с восстановлением AGH и политик hr status # Проверка состояния службы ``` --- ## ⚠️ Устранение неполадок Если маршрутизация не работает корректно: ```bash hr restart ``` Эта команда пересоздаcт политики, ipset, iptables, выполнит `dns-override` и перезапустит AdGuard Home. --- ## ❌ Полное удаление ```bash 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](https://boosty.to/ground_zerro) ❤️