Перейти к содержанию

Вопрос

Опубликовано (изменено)

Всем привет!

 

Давненько написал утилиту для своих собственных нужд, которая работает по REST API с Keenetic роутерами. Т.е. с любым роутером из коробки, т.к. это всё сразу работает как только вы настроили WiFi сеть.

Утилита умеет работать как с локальными роутерами (через внутренний IP адрес и http протокол), так и с роутерами в интернете через KeenDNS и https протокол.

Репозиторий: https://github.com/Noksa/gokeenapi

 

Основные вещи, которые умеет делать утилита:

* Добавление маршрутов к конкретному интерфейсу через список локальных BAT-файлов

* Добавление маршрутов к конкретному интерфейсу через список BAT-ссылок - т.е. утилита скачивает BAT-файлы по указанным ссылкам и после загружает их в Keenetic автоматически

* Удаление маршрутов только у конкретного интерфейса (а не всех сразу)

* Добавление AWG соединения, добавление ASC параметров из conf файла, подъем интерфейса и ожидание его готовности к работе

* Добавление и удаление статичных DNS записей

Всё это очень удобно особенно если у вас много кинетиков, а настроить их хочется одинаково и быстро по нажатию одной кнопки :)

 

Учитывая, что это CLI утилита, можно настроить cronjob или какую угодно автоматизацию вокруг неё и например обновлять маршруты во всех своих кинетиках в разных уголках планеты в автоматическом режиме.

 

 

Если кому-то тоже пригодится, буду рад :)

Изменено пользователем Noksa

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)
1 час назад, divemaster сказал:

"Добавление и удаление статичных DNS записей" - это "Маршруты DNS" в новой версии ОС или нет?

Нет, это маршрутизация по доменам.

Вам нужно в CLI

ip host DOMAIN IP_ADDR
Изменено пользователем keenet07
  • 0
Опубликовано (изменено)
В 30.10.2025 в 08:37, divemaster сказал:

Добрый день!

"Добавление и удаление статичных DNS записей" - это "Маршруты DNS" в новой версии ОС или нет?

Добрый день!
В целом, выше уже ответили, но немного расширю.

Удаление и добавление статичных DNS записей в gokeenapi это именно сами DNS записи.

Я сомневаюсь, что это очень полезная фича для многих людей, но сделать её было нетрудно и поэтому она появилась.

 

Основная её цель, это дать возможность добавления одной и той же записи вроде такой local.keenetic но чтобы она вела в разные IP адреса, в зависимости от того, к какой Wi-Fi Вы подключены.

 

Простой пример: Есть 5 роутеров, которые раскиданы по разным квартирам, дачам. У всех у них разные подсети без пересечений (чтобы можно было установить VPN между роутерами и попадать в локальные сети друг друга).

В то же время есть утилиты типа iplist которые позволяют автоматически резолвить нужные домены в IP адреса и так же автоматически подготавливать bat файлы для загрузки в роутер напрямую через ссылку.


Так вот, если эта утилита (iplist) работает на локальном ноутбуке и вы перемещаетесь между квартирами-дачами-кинетиками, не хочется постоянно менять её конфигурацию (прописанный айпи роутера как днс сервер через который надо всё резолвить). Вместо этого хочется занести в конфигурацию утилиты просто dns запись которая всегда ведёт в роутер.

В итоге, если вы подключены к Wi-Fi дома, то запись local.keenetic ведёт в 192.168.1.1.

Если подключены на даче, то в 192.168.2.1 и так далее.

В итоге всё работает одинаково без нужды править конфигурацию других утилит, которым нужен адрес роутера.

Изменено пользователем Noksa
  • 0
Опубликовано (изменено)

Добрый день!

В последней версии был добавлен встроенный планировщик, чтобы не было нужды оборачивать запуск утилиты через такие вещи как ansible/crontab/что-либо ещё если необходимо запускать команды для нескольких роутеров.

 

Простой случай:

Есть 6 кинетиков в разных местах.

На всех них хочется поддерживать одну и ту же маршрутизацию.

Для этого надо либо обернуть всё скриптом, кроном или ещё как чтобы утилита запускалась для каждого роутера отдельно, а в случае если хочется выполнить chain из нескольких команд - ещё и несколько раз для конкретного роутера.

 

Со встроенным планировщиком эта проблема решается - он позволяет запускать задачи по интервалам, в заданное время, а так же делать chain из команд.

Подробная инструкция на русском тут: https://github.com/Noksa/gokeenapi/blob/main/SCHEDULER_RU.md

Изменено пользователем Noksa
  • 0
Опубликовано

Всем привет.

В связи с ближайшим релизом 5.x версии добавил поддержку добавления\удаления маршрутизации через DNS домены.

Релиз: https://github.com/Noksa/gokeenapi/releases/tag/v1.6.0

Краткий пример конфига:

dns:
  routes:
    groups:
      - name: social-media
        domain-file:
          - domains/social-media.txt
        interfaceId: Wireguard0
      
      - name: streaming
        domain-url:
          - https://example.com/streaming-domains.txt
        interfaceId: ISP

Запускаем команды:

# Добавляем
gokeenapi adddnsrouting --config <config>.yaml
  
# Удаляем
gokeenapi deletednsrouting --config <config>.yaml

 

После добавления всё автоматически включится и начнёт работать сразу же.

 

Есть возможность подгружать домены через ссылки (поле domain-url) - чтобы не нужно было вручную их держать и обновлять локально в файлах, при желании.

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.