CLI инструмент для управления политиками доступа на Keenetic роутере через SSH.
Этот TypeScript CLI инструмент позволяет подключаться к Keenetic роутеру по SSH и управлять политиками доступа для подключенных устройств. Вы можете просматривать список устройств, список доступных политик и переключать устройства между политиками.
- Node.js (версия 18 или выше)
- Keenetic роутер с включенным SSH доступом
- Учетная запись администратора роутера
Не требует установки, запускается напрямую:
npx keenetic-policy-changer --helpnpm 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 --helpkpc list-devices
# или через npx
npx keenetic-policy-changer list-devicesПоказывает все подключенные устройства с их MAC-адресами и IP.
kpc list-policiesПоказывает все доступные политики доступа на роутере.
kpc change-policy -m <MAC> -p <POLICY>Параметры:
-m, --mac <mac>- MAC-адрес устройства-p, --policy <policy>- ID политики доступа
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:a7keenetic-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
- CLI подключается к роутеру по SSH используя библиотеку
ssh2 - Выполняет команды
show ip hotspotиshow ip policyдля получения информации - Парсит вывод команд и представляет данные в удобном виде
- Изменяет политики через команды
ip hotspot host <mac> policy <policy> - Автоматически сохраняет конфигурацию через
system configuration save
Для работы скрипта необходимо включить SSH на роутере:
- Зайдите в веб-интерфейс роутера
- Перейдите в раздел "Управление" → "Общие настройки"
- Включите компонент "SSH-сервер"
- Настройте порт
- Сохраните настройки
- Храните пароли в безопасном месте
- Рассмотрите использование SSH-ключей вместо паролей
- Используйте сильные пароли для доступа к роутеру
- Проверьте, что SSH включен на роутере
- Убедитесь, что указан правильный IP адрес роутера
- Проверьте правильность логина и пароля
- Убедитесь, что ваш роутер поддерживает команды
- Проверьте версию прошивки роутера