Files
keenetic_ssh-web/README.md
2026-04-26 15:33:31 +03:00

161 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# keenetic_ssh-web
Веб‑панель, которая **выполняет команды прямо на роутере Keenetic** (Entware) и показывает вывод. Подходит для `opkg update`, перезапусков сервисов, диагностики, и т. п.
- **Порт панели:** `2001`
- **Где работает:** на самом роутере (Entware)
- **Вход:** логин/пароль **от веб‑админки Keenetic** (NDM `/auth`)
(есть запасной «мастер‑пароль» `WEB_PASSWORD`, если нужно)
- **Опционально:** модуль `tunnel/`**WireGuardтуннель VPS ↔ роутер**, чтобы открыть доступ к панели и SSH, даже если у роутера **серый IP** (без проброса портов).
![Интерфейс](docs/ui.png)
---
## Быстрый старт (минимум команд)
### Вариант 1. Панель нужна только дома (LAN)
На роутере (в Entware shell по SSH):
```sh
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) — поставить сервер туннеля
```sh
curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-vps.sh | sudo bash
```
#### 2.2. На VPS — добавить ваш роутер (peer)
```sh
sudo kssh-tun add my-router
```
Команда выведет **готовый блок** (несколько строк `export ...` + `curl ... | sh`) — просто скопируйте его.
#### 2.3. На роутере — поставить панель + клиент туннеля
Вставьте **тот самый блок** на роутере (в Entware shell). Он поднимет `wg0`, а затем установит панель на `2001`.
Проверка с VPS:
```sh
curl http://10.99.0.X:2001
ssh root@10.99.0.X
```
Дальше уже красиво делается через HTTPS reverseproxy на VPS (Caddy/Nginx):
- `router.example.com``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`**.
---
## Удаление (одной командой)
Панель (на роутере):
```sh
curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/uninstall.sh | sh
```
Туннель‑клиент (на роутере, если ставили):
```sh
curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/tunnel/tunnel-uninstall.sh | sh
```
Туннель‑сервер (на VPS, если ставили):
```sh
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](LICENSE).