Files
keenetic_ssh-web/README.md
Андрей Бобырев 7dbd2b43d0 docs: серый IP — 2 команды + Caddy/Nginx пример
Made-with: Cursor
2026-04-26 15:36:40 +03:00

6.3 KiB
Raw Blame History

keenetic_ssh-web

Веб‑панель, которая выполняет команды прямо на роутере Keenetic (Entware) и показывает вывод. Подходит для opkg update, перезапусков сервисов, диагностики, и т. п.

  • Порт панели: 2001
  • Где работает: на самом роутере (Entware)
  • Вход: логин/пароль от веб‑админки Keenetic (NDM /auth)
    (есть запасной «мастер‑пароль» WEB_PASSWORD, если нужно)
  • Опционально: модуль tunnel/WireGuardтуннель VPS ↔ роутер, чтобы открыть доступ к панели и SSH, даже если у роутера серый IP (без проброса портов).

Интерфейс


Быстрый старт (минимум команд)

Вариант 1. Панель нужна только дома (LAN)

На роутере (в Entware shell по SSH):

curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-router.sh | sh

Откройте в браузере:

  • http://IP_РОУТЕРА:2001

Вход — как в веб‑админку Keenetic.


Вариант 2. Серый IP, нужен доступ из любой точки (через VPS)

2 команды “с нуля” (самый простой путь)

Команда 1 — на VPS (Ubuntu): поставить туннель и сразу добавить роутер (peer).

curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-vps.sh | sudo bash -s -- add my-router

Она выведет готовый блок (несколько строк export ... + curl ... | sh).

Команда 2 — на роутере (Entware shell): вставьте выданный блок как есть.

Он поднимет wg0, а затем установит панель на 2001.

Проверка с VPS:

curl http://10.99.0.X:2001
ssh root@10.99.0.X

Дальше уже красиво делается через HTTPS reverseproxy на VPS.

Caddy (3 строки):

router.example.com {
  reverse_proxy 10.99.0.X:2001
}

Nginx (минимальный server block):

server {
  server_name router.example.com;
  location / { proxy_pass http://10.99.0.X:2001; }
}

Рекомендация: в .env панели выставить ALLOWED_IPS=10.99.0.1, чтобы к роутеру мог обращаться только VPS.


Вариант 3. Белый IP — без туннеля

Ставьте как в варианте 1 (LAN), а доступ снаружи делайте как вам удобно: проброс порта/файрвол/домен.
Важно: не открывайте 2001 в интернет без ограничений (см. безопасность ниже).


Как пользоваться панелью (по‑человечески)

1) Добавьте команду

  • Название — как вам удобно (например: opkg update)
  • Команда — обычная shellкоманда (например: opkg update)
  • Примечание — необязательно

2) Запуск

  • Выполнить — запускает одну команду и показывает результат
  • Выполнить все команды — запускает все строки с галочкой «ВКЛ»

3) Расписание

  • Поставьте интервал (в минутах) и нажмите Сохранить
  • У нужных строк включите «Распис.»

По расписанию выполняются только строки: ВКЛ + Распис.

4) Просмотр вывода

Кнопка «Вывод» раскрывает полный лог последнего запуска (stdout + stderr).


Примеры полезных команд (можно копировать)

  • Обновить пакеты: opkg update && opkg list-upgradable | head
  • Обновить всё: opkg update && opkg upgrade
  • Проверить место: df -h
  • Процессы: top -b -n 1 | head -60
  • WireGuard: wg show
  • Логи: logread | tail -200

Безопасность (важно)

Это не песочница: команда выполняется с правами процесса (на Entware часто root).

  • Не публикуйте порт 2001 в интернет «как есть».
  • Используйте минимум: туннель + reverseproxy или ALLOWED_IPS.

Удаление (одной командой)

Панель (на роутере):

curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/uninstall.sh | sh

Туннель‑клиент (на роутере, если ставили):

curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/tunnel/tunnel-uninstall.sh | sh

Туннель‑сервер (на VPS, если ставили):

curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/tunnel/server-uninstall.sh | sudo sh

Туннель как отдельный сервис (по желанию)

Туннель — это дополнительный сервис для всей вашей экосистемы (keeneticunified, domen_hydra и т. д.). Он просто делает так, что VPS «видит» роутер по адресу 10.99.0.X.

Полная документация (для тех, кому нужно больше деталей): tunnel/README.md.


Поддержка проекта

  • Boosty: https://boosty.to/andrey27/donate
  • Ozon Bank (СБП): https://finance.ozon.ru/apps/sbp/ozonbankpay/019dc200-2a5d-7931-a619-782d285f6798
  • Telegram: https://t.me/Iot_andrey

Кнопка Sponsor на GitHub ведёт на варианты из .github/FUNDING.yml.

Лицензия

MIT — см. LICENSE.