rProxy/README.md

6.1 KiB
Raw Blame History

🔄 rProxy

Менеджер обратного прокси для роутеров Keenetic

Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера.

[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. Пакеты autossh, openssl-util и curl будут проверены и установлены автоматически при первом запуске.

2. Установка системы

Выполните команду в консоли роутера:

curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh

3. Запуск интерфейса

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.