rProxy/README.md

82 lines
7.7 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.

# 🔄 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 (режим `certonly`).
- **Безопасность**:
- Авторизация на VPS только по современным SSH-ключам (Ed25519).
- Встроенная поддержка Basic Auth для защиты ваших сервисов.
- Использование RCI (`ndmq`) для получения локального IP роутера.
- **Гибкая публикация и мульти-пути**:
- Поддержка кастомных портов (`domain.com:8443`) и подпутей (`domain.com/nas`).
- Консолидация нескольких сервисов на одном домене (один блок `server` на VPS).
- **Продвинутое проксирование**: Правильное проксирование заголовков (`X-Forwarded-Host`), поддержка WebSocket и автоматическая обработка редиректов (`proxy_redirect`).
- **Автозапуск (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.