OpenWRT + Nginx Proxy Manager

Esta guía define el flujo de trabajo para exponer cualquier servicio interno de la red OpenWRT (ej. en 192.168.100.x o 10.10.10.x) mediante Nginx Proxy Manager.

Requisitos previos

Procedimiento

A. Preparación del Proxy Host en NPM

  1. En NPM, ir a Proxy Hosts → Add Proxy Host
  2. Pestaña Details:

B. Blindaje de Cabeceras (Pestaña Advanced)

Pegar en la pestaña Advanced para evitar el error "400 Bad Request":

# Configuracion estandarizada para servicios web
proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;
large_client_header_buffers 4 32k;

# Pasar informacion real al servicio interno
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

C. Implementación de SSL (Pestaña SSL)

  1. SSL Certificate: Seleccionar el certificado creado en SSL Certificates
  2. Force SSL: Activar
  3. HTTP/2 Support: Activar
  4. Click en Save

Exponer una instancia de Home Assistant

Home Assistant requiere configuración adicional para funcionar correctamente detrás de un proxy.

A. Configuración de Trusted Proxies en HA

Acceder a /config/configuration.yaml de la VM de Home Assistant y añadir:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.10.10.X

Reemplazar 10.10.10.X por la IP del host donde corre Nginx Proxy Manager (la IP de OpenWRT en la red LAN).

Warning

Si no se configura trusted_proxies, Home Assistant mostrará el error 403 Forbidden al acceder desde el navegador.

B. Configuración del Proxy Host en NPM

En NPM, añadir el Proxy Host:

En la pestaña Advanced, usar la configuración de cabeceras mencionada anteriormente.

Troubleshooting

Síntoma Causa probable Acción correctiva
403 Forbidden trusted_proxies no coincide con la IP del NPM Revisar configuration.yaml en Home Assistant
502 Bad Gateway El servicio interno está apagado o el puerto es incorrecto Haz un ping a la IP de la VM desde tu red
400 Bad Request Cabeceras demasiado grandes Verifica que el bloque de Advanced esté presente y guardado
Internal Error Error de sintaxis en Advanced o certificado corrupto Borra el contenido de Advanced, guarda, y reintenta
Página no carga (SSL) Conflicto en el certificado Crea el certificado de nuevo en el menú lateral SSL Certificates
IP Conflic Host y Router/VM comparten la misma IP Modificar IP de la interfaz de red en el Router o Host
SSH Host Key Changed Cambio de dispositivo en la misma IP Ejecutar: ssh-keygen -R "IP" en Proxmox

Mantenimiento Preventivo

Ver también: OpenWRT en Proxmox, Nginx Proxy Manager