PegaProx: revertir modo reverse-proxy (bug doble 101), consolas solo LAN
This commit is contained in:
@@ -36,8 +36,9 @@ Panel web para el control y administración centralizada de los 3 nodos Proxmox
|
|||||||
|
|
||||||
| Método | Detalle |
|
| Método | Detalle |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Web UI (LAN) | ~~https://192.168.10.125:5000~~ ya no disponible (modo reverse proxy) |
|
| Web UI (LAN) | https://192.168.10.125:5000 (cert autofirmado) |
|
||||||
| Web UI (exterior) | https://pegaprox.consultoria-as.com — vía **Cloudflare Tunnel** (acceso único) |
|
| Web UI (exterior) | https://pegaprox.consultoria-as.com — vía **Cloudflare Tunnel** |
|
||||||
|
| Consolas (LAN) | aceptar una vez `https://192.168.10.125:5001` y `https://192.168.10.125:5002` en el navegador |
|
||||||
| Admin | usuario `admin` / `Aasi940812` |
|
| Admin | usuario `admin` / `Aasi940812` |
|
||||||
| SSH | `ssh root@192.168.10.125` (password: `Aasi940812`) |
|
| SSH | `ssh root@192.168.10.125` (password: `Aasi940812`) |
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ Panel web para el control y administración centralizada de los 3 nodos Proxmox
|
|||||||
| **Conector** | `cloudflared` 2026.9.1 (repo pkg.cloudflare.com, Ubuntu 24.04) |
|
| **Conector** | `cloudflared` 2026.9.1 (repo pkg.cloudflare.com, Ubuntu 24.04) |
|
||||||
| **Servicio** | `systemctl status cloudflared` (token-managed, `/etc/cloudflared/token`) |
|
| **Servicio** | `systemctl status cloudflared` (token-managed, `/etc/cloudflared/token`) |
|
||||||
| **Protocolo** | `http2` forzado via override systemd (`/etc/systemd/system/cloudflared.service.d/override.conf`) — QUIC a region2 falló en el precheck |
|
| **Protocolo** | `http2` forzado via override systemd (`/etc/systemd/system/cloudflared.service.d/override.conf`) — QUIC a region2 falló en el precheck |
|
||||||
| **Origen** | Dashboard Zero Trust → Public hostname → Type `HTTP`, Service `http://localhost:5000` |
|
| **Origen** | Dashboard Zero Trust → Public hostname → Type `HTTPS`, Service `https://localhost:5000`, **No TLS Verify** activado |
|
||||||
|
|
||||||
> **Troubleshooting del montaje (Sept 2026):**
|
> **Troubleshooting del montaje (Sept 2026):**
|
||||||
> 1. Token del conector con "Invalid tunnel secret" → el token se había copiado mal/regenerado; pedirlo fresco del dashboard.
|
> 1. Token del conector con "Invalid tunnel secret" → el token se había copiado mal/regenerado; pedirlo fresco del dashboard.
|
||||||
@@ -57,14 +58,15 @@ Panel web para el control y administración centralizada de los 3 nodos Proxmox
|
|||||||
> 4. Error **502 con connection reset** → Type `HTTPS` contra PegaProx en modo reverse proxy (HTTP plano); el Type correcto es `HTTP`.
|
> 4. Error **502 con connection reset** → Type `HTTPS` contra PegaProx en modo reverse proxy (HTTP plano); el Type correcto es `HTTP`.
|
||||||
> 5. Consolas sin conectar por túnel → activado modo reverse proxy; el frontend enruta los WS por el puerto principal.
|
> 5. Consolas sin conectar por túnel → activado modo reverse proxy; el frontend enruta los WS por el puerto principal.
|
||||||
|
|
||||||
## Modo Reverse Proxy (consolas habilitadas)
|
## ⚠️ Consolas vía túnel — LIMITACIÓN conocida (Sept 2026)
|
||||||
|
|
||||||
PegaProx corre **detrás de proxy** (`PEGAPROX_BEHIND_PROXY=true` en `/etc/systemd/system/pegaprox.service.d/override.conf`):
|
Las consolas (VNC/terminal) **no funcionan a través del túnel Cloudflare** con PegaProx v1.1.1:
|
||||||
|
|
||||||
- Sirve **HTTP plano en 127.0.0.1:5000** (el TLS lo termina Cloudflare en el borde)
|
- En modo reverse proxy (`PEGAPROX_BEHIND_PROXY=true`), el data path de consolas pasa por gevent/pywsgi y el servidor emite **el handshake `101 Switching Protocols` duplicado** en el stream (verificado con raw socket sin Cloudflare). noVNC recibe el segundo 101 como basura de datos → cierra → "reconectando" ×3 → error.
|
||||||
- Las consolas (VNC de VMs, terminal de LXC/nodos) se enrutan por el **mismo hostname/puerto** — no se necesitan public hostnames extra para 5001/5002
|
- En modo nativo (actual), las consolas van por `wss://…:5001/5002` y **Cloudflare (plan free) no proxyea esos puertos** → imposibles por el túnel.
|
||||||
- ⚠️ El acceso directo LAN `https://192.168.10.125:5000` **ya no funciona** (bind solo loopback, sin TLS). El acceso es siempre por `https://pegaprox.consultoria-as.com`
|
- Además, en el handler reverse-proxy existe un bug de variable: `port` (VNC 5900) sobrescribe el puerto API al construir `wss://{host}:{port}` contra PVE → `SSL: WRONG_VERSION_NUMBER`. Se parcheó localmente (`api_port`) y se revirtió al actualizar.
|
||||||
- Verificado por API: `GET /api/health` → `200`, y el endpoint WS de consola responde `401` sin token (llega al backend, no 502)
|
|
||||||
|
**Decisión**: panel por el túnel (OK), consolas por LAN (OK). Reportar bug upstream (doble 101 en reverse-proxy mode) y reintentar con la versión que lo corrija. Los parches locales quedaron revertidos (copia: `vms.py.bak` eliminado; ver historial de esta doc para el diff).
|
||||||
|
|
||||||
## Nodos Conectados (root@pam para pruebas)
|
## Nodos Conectados (root@pam para pruebas)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user