Skip to content

Echzio/KPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keenetic Policy Changer

CLI инструмент для управления политиками доступа на Keenetic роутере через SSH.

Описание

Этот TypeScript CLI инструмент позволяет подключаться к Keenetic роутеру по SSH и управлять политиками доступа для подключенных устройств. Вы можете просматривать список устройств, список доступных политик и переключать устройства между политиками.

Требования

  • Node.js (версия 18 или выше)
  • Keenetic роутер с включенным SSH доступом
  • Учетная запись администратора роутера

Установка

Через npx (рекомендуется)

Не требует установки, запускается напрямую:

npx keenetic-policy-changer --help

Глобальная установка

npm install -g keenetic-policy-changer

После установки команда kpc будет доступна глобально.

Настройка

Создайте файл .env в корне проекта (или в директории, откуда запускаете команду):

cp .env.example .env

Отредактируйте .env и укажите данные для подключения к роутеру:

ROUTER_HOST=192.168.1.1
ROUTER_PORT=22
ROUTER_USERNAME=admin
ROUTER_PASSWORD=your_password

Использование

Глобальная команда

После установки доступна команда kpc:

kpc --help

Доступные команды

1. Просмотр списка устройств

kpc list-devices
# или через npx
npx keenetic-policy-changer list-devices

Показывает все подключенные устройства с их MAC-адресами и IP.

2. Просмотр списка политик

kpc list-policies

Показывает все доступные политики доступа на роутере.

3. Изменение политики устройства

kpc change-policy -m <MAC> -p <POLICY>

Параметры:

  • -m, --mac <mac> - MAC-адрес устройства
  • -p, --policy <policy> - ID политики доступа

4. Сброс политики устройства

kpc reset-policy -m <MAC>

Параметры:

  • -m, --mac <mac> - MAC-адрес устройства

Возвращает устройство в дефолтную политику.

Примеры использования

# Просмотреть все устройства
kpc list-devices

# Просмотреть все политики
kpc list-policies

# Переместить устройство в политику "Policy1"
kpc change-policy -m a2:99:3a:00:51:a7 -p Policy1

# Вернуть устройство в дефолтную политику
kpc reset-policy -m a2:99:3a:00:51:a7

Структура проекта

keenetic-policy-changer/
├── src/
│   ├── index.ts                 # Главный CLI файл
│   ├── ssh-client.ts            # SSH клиент для подключения к роутеру
│   ├── keenetic-manager.ts      # Менеджер для работы с политиками
│   └── types/
│       ├── index.ts             # Экспорт всех типов
│       ├── ssh.types.ts         # Типы для SSH
│       └── keenetic.types.ts    # Типы для Keenetic
├── dist/                        # Скомпилированные файлы (после yarn build)
│   ├── index.js
│   ├── ssh-client.js
│   └── keenetic-manager.js
├── .env                         # Конфигурация (создать вручную)
├── .gitignore
├── tsconfig.json                # Конфигурация TypeScript
├── package.json
└── README.md

Как это работает

  1. CLI подключается к роутеру по SSH используя библиотеку ssh2
  2. Выполняет команды show ip hotspot и show ip policy для получения информации
  3. Парсит вывод команд и представляет данные в удобном виде
  4. Изменяет политики через команды ip hotspot host <mac> policy <policy>
  5. Автоматически сохраняет конфигурацию через system configuration save

Настройка SSH на Keenetic

Для работы скрипта необходимо включить SSH на роутере:

  1. Зайдите в веб-интерфейс роутера
  2. Перейдите в раздел "Управление" → "Общие настройки"
  3. Включите компонент "SSH-сервер"
  4. Настройте порт
  5. Сохраните настройки

Безопасность

  • Храните пароли в безопасном месте
  • Рассмотрите использование SSH-ключей вместо паролей
  • Используйте сильные пароли для доступа к роутеру

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

Ошибка подключения

  • Проверьте, что SSH включен на роутере
  • Убедитесь, что указан правильный IP адрес роутера
  • Проверьте правильность логина и пароля

Команды не работают

  • Убедитесь, что ваш роутер поддерживает команды
  • Проверьте версию прошивки роутера

About

Keenetic Policy Changer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published