# 🔄 rProxy **Менеджер обратного прокси для роутеров Keenetic / Netcraze** Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера. > [!IMPORTANT] > Проект имеет особую актуальность для владельцев роутеров сторонних производителей с портированной прошивкой KeeneticOS, так как на таких устройствах обычно отсутствует доступ к фирменному облачному сервису KeenDNS. rProxy является полноценной и более гибкой альтернативой. ```text [LAN сервис] ← [Keenetic] ══SSH туннель (autossh)══▶ [VPS:Nginx] → Интернет (HTTPS) ``` ## ⚡ Ключевые возможности - **Автоматизация "под ключ"**: Скрипт самостоятельно настраивает окружение на 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. Подготовка роутера Убедитесь, что на вашем роутере установлен [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Основные зависимости (`autossh`, `openssl-util`) будут проверены и установлены автоматически при первом запуске. Утилита `curl` обычно уже присутствует в системе или в составе Entware. ### 2. Установка системы Выполните команду в консоли роутера: ```bash curl -sSL https://raw.githubusercontent.com/l-ptrol/rProxy/main/install.sh | sh ``` ### 3. Запуск интерфейса ```bash rproxy ``` ## 📋 Основные функции меню 1. **📋 Список сервисов**: Визуальный мониторинг статуса (Online/Offline), доменов и портов. 2. **➕ Добавить сервис**: Интерактивный мастер, который поможет привязать локальный IP:порт к домену или порту на VPS. 3. **📝 Редактировать сервис**: Быстрая смена адресов или настроек без удаления туннеля. Теперь с автоматическим обновлением конфигурации на VPS. 4. **❌ Удалить сервис**: Полная очистка — удаление туннеля локально и соответствующих конфигов Nginx на сервере. 5. **▶️/⏹️ Управление**: Ручной запуск, остановка и перезапуск отдельных туннелей или всех сразу. 6. **🔒 SSL/Certbot**: Выпуск сертификатов для доменных имен в один клик. 7. **⚙️ Настройки VPS**: Управление профилями серверов, настройка SSH-ключей и очистка серверов от "фантомных" конфигураций. 8. **🏥 Проверка (Health)**: Диагностика состояния Nginx и сроков действия SSL-сертификатов на удаленных серверах. ## 🏗 Архитектура каталогов - `/opt/bin/rproxy` — основной исполняемый файл. - `/opt/etc/init.d/S98rproxy` — системный скрипт автозапуска. - `/opt/etc/rproxy/` — директория со всеми конфигурациями. - `services/` — файлы настроек конкретных туннелей. - `vps/` — профили удаленных серверов. - `id_ed25519` — приватный ключ для связи с серверами. ## 🔒 Безопасность и хранение данных - **Ключи вместо паролей**: Пароль от VPS запрашивается только один раз при установке ключа. В системе он не хранится. - **Автономность**: rProxy не требует внешних облачных сервисов и работает напрямую между вашим роутером и вашим VPS. ## 📦 Требования и подготовка 1. **Роутер**: Keenetic / Netcraze (прошивка 3.x и выше) с установленным Entware. 2. **VPS/VDS**: Для работы необходим виртуальный сервер с публичным IP (рекомендуется чистая Ubuntu 22.04+ или Debian 11+). В текущих реалиях такой сервер уже есть у многих, и именно на нем rProxy настроит Nginx для приема трафика. 3. **Доменное имя**: - Для "красивых" адресов и автоматического получения SSL-сертификатов (HTTPS) рекомендуется приобрести доменное имя и направить его на IP вашего VPS. - В качестве альтернативы можно воспользоваться бесплатными DDNS-провайдерами (например, **DuckDNS** и другие), настроив их на IP-адрес вашего сервера. ## 📝 Лицензия Проект распространяется по лицензии MIT.