vault backup: 2026-10-14 22:36:45
This commit is contained in:
Vendored
+6
-6
@@ -27,12 +27,12 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "HomeLab/PVE - Description.md",
|
||||
"file": "HomeLab/LXC - npm_keenetic_setup.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "PVE - Description"
|
||||
"title": "LXC - npm_keenetic_setup"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -205,8 +205,11 @@
|
||||
},
|
||||
"active": "b3558acf9e721e10",
|
||||
"lastOpenFiles": [
|
||||
"HomeLab/PVE - General - Description.md",
|
||||
"HomeLab/LXC - Nginx Proxy Manager.md",
|
||||
"HomeLab/LXC - npm_keenetic_setup.md",
|
||||
"HomeLab/npm_keenetic_setup.md",
|
||||
"HomeLab/PVE - Description.md",
|
||||
"HomeLab/PVE - General - Description.md",
|
||||
"HomeLab/OMV-Backups-Guide.md",
|
||||
"HomeLab/omv-qbittorrent-guide.md",
|
||||
"HomeLab/OMV - Guide-NFS-Share (PVE-PBS).md",
|
||||
@@ -216,7 +219,6 @@
|
||||
"HomeLab/LXC- Gitea.md",
|
||||
"HomeLab/LXC - PBS Proxmox Backup Server.md",
|
||||
"HomeLab/LXC - HomePage.md",
|
||||
"HomeLab/LXC - Nginx Proxy Manager.md",
|
||||
"HomeLab/ssh config.md",
|
||||
"HomeLab AI Analisys.md",
|
||||
"HomeLab/! Tasks - planned action.md",
|
||||
@@ -232,8 +234,6 @@
|
||||
"SBC - Hardware/Pasted image 20260517222623.png",
|
||||
"SBC - Hardware/Radxa E25.md",
|
||||
"Network/Settings.md",
|
||||
"SBC - Hardware/ssd1306-rpi5-guide.md",
|
||||
"Hermes/hermes-desktop-connect-guide.md",
|
||||
"SBC - Hardware",
|
||||
"Hermes/oled_cpu_mon.py",
|
||||
"Hermes",
|
||||
|
||||
@@ -22,3 +22,5 @@ bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/Proxmo
|
||||
### Settings
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
#npm #ssl #keenetic
|
||||
# Настройка Nginx Proxy Manager (NPM) в связке с Keenetic
|
||||
|
||||
Руководство по переносу маршрутизации трафика и управлению SSL-сертификатами Let's Encrypt с роутера Keenetic (при наличии белого IP) на специализированный реверс-прокси **Nginx Proxy Manager**, развернутый в LXC-контейнере.
|
||||
|
||||
---
|
||||
|
||||
## Архитектурная схема
|
||||
|
||||
```
|
||||
[Интернет]
|
||||
↓ (порты 80, 443)
|
||||
[Роутер Keenetic] (Проброс портов / NAT)
|
||||
↓
|
||||
[LXC: Nginx Proxy Manager] (Терминация SSL, маршрутизация)
|
||||
├── → https://ha.domain.link → [LXC: Home Assistant] (порт 8123)
|
||||
├── → https://nas.domain.link → [TrueNAS / Synology] (порт 5001)
|
||||
└── → https://proxmox.domain.link → [Proxmox VE] (порт 8006)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1. Подготовка роутера Keenetic
|
||||
|
||||
Поскольку обработкой SSL и субдоменов теперь будет заниматься NPM, на роутере нужно отключить встроенное проксирование и настроить прямой проброс портов.
|
||||
|
||||
1. **Отключение встроенного проксирования KeenDNS:**
|
||||
* Перейдите в **Сетевые правила** → **KeenDNS**.
|
||||
* Удалите (или отключите) все правила из секции **«Доступ к веб-ресурсам домашней сети»**, чтобы Keenetic не перехватывал субдомены 4-го порядка.
|
||||
2. **Проброс портов (NAT):**
|
||||
* Перейдите в **Сетевые правила** → **Переадресация**.
|
||||
* Создайте два правила для вашего интерфейса «Провайдер» (основной интернет-канал):
|
||||
* **HTTP:** Внешний порт `80` → IP-адрес вашего LXC NPM → Внутренний порт `80`.
|
||||
* **HTTPS:** Внешний порт `443` → IP-адрес вашего LXC NPM → Внутренний порт `443`.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2. Выпуск Wildcard-сертификата в NPM (DNS Challenge)
|
||||
|
||||
Чтобы не открывать порт 80 для каждой проверки Let's Encrypt и автоматически защитить все субдомены вида `*.yourdomain.keenetic.link`, настроим проверку через DNS API.
|
||||
|
||||
> 💡 **Примечание:** Так как Keenetic не всегда предоставляет полноценный API-доступ сторонним утилитам для доменов `*.keenetic.link`, для выпуска Wildcard-сертификата в NPM рекомендуется использовать связку со сторонним бесплатным DNS-провайдером (например, **Cloudflare**, перенеся туда управление зоной, либо используя Cloudflare-сертификат).
|
||||
> Если вы остаетесь на чистом `keenetic.link`, используйте метод проверки **HTTP Challenge** (через порт 80).
|
||||
|
||||
### Инструкция для выпуска общего Wildcard-сертификата (через DNS API Cloudflare/других):
|
||||
1. Откройте веб-интерфейс NPM (обычно порт `81`).
|
||||
2. Перейдите во вкладку **SSL Certificates** → **Add SSL Certificate** → **Let's Encrypt**.
|
||||
3. Заполните поля:
|
||||
* **Domain Names:** `yourdomain.keenetic.link` и затем на следующей строчке `*.yourdomain.keenetic.link`.
|
||||
* Включите тумблер **Use a DNS Challenge**.
|
||||
* В списке **DNS Provider** выберите вашего провайдера (например, Cloudflare).
|
||||
* Вставьте ваш секретный API-токен в текстовое поле конфигурации ниже.
|
||||
4. Согласитесь с условиями Let's Encrypt и нажмите **Save**. В течение 1–2 минут сертификат будет готов.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3. Добавление прокси-хоста (на примере Home Assistant)
|
||||
|
||||
1. В интерфейсе NPM перейдите во вкладку **Hosts** → **Proxy Hosts** → **Add Proxy Host**.
|
||||
2. Во вкладке **Details** заполните параметры:
|
||||
* **Domain Names:** `ha.yourdomain.keenetic.link` (замените `ha` на ваш субдомен 4-го порядка).
|
||||
* **Scheme:** `http` *(большинство сервисов внутри локальной сети работают по HTTP)*.
|
||||
* **Forward Name/IP:** Локальный IP-адрес вашего Home Assistant (например, `192.168.1.100`).
|
||||
* **Forward Port:** Порт сервиса (для HA по умолчанию `8123`).
|
||||
* Включите тумблеры: **Block Common Exploits** и **Websockets Support** *(критически важно для работы Home Assistant!)*.
|
||||
3. Перейдите во вкладку **SSL**:
|
||||
* В выпадающем списке **SSL Certificate** выберите выпущенный ранее Wildcard-сертификат.
|
||||
* Включите тумблеры: **Force SSL** (для автоматического редиректа с HTTP на HTTPS) и **HTTP/2 Support**.
|
||||
4. Нажмите **Save**.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4. Настройка доверенного прокси в Home Assistant
|
||||
|
||||
Home Assistant по умолчанию блокирует запросы от обратных прокси-серверов в целях безопасности. Без этого шага при попытке войти через веб-интерфейс вы получите ошибку **«400: Bad Request»**.
|
||||
|
||||
1. Откройте конфигурационный файл Home Assistant (`configuration.yaml`).
|
||||
2. Добавьте или отредактируйте следующий блок кода:
|
||||
|
||||
```yaml
|
||||
http:
|
||||
use_x_forwarded_for: true
|
||||
trusted_proxies:
|
||||
- 192.168.1.50 # !!! ЗАМЕНИТЕ НА РЕАЛЬНЫЙ IP-АДРЕС ВАШЕГО LXC-КОНТЕЙНЕРА С NPM !!!
|
||||
```
|
||||
|
||||
3. Сохраните файл и **перезапустите** Home Assistant через панель разработчика или перезагрузив контейнер HA.
|
||||
|
||||
---
|
||||
|
||||
## Чек-лист проверки работоспособности
|
||||
- [ ] Порты 80 и 443 проброшены на Keenetic в сторону IP NPM.
|
||||
- [ ] При переходе по адресу `https://ha.yourdomain.keenetic.link` открывается окно авторизации Home Assistant.
|
||||
- [ ] В адресной строке браузера горит значок «замочка» (сертификат валиден, выпущен Let's Encrypt).
|
||||
- [ ] Мобильное приложение Home Assistant Companion успешно подключается снаружи по новому адресу.
|
||||
Reference in New Issue
Block a user