rProxy/README.md

73 lines
6.1 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**
Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера.
```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. Подготовка роутера
Убедитесь, что на вашем 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
```
### 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.
## 📦 Требования
- **Роутер**: Keenetic (прошивка 3.x и выше) с установленным Entware.
- **Сервер**: VPS/VDS с публичным IP (рекомендуется чистая Ubuntu 22.04+ или Debian 11+).
## 📝 Лицензия
Проект распространяется по лицензии MIT.