Утилита командной строки для управления статическими маршрутами на роутерах Keenetic через NDMS RCI API.
- 📤 Загрузка маршрутов из YAML файла на роутер
- 🔎 Разрешение доменов в IPv4 и обновление hosts
- 💾 Резервное копирование текущих маршрутов в YAML файл
- 🗑️ Очистка всех статических маршрутов
go install github.com/vladpi/keenetic-routes@latestgit clone https://github.com/vladpi/keenetic-routes.git
cd keenetic-routes
make installУтилита поддерживает несколько способов настройки подключения к роутеру (в порядке приоритета):
- Флаги командной строки (высший приоритет)
- Конфигурационный файл
~/.config/keenetic-routes/config.yaml - Переменные окружения
- Файл
.envв текущей директории
Значения объединяются по полям: если указан флаг, он заменяет только соответствующее поле, остальные берутся из источников ниже по приоритету.
keenetic-routes --host 192.168.100.1:280 --user admin --password your_password upload -f routes.yamlСоздайте файл ~/.config/keenetic-routes/config.yaml:
host: 192.168.100.1:280
user: admin
password: your_passwordexport KEENETIC_HOST=192.168.100.1:280
export KEENETIC_USER=admin
export KEENETIC_PASSWORD=your_passwordСоздайте файл .env в текущей директории:
KEENETIC_HOST=192.168.100.1:280
KEENETIC_USER=admin
KEENETIC_PASSWORD=your_passwordИспользуйте команду config для создания конфигурационного файла:
keenetic-routes config initПароль вводится без отображения символов в терминале.
keenetic-routes upload -f routes.yamlkeenetic-routes resolve-domains -f routes.yamlkeenetic-routes backup -o backup.yamlkeenetic-routes clearФайл маршрутов должен быть в формате YAML:
routes:
- comment: "Описание группы маршрутов"
gateway: "192.168.1.1" # или interface: "ppp0"
auto: true
reject: false
domains:
- example.com
- google.com
hosts:
- 8.8.8.8
- 8.8.4.4
- 192.168.0.0/16
- comment: "Другая группа"
interface: "Wireguard1"
auto: true
hosts:
- 142.250.0.0/15
- 172.217.0.0/16Параметры группы маршрутов:
comment(опционально) - комментарий для группы маршрутовgatewayилиinterface(обязательно одно из двух) - шлюз или интерфейс для маршрутовauto(опционально, по умолчаниюfalse) - автоматическое добавление маршрутаreject(опционально, по умолчаниюfalse) - отклонение пакетовdomains(опционально) - список доменных имён для резолва в IPv4 (командаresolve-domains)hosts(обязательно) - список IPv4/IPv6 адресов или CIDR подсетей
routes:
- comment: YouTube
interface: Wireguard1
auto: true
hosts:
- 74.125.0.0/16
- 173.194.0.0/16
- 172.217.0.0/16keenetic-routes upload -f youtube-routes.yamlkeenetic-routes backup -o routes-backup-$(date +%Y%m%d).yaml- Go 1.25 или выше
- Роутер Keenetic с включенным NDMS RCI API (обычно доступен на порту 280)
- Поддерживаются IPv4/IPv6 адреса и подсети; команда
resolve-domainsдобавляет только IPv4 адреса