From baf5dc1ed716e33370d7f3f072e84ce65f9c2f6d Mon Sep 17 00:00:00 2001 From: Petro1990 Date: Fri, 13 Mar 2026 22:29:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D1=80=D0=BE=D0=B1=D0=BD=D0=BE=D0=B3=D0=BE=20README=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D0=B4=D0=BE=201.5.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 79 ++++++++++++++++++++++++++++++++++--------------------- rproxy | 2 +- 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 82cdd3c..3b6fc5f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# 🔄 rProxy v1.5.2 +# 🔄 rProxy v1.5.3 **Менеджер обратного прокси для роутеров Keenetic** Публикация локальных сервисов (NAS, умный дом, камеры) в интернет через VPS с Nginx всего за пару кликов. -``` -[LAN сервис] ← [Keenetic] ══SSH туннель══▶ [VPS:nginx] → Интернет +```text +[LAN сервис] ← [Keenetic] ══SSH туннель══▶ [VPS:Nginx] → Интернет ``` ## ⚡ Особенности @@ -14,52 +14,71 @@ - **Умный Basic Auth**: Защита сервисов паролем с сохранением настроек по умолчанию. - **SSL "из коробки"**: Автоматическое получение и продление HTTPS сертификатов (Let's Encrypt). - **Стелс-режим**: Проксирование Cookies и правильных заголовков для работы сложных веб-интерфейсов. -- **Автозапуск**: Интеграция с системой инициализации роутера. +- **Автозапуск**: Интеграция с системой инициализации роутера (`S98rproxy`). -## 🚀 Установка +## 🚀 Быстрый старт -> Требуется [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Пакеты `autossh`, `openssl-util` и другие установятся автоматически. +### 1. Установка (на роутере Keenetic) +> Требуется [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Пакеты `autossh`, `openssl-util` и другие установятся автоматически при первом запуске. ```bash curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh ``` -### Запуск +### 2. Запуск ```bash rproxy ``` ## 📋 Использование -### Настройки авторизации (Пункт 9) -В настройках VPS можно задать `DEFAULT_AUTH_USER` и `DEFAULT_AUTH_PASS`. -Если они заданы, при добавлении нового сервиса с защитой паролем скрипт предложит использовать их одним нажатием Enter. Это удобно для публикации нескольких сервисов под одной учеткой. +### Основное меню +1. **📋 Список сервисов**: Просмотр статуса, ссылок и портов. +2. **➕ Добавить сервис**: Пошаговый мастер публикации нового ресурса. +3. **📝 Редактировать сервис**: Изменение параметров (SSL, порты, Auth) без удаления. +4. **❌ Удалить сервис**: Полная очистка туннеля и конфигурации на VPS. +9. **⚙️ Настройки VPS**: Управление профилями серверов и дефолтной авторизацией. +10. **🆙 Обновить rProxy**: Загрузка новой версии прямо из меню. -### Добавление сервиса (Пункт 2) -1. Выберите имя и локальный адрес (например, `192.168.1.1:80`). -2. Укажите домен (для HTTPS) или внешний порт. -3. Выберите VPS для размещения. -4. Включите защиту паролем (Basic Auth) при необходимости. +## 🏗 Архитектура -## 🏗 Структура файлов -```text -/opt/etc/rproxy/ -├── rproxy.conf # Глобальные настройки (email, дефолтная авторизация) -├── vps/ # Профили VPS серверов -├── services/ # Конфиги опубликованных сервисов -└── id_ed25519 # SSH ключ для доступа к VPS -``` +### На роутере (Keenetic + Entware) +- **autossh** — поддерживает устойчивые SSH-туннели. +- **Иннициализация**: `/opt/etc/init.d/S98rproxy` для автозапуска. +- **Конфиги**: `/opt/etc/rproxy/`. -## ⚠️ Решение проблем +### На VPS (Debian/Ubuntu/CentOS) +- **Nginx** — принимает запросы и прокидывает их в туннель. +- **Certbot** — управляет SSL-сертификатами. -**В: Скрипт постоянно просит установить sshpass?** -О: Это исправлено в версии 1.5.2. Скрипт теперь проверяет пакет через `opkg` и корректно настраивает `PATH`. +## 🔒 Безопасность +- SSH-ключи (Ed25519) — рекомендуемый способ входа на VPS. +- Конфиденциальность: Права 600 на ключи и файлы настроек. +- Защита хешей: Пароли в `.htpasswd` защищены от раскрытия переменных оболочкой. -**В: Не работает HTTPS?** -О: Убедитесь, что ваш домен уже направлен на IP вашего VPS (A-запись). Для работы Certbot домен должен быть доступен извне. +## 🔧 Решение проблем -**В: Как добавить автозапуск?** -О: Инсталлятор автоматически создает `/opt/etc/init.d/S98rproxy`, который поднимает все активные туннели при старте системы. +### Туннель не подключается +- Проверьте статус в пункте **1**. +- Попробуйте **Перезапустить (пункт 7)**. +- Проверьте доступность VPS: `ping `. + +### Не работает HTTPS +- Убедитесь, что домен направлен на IP VPS (A-запись). +- Проверьте лог Nginx на VPS: `tail -f /var/log/nginx/error.log`. + +## 📦 Требования +- **Keenetic** с прошивкой 3.x+ и Entware. +- **VPS** с публичным IP (рекомендуется чистая Ubuntu/Debian). +- **sshpass** (ставится автоматически, если нужен вход по паролю). + +## ❓ FAQ + +**В: Как работает "авто-установка" зависимостей?** +О: В v1.5.2+ скрипт при старте проверяет наличие `openssl-util`, `curl` и `sshpass`. Если их нет, он сам делает `opkg update` и устанавливает их. + +**В: Что такое "Стелс-режим"?** +О: Это набор настроек Nginx, которые передают заголовок `Host` и `Upgrade`, позволяя работать WebSockets и сложным админкам. ## 📝 Лицензия MIT diff --git a/rproxy b/rproxy index 2ffdc0d..7f48ff7 100644 --- a/rproxy +++ b/rproxy @@ -3,7 +3,7 @@ # Публикация локальных сервисов через SSH-туннели + nginx на VPS # http://5.104.75.50:3000/Petro1990/rProxy -VERSION="1.5.2" +VERSION="1.5.3" export PATH="/opt/bin:/opt/sbin:$PATH" CONF_DIR="/opt/etc/rproxy" CONF_FILE="$CONF_DIR/rproxy.conf"