Jump to content

Question

Posted (edited)

Всем привет!

 

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

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

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

 

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

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

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

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

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

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

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

 

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

 

 

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

Edited by Noksa
  • Upvote 4

6 answers to this question

Recommended Posts

  • 0
Posted

Добрый день!

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

  • 0
Posted (edited)
1 час назад, divemaster сказал:

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

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

Вам нужно в CLI

ip host DOMAIN IP_ADDR
Edited by keenet07
  • 0
Posted (edited)
В 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 и так далее.

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

Edited by Noksa
  • 0
Posted (edited)

Добрый день!

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

 

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

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

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

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

 

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

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

Edited by Noksa
  • Thanks 1
  • 0
Posted

Всем привет.

В связи с ближайшим релизом 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) - чтобы не нужно было вручную их держать и обновлять локально в файлах, при желании.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.