diff --git a/README.md b/README.md index 52a30e4..5e6f2e3 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,72 @@ -# 🔄 rProxy v1.6.0 +# 🔄 rProxy **Менеджер обратного прокси для роутеров Keenetic** -Публикация локальных сервисов (NAS, умный дом, камеры) в интернет через VPS с Nginx всего за пару кликов. +Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера. ```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 curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh ``` -### 2. Запуск +### 3. Запуск интерфейса ```bash rproxy ``` -## 📋 Использование +## 📋 Основные функции меню -### Настройка VPS (Пункт 9) -Для работы rProxy обязателен доступ к VPS по SSH-ключу. -При добавлении сервера скрипт: -1. Попросит IP, порт и пользователя. -2. Создаст пару ключей Ed25519 (если они еще не созданы). -3. **Один раз** попросит пароль VPS для копирования публичного ключа на сервер. -После этого пароль больше никогда не потребуется и не будет храниться в системе. +1. **📋 Список сервисов**: Визуальный мониторинг статуса (Online/Offline), доменов и портов. +2. **➕ Добавить сервис**: Интерактивный мастер, который поможет привязать локальный IP:порт к домену или порту на VPS. +3. **📝 Редактировать сервис**: Быстрая смена адресов или настроек без удаления туннеля. Теперь с автоматическим обновлением конфигурации на VPS. +4. **❌ Удалить сервис**: Полная очистка — удаление туннеля локально и соответствующих конфигов Nginx на сервере. +5. **▶️/⏹️ Управление**: Ручной запуск, остановка и перезапуск отдельных туннелей или всех сразу. +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) -- **Nginx** — принимает запросы и прокидывает их в туннель. -- **Certbot** — управляет SSL-сертификатами. - -## 🔒 Безопасность -- **SSH-ключи (Ed25519)** — единственный и максимально безопасный способ входа. -- **Никаких паролей**: В файлах конфигурации больше не хранятся пароли от VPS. -- **Защита хешей**: Пароли Basic Auth в `.htpasswd` защищены от раскрытия переменных оболочкой. +- **Ключи вместо паролей**: Пароль от VPS запрашивается только один раз при установке ключа. В системе он не хранится. +- **Автономность**: rProxy не требует внешних облачных сервисов и работает напрямую между вашим роутером и вашим VPS. ## 📦 Требования -- **Keenetic** с прошивкой 3.x+ и Entware. -- **VPS** с публичным IP (рекомендуется чистая Ubuntu/Debian). + +- **Роутер**: Keenetic (прошивка 3.x и выше) с установленным Entware. +- **Сервер**: VPS/VDS с публичным IP (рекомендуется чистая Ubuntu 22.04+ или Debian 11+). ## 📝 Лицензия -MIT + +Проект распространяется по лицензии MIT.