Обновление README.md: расширено описание функций и архитектуры
This commit is contained in:
parent
9da425f8c0
commit
671f60343c
92
README.md
92
README.md
|
|
@ -1,74 +1,72 @@
|
||||||
# 🔄 rProxy v1.6.0
|
# 🔄 rProxy
|
||||||
|
|
||||||
**Менеджер обратного прокси для роутеров Keenetic**
|
**Менеджер обратного прокси для роутеров Keenetic**
|
||||||
|
|
||||||
Публикация локальных сервисов (NAS, умный дом, камеры) в интернет через VPS с Nginx всего за пару кликов.
|
Профессиональный инструмент для публикации локальных сервисов (NAS, умный дом, камеры, веб-панели) в интернет через VPS с использованием Nginx и SSH-туннелей. Управление происходит прямо из консоли роутера.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
[LAN сервис] ← [Keenetic] ══SSH туннель══▶ [VPS:Nginx] → Интернет
|
[LAN сервис] ← [Keenetic] ══SSH туннель (autossh)══▶ [VPS:Nginx] → Интернет (HTTPS)
|
||||||
```
|
```
|
||||||
|
|
||||||
## ⚡ Особенности
|
## ⚡ Ключевые возможности
|
||||||
- **Авто-авиатор**: Скрипт сам настраивает VPS, ставит Nginx и Certbot.
|
|
||||||
- **Безопасность**: Используется только авторизация по SSH-ключам (Ed25519).
|
|
||||||
- **Бесшовная авторизация**: Использует `ndmq` для доступа к роутеру (пароль роутера не нужен!).
|
|
||||||
- **Умный Basic Auth**: Защита сервисов паролем с сохранением настроек по умолчанию.
|
|
||||||
- **SSL "из коробки"**: Автоматическое получение и продление HTTPS сертификатов (Let's Encrypt).
|
|
||||||
- **Стелс-режим**: Проксирование Cookies и правильных заголовков для работы сложных веб-интерфейсов.
|
|
||||||
- **Автозапуск**: Интеграция с системой инициализации роутера (`S98rproxy`).
|
|
||||||
|
|
||||||
## 🚀 Быстрый старт
|
- **Автоматизация "под ключ"**: Скрипт самостоятельно настраивает окружение на 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` установятся автоматически при первом запуске.
|
|
||||||
|
|
||||||
|
### 1. Подготовка роутера
|
||||||
|
Убедитесь, что на вашем Keenetic установлен [Entware](https://help.keenetic.com/hc/ru/articles/360021214160). Пакеты `autossh`, `openssl-util` и `curl` будут проверены и установлены автоматически при первом запуске.
|
||||||
|
|
||||||
|
### 2. Установка системы
|
||||||
|
Выполните команду в консоли роутера:
|
||||||
```bash
|
```bash
|
||||||
curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh
|
curl -sSL http://5.104.75.50:3000/Petro1990/rProxy/raw/branch/main/install.sh | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Запуск
|
### 3. Запуск интерфейса
|
||||||
```bash
|
```bash
|
||||||
rproxy
|
rproxy
|
||||||
```
|
```
|
||||||
|
|
||||||
## 📋 Использование
|
## 📋 Основные функции меню
|
||||||
|
|
||||||
### Настройка VPS (Пункт 9)
|
1. **📋 Список сервисов**: Визуальный мониторинг статуса (Online/Offline), доменов и портов.
|
||||||
Для работы rProxy обязателен доступ к VPS по SSH-ключу.
|
2. **➕ Добавить сервис**: Интерактивный мастер, который поможет привязать локальный IP:порт к домену или порту на VPS.
|
||||||
При добавлении сервера скрипт:
|
3. **📝 Редактировать сервис**: Быстрая смена адресов или настроек без удаления туннеля. Теперь с автоматическим обновлением конфигурации на VPS.
|
||||||
1. Попросит IP, порт и пользователя.
|
4. **❌ Удалить сервис**: Полная очистка — удаление туннеля локально и соответствующих конфигов Nginx на сервере.
|
||||||
2. Создаст пару ключей Ed25519 (если они еще не созданы).
|
5. **▶️/⏹️ Управление**: Ручной запуск, остановка и перезапуск отдельных туннелей или всех сразу.
|
||||||
3. **Один раз** попросит пароль VPS для копирования публичного ключа на сервер.
|
6. **🔒 SSL/Certbot**: Выпуск сертификатов для доменных имен в один клик.
|
||||||
После этого пароль больше никогда не потребуется и не будет храниться в системе.
|
7. **⚙️ Настройки VPS**: Управление профилями серверов, настройка SSH-ключей и очистка серверов от "фантомных" конфигураций.
|
||||||
|
8. **🏥 Проверка (Health)**: Диагностика состояния Nginx и сроков действия SSL-сертификатов на удаленных серверах.
|
||||||
|
|
||||||
### Основное меню
|
## 🏗 Архитектура каталогов
|
||||||
1. **📋 Список сервисов**: Статус, внешние ссылки и порты всех туннелей.
|
|
||||||
2. **➕ Добавить сервис**: Пошаговый мастер публикации нового локального ресурса.
|
|
||||||
3. **📝 Редактировать сервис**: Изменение SSL, портов и Auth без пересоздания.
|
|
||||||
4. **❌ Удалить сервис**: Удаление туннеля и его конфигурации с VPS.
|
|
||||||
...
|
|
||||||
10. **🚀 Обновить rProxy**: Загрузка последней версии скрипта.
|
|
||||||
11. **🏥 Проверка VPS**: Диагностика состояния Nginx и SSH на сервере.
|
|
||||||
|
|
||||||
## 🏗 Архитектура
|
- `/opt/bin/rproxy` — основной исполняемый файл.
|
||||||
|
- `/opt/etc/init.d/S98rproxy` — системный скрипт автозапуска.
|
||||||
|
- `/opt/etc/rproxy/` — директория со всеми конфигурациями.
|
||||||
|
- `services/` — файлы настроек конкретных туннелей.
|
||||||
|
- `vps/` — профили удаленных серверов.
|
||||||
|
- `id_ed25519` — приватный ключ для связи с серверами.
|
||||||
|
|
||||||
### На роутере (Keenetic + Entware)
|
## 🔒 Безопасность и хранение данных
|
||||||
- **autossh** — поддерживает устойчивые SSH-туннели через ключи.
|
|
||||||
- **Иннициализация**: `/opt/etc/init.d/S98rproxy` для автозапуска.
|
|
||||||
- **Конфиги**: `/opt/etc/rproxy/`.
|
|
||||||
|
|
||||||
### На VPS (Debian/Ubuntu/CentOS)
|
- **Ключи вместо паролей**: Пароль от VPS запрашивается только один раз при установке ключа. В системе он не хранится.
|
||||||
- **Nginx** — принимает запросы и прокидывает их в туннель.
|
- **Автономность**: rProxy не требует внешних облачных сервисов и работает напрямую между вашим роутером и вашим VPS.
|
||||||
- **Certbot** — управляет SSL-сертификатами.
|
|
||||||
|
|
||||||
## 🔒 Безопасность
|
|
||||||
- **SSH-ключи (Ed25519)** — единственный и максимально безопасный способ входа.
|
|
||||||
- **Никаких паролей**: В файлах конфигурации больше не хранятся пароли от VPS.
|
|
||||||
- **Защита хешей**: Пароли Basic Auth в `.htpasswd` защищены от раскрытия переменных оболочкой.
|
|
||||||
|
|
||||||
## 📦 Требования
|
## 📦 Требования
|
||||||
- **Keenetic** с прошивкой 3.x+ и Entware.
|
|
||||||
- **VPS** с публичным IP (рекомендуется чистая Ubuntu/Debian).
|
- **Роутер**: Keenetic (прошивка 3.x и выше) с установленным Entware.
|
||||||
|
- **Сервер**: VPS/VDS с публичным IP (рекомендуется чистая Ubuntu 22.04+ или Debian 11+).
|
||||||
|
|
||||||
## 📝 Лицензия
|
## 📝 Лицензия
|
||||||
MIT
|
|
||||||
|
Проект распространяется по лицензии MIT.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue