diff --git a/README.md b/README.md index 16993b6..faf554f 100644 --- a/README.md +++ b/README.md @@ -27,22 +27,22 @@ rproxy Откроется интерактивное меню: ``` -╔══════════════════════════════════════════════╗ -║ rProxy v1.0.0 ║ -╚══════════════════════════════════════════════╝ +rProxy v1.5.1 - VPS: 5.104.75.50 Сервисов: 2 Онлайн: 1 + Серверов VPS: 1 Сервисов: 2 Онлайн: 1 ────────────────────────────────────────────────── 1) 📋 Список сервисов и статус 2) ➕ Добавить сервис - 3) ❌ Удалить сервис + 3) 📝 Редактировать сервис + 4) ❌ Удалить сервис ────────────────────────────────────────────────── - 4) ▶️ Запустить туннель - 5) ⏹️ Остановить туннель - 6) 🔄 Перезапустить туннель + 5) ▶️ Запустить туннель + 6) ⏹️ Остановить туннель + 7) 🔄 Перезапустить туннель ────────────────────────────────────────────────── - 7) ⚙️ Настройки VPS + 9) ⚙️ Настройки VPS + 10) 🆙 Обновить rProxy 0) 🚪 Выход ▸ Выберите действие: @@ -51,7 +51,7 @@ rproxy ### 3. Первый запуск При первом запуске скрипт предложит настроить подключение к VPS: -- **IP-адрес VPS** +- **IP-адрес VPS** (или домен) - **SSH порт** (по умолчанию 22) - **Пользователь** (по умолчанию root) - **Авторизация** — SSH-ключ или пароль @@ -69,14 +69,13 @@ rproxy ## 🏗 Архитектура ### На роутере (Keenetic + Entware) -- **autossh** — устанавливает устойчивые обратные SSH-туннели до VPS -- Каждый сервис = отдельный туннель -- Конфигурация: `/opt/etc/rproxy/` -- PID-файлы: `/opt/var/run/rproxy/` +- **autossh** — устанавливает устойчивые обратные SSH-туннели до VPS. +- Конфигурация: `/opt/etc/rproxy/`. +- **Автозависимости**: Скрипт сам ставит `openssl-util`, `sshpass` и `curl` при первом запуске. ### На VPS -- **nginx** — принимает входящие запросы и проксирует в SSH-туннели -- Конфиги сервисов: `/etc/nginx/sites-enabled/rproxy_*.conf` +- **nginx** — принимает входящие запросы и проксирует в SSH-туннели. +- Автоматическая настройка окружения (установка nginx, certbot, оптимизация SSH). ### Файлы @@ -92,10 +91,22 @@ rproxy ## 🔒 Безопасность -- SSH-ключ и конфиг хранятся с правами 600 -- Все соединения зашифрованы через SSH +- SSH-ключ и конфиг хранятся с правами 600. +- **Basic Auth**: Возможность защитить любой сервис паролем. Хеши паролей защищены от повреждения оболочкой. +- **SSH-ключи**: Рекомендуемый способ авторизации. -> **Рекомендация:** используйте авторизацию по SSH-ключу. +## 🔧 Возможности (v1.5.1) + +- **Авто-авиатор**: Автоматическая установка всех необходимых пакетов Entware. +- **Умная авторизация**: Хранение «пароля по умолчанию» для быстрой публикации защищенных сервисов. +- **RCI/ndmq**: Локальное управление Keenetic без ввода пароля роутера. +- **SSL (HTTPS)**: Автоматическое получение сертификатов через Certbot. +- **Поддержка доменов**: Полная поддержка буквенных адресов VPS. +- **Стелс-режим**: Правильная трансляция Host-заголовков и Cookies для корректной работы веб-интерфейсов. + +## 📝 Лицензия + +MIT ## 🔧 Решение проблем diff --git a/rproxy b/rproxy index 7679c0a..a8b7c23 100644 --- a/rproxy +++ b/rproxy @@ -3,7 +3,7 @@ # Публикация локальных сервисов через SSH-туннели + nginx на VPS # http://5.104.75.50:3000/Petro1990/rProxy -VERSION="1.5.0" +VERSION="1.5.1" CONF_DIR="/opt/etc/rproxy" CONF_FILE="$CONF_DIR/rproxy.conf" SERVICES_DIR="$CONF_DIR/services" @@ -34,9 +34,7 @@ clear_screen() { printf "\033[2J\033[H"; } draw_box() { local title="$1" - printf "${CYAN}╔══════════════════════════════════════════════╗${NC}\n" - printf "${CYAN}║${NC} ${BOLD}%-44s${NC}${CYAN}║${NC}\n" "$title" - printf "${CYAN}╚══════════════════════════════════════════════╝${NC}\n" + header "$title" } draw_separator() {