Обновление README.md: расширено описание функций и архитектуры

This commit is contained in:
Petro1990 2026-03-13 23:54:51 +03:00
parent 9da425f8c0
commit 671f60343c
1 changed files with 45 additions and 47 deletions

View File

@ -1,74 +1,72 @@
# 🔄 rProxy v1.6.0 # 🔄 rProxy
**Менеджер обратного прокси для роутеров Keenetic** **Менеджер обратного прокси для роутеров Keenetic**
Публикация локальных сервисов (NAS, умный дом, камеры) в интернет через VPS с Nginx всего за пару кликов. Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера.
```text ```text
[LAN сервис] ← [Keenetic] ══SSH туннель══▶ [VPS:Nginx] → Интернет [LAN сервис] ← [Keenetic] ══SSH туннель (autossh)══▶ [VPS:Nginx] → Интернет (HTTPS)
``` ```
## ⚡ Особенности ## ⚡ Ключевые возможности
- **Авто-авиатор**: Скрипт сам настраивает VPS, ставит Nginx и Certbot.
- **Безопасность**: Используется только авторизация по SSH-ключам (Ed25519).
- **Бесшовная авторизация**: Использует `ndmq` для доступа к роутеру (пароль роутера не нужен!).
- **Умный Basic Auth**: Защита сервисов паролем с сохранением настроек по умолчанию.
- **SSL "из коробки"**: Автоматическое получение и продление HTTPS сертификатов (Let's Encrypt).
- **Стелс-режим**: Проксирование Cookies и правильных заголовков для работы сложных веб-интерфейсов.
- **Автозапуск**: Интеграция с системой инициализации роутера (`S98rproxy`).
## 🚀 Быстрый старт - **Автоматизация "под ключ"**: Скрипт самостоятельно настраивает окружение на VPS, устанавливает Nginx, Certbot и необходимые системные утилиты.
- **Высокая отказоустойчивость**: Использование `autossh` гарантирует переподключение туннелей при обрывах связи или перезагрузке серверов.
- **Поддержка нескольких серверов (Multi-VPS)**: Вы можете распределять свои сервисы между разными VPS (например, Netherlands, Germany, Russia) и управлять ими из одного интерфейса.
- **SSL "из коробки"**: Автоматическое получение и продление HTTPS сертификатов (Let's Encrypt) через Certbot.
- **Безопасность**:
- Авторизация на VPS только по современным SSH-ключам (Ed25519).
- Встроенная поддержка Basic Auth для защиты ваших сервисов дополнительным паролем на стороне Nginx.
- Использование RCI (`ndmq`) для получения локального IP роутера без хранения пароля администратора.
- **Продвинутое проксирование**: Правильная передача заголовков (`X-Real-IP`, `X-Forwarded-For`), поддержка WebSocket (Upgrade) и корректная обработка Cookies.
- **Автозапуск (Init Script)**: Интеграция с системой `S98rproxy` для автоматического поднятия туннелей при включении роутера с интеллектуальными повторами при сбоях.
### 1. Установка (на роутере Keenetic) ## 🚀 Установка и запуск
> Требуется [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Пакеты `autossh`, `openssl-util` и `curl` установятся автоматически при первом запуске.
### 1. Подготовка роутера
Убедитесь, что на вашем Keenetic установлен [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Пакеты `autossh`, `openssl-util` и `curl` будут проверены и установлены автоматически при первом запуске.
### 2. Установка системы
Выполните команду в консоли роутера:
```bash ```bash
curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh
``` ```
### 2. Запуск ### 3. Запуск интерфейса
```bash ```bash
rproxy rproxy
``` ```
## 📋 Использование ## 📋 Основные функции меню
### Настройка VPS (Пункт 9) 1. **📋 Список сервисов**: Визуальный мониторинг статуса (Online/Offline), доменов и портов.
Для работы rProxy обязателен доступ к VPS по SSH-ключу. 2. ** Добавить сервис**: Интерактивный мастер, который поможет привязать локальный IP:порт к домену или порту на VPS.
При добавлении сервера скрипт: 3. **📝 Редактировать сервис**: Быстрая смена адресов или настроек без удаления туннеля. Теперь с автоматическим обновлением конфигурации на VPS.
1. Попросит IP, порт и пользователя. 4. **❌ Удалить сервис**: Полная очистка — удаление туннеля локально и соответствующих конфигов Nginx на сервере.
2. Создаст пару ключей Ed25519 (если они еще не созданы). 5. **▶️/⏹️ Управление**: Ручной запуск, остановка и перезапуск отдельных туннелей или всех сразу.
3. **Один раз** попросит пароль VPS для копирования публичного ключа на сервер. 6. **🔒 SSL/Certbot**: Выпуск сертификатов для доменных имен в один клик.
После этого пароль больше никогда не потребуется и не будет храниться в системе. 7. **⚙️ Настройки VPS**: Управление профилями серверов, настройка SSH-ключей и очистка серверов от "фантомных" конфигураций.
8. **🏥 Проверка (Health)**: Диагностика состояния Nginx и сроков действия SSL-сертификатов на удаленных серверах.
### Основное меню ## 🏗 Архитектура каталогов
1. **📋 Список сервисов**: Статус, внешние ссылки и порты всех туннелей.
2. ** Добавить сервис**: Пошаговый мастер публикации нового локального ресурса.
3. **📝 Редактировать сервис**: Изменение SSL, портов и Auth без пересоздания.
4. **❌ Удалить сервис**: Удаление туннеля и его конфигурации с VPS.
...
10. **🚀 Обновить rProxy**: Загрузка последней версии скрипта.
11. **🏥 Проверка VPS**: Диагностика состояния Nginx и SSH на сервере.
## 🏗 Архитектура - `/opt/bin/rproxy` — основной исполняемый файл.
- `/opt/etc/init.d/S98rproxy` — системный скрипт автозапуска.
- `/opt/etc/rproxy/` — директория со всеми конфигурациями.
- `services/` — файлы настроек конкретных туннелей.
- `vps/` — профили удаленных серверов.
- `id_ed25519` — приватный ключ для связи с серверами.
### На роутере (Keenetic + Entware) ## 🔒 Безопасность и хранение данных
- **autossh** — поддерживает устойчивые SSH-туннели через ключи.
- **Иннициализация**: `/opt/etc/init.d/S98rproxy` для автозапуска.
- **Конфиги**: `/opt/etc/rproxy/`.
### На VPS (Debian/Ubuntu/CentOS) - **Ключи вместо паролей**: Пароль от VPS запрашивается только один раз при установке ключа. В системе он не хранится.
- **Nginx** — принимает запросы и прокидывает их в туннель. - **Автономность**: rProxy не требует внешних облачных сервисов и работает напрямую между вашим роутером и вашим VPS.
- **Certbot** — управляет SSL-сертификатами.
## 🔒 Безопасность
- **SSH-ключи (Ed25519)** — единственный и максимально безопасный способ входа.
- **Никаких паролей**: В файлах конфигурации больше не хранятся пароли от VPS.
- **Защита хешей**: Пароли Basic Auth в `.htpasswd` защищены от раскрытия переменных оболочкой.
## 📦 Требования ## 📦 Требования
- **Keenetic** с прошивкой 3.x+ и Entware.
- **VPS** с публичным IP (рекомендуется чистая Ubuntu/Debian). - **Роутер**: Keenetic (прошивка 3.x и выше) с установленным Entware.
- **Сервер**: VPS/VDS с публичным IP (рекомендуется чистая Ubuntu 22.04+ или Debian 11+).
## 📝 Лицензия ## 📝 Лицензия
MIT
Проект распространяется по лицензии MIT.