82 lines
7.7 KiB
Markdown
82 lines
7.7 KiB
Markdown
# 🔄 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.
|