Conexión Remota y Clúster en AngelSQL
AngelRemote es el subsistema de interconexión privada y túneles TLS de alto rendimiento integrado en AngelSQL. Permite conectar servidores centrales en la nube (Master) con sucursales, terminales de punto de venta y aplicaciones locales (Client) sin requerir apertura de puertos en módems ni configuración de VPNs complejas.
Roles del Clúster: Master y Client
Cualquier instancia de AngelSQLServer puede asumir uno de los siguientes roles configurables desde el panel de administración del puerto 4428:
| Rol | Descripción | Responsabilidad Principal |
|---|---|---|
| Master | Servidor Central / Cloud | Escucha conexiones TCP/TLS entrantes en el puerto 7443. Gestiona Tenants y autoriza Clientes mediante claves secretas SHA-256. |
| Client | Agente Remoto / Sucursal | Se conecta hacia el Master a través de Internet (iniciando la conexión desde adentro hacia afuera, sin abrir puertos en el router) y reenvía tráfico a servicios locales o de red. |
| Disabled | Modo Autónomo Local | El servidor opera únicamente de forma local en la máquina actual sin conectarse ni aceptar túneles de clúster. |
Seguridad TLS y Certificate Pinning
AngelRemote implementa una arquitectura de seguridad de nivel bancario en 3 capas:
- Cifrado TLS Punto a Punto: Todo el tráfico viaja completamente encriptado mediante certificados PKCS#12 (PFX).
- Huella Digital SHA-256 (Certificate Pinning): Cada nodo cliente verifica la huella criptográfica del servidor Master antes de transmitir cualquier dato, neutralizando ataques Man-in-the-Middle (MitM).
- Autenticación de Tenant y Cliente: Cada cliente cuenta con un
Client ID (GUID)único y unaClave Secreta SHA-256 (64 hex)asignada a un Tenant específico.
Escenarios de Redirección (Local, LAN y URL)
Una de las mayores ventajas de AngelRemote es la flexibilidad de su destino de redirección. Cuando el Master envía una petición o túnel TCP hacia el nodo Cliente, este último puede reenviar el tráfico a tres destinos distintos según el valor especificado en el campo Destino de Redirección:
🖥️ 1. Mismo Equipo (Local)
Reenvía el tráfico a un puerto o aplicación que corre en la misma máquina física del agente cliente.
49403 o 127.0.0.1:49403
http://127.0.0.1:49403.
🏢 2. Red LAN (Puente / Gateway)
El cliente actúa como puerta de enlace para exponer un servidor o base de datos en su red de área local.
192.168.1.50:1433 o 10.0.0.5:8080
http://192.168.1.50:1433.
🌐 3. URL Completa
Especifica protocolo y puerto explícitos para APIs web locales o proxies reversos externos.
http://localhost:8080 o https://mi-api.local
1. Configuración del Servidor Master
Para configurar el nodo central que recibirá a los clientes:
- Abre tu navegador y entra a:
http://localhost:4428/index.html. - Haz clic en el botón ⚙️ Configurar Clúster (AngelRemote) en el menú superior.
- En el selector Rol del Nodo, elige
🏢 Servidor (Master). - Configura el Puerto Master (por defecto
7443) y tu IP Pública o Dominio (ej.midominio.como tu IP estática). - Copia la Huella Digital TLS SHA-256 mediante el botón
📋 Copiar Huella.
2. Creación de Tenants y Registro de Clientes
Paso 2.1: Crear un Tenant
Un Tenant representa una empresa, organización o grupo de sucursales. Haz clic en + Nuevo Tenant e introduce un nombre y descripción.
Paso 2.2: Registrar un Cliente Autorizado
Haz clic en + Nuevo Cliente dentro de la pestaña Master:
- Tenant: Selecciona el tenant correspondiente.
- Client ID: Se genera automáticamente un GUID único.
- Nombre: Ej. "Caja 1 - Sucursal Norte".
- Clave Secreta: Haz clic en
Generar Secretopara obtener un hash SHA-256 de 64 caracteres. - Destino de Redirección: Especifica el puerto o IP local (ej.
49403o192.168.1.50:1433).
3. Configuración del Nodo Cliente (Agente)
En el equipo de la sucursal o terminal remota donde corre AngelSQLServer:
- Abre el portal en
http://localhost:4428/index.html. - Selecciona el rol
💻 Cliente (Client). -
Opción Rápida (Recomendada): Haz clic en
📋 Pegar Portapapeles(habiendo copiado el snippet desde el Master) o en📁 Cargar JSON desde Disco. Todos los campos se autocompletarán al instante. - Verifica que el campo Destino de Redirección coincida con la aplicación local que deseas exponer.
- Haz clic en 💾 Guardar Configuración de Clúster.
Previsualización Dinámica de Destino en Vivo
Para evitar cualquier ambigüedad técnica, el portal de administración del puerto 4428 cuenta con un asistente visual interactivo que interpreta en tiempo real el formato ingresado:
Ejemplo de Respuestas del Asistente:
49403 ➔ Se conectará a http://127.0.0.1:49403 en este mismo equipo.
192.168.1.50:1433 ➔ Se reenviará a http://192.168.1.50:1433 (Host/IP en la red local del cliente).
http://localhost:8080 ➔ Se conectará directamente a la URL indicada.
Diagnóstico y Solución de Problemas
1. El cliente no conecta con el Master
Causa probable: El puerto 7443 en el firewall del servidor Master no está permitido o la Huella Digital SHA-256 no coincide.
Acción recomendada: Abre el puerto TCP 7443 en el firewall de Windows/Linux del Master y vuelve a copiar la huella digital SHA-256 generada en la pestaña Master.
2. El cliente conecta pero el servicio local responde 404 o rechaza la conexión
Causa probable: El puerto de destino local (ej. 49403) no corresponde a la aplicación en ejecución o la aplicación AngelApp no ha iniciado.
Acción recomendada: Verifica en la pestaña Aplicaciones del puerto 4428 cuál es el puerto asignado a tu AngelApp y configúralo en el campo de destino de redirección.
3. Reenvío a SQL Server en la LAN falla
Causa probable: SQL Server en la máquina remota (ej. 192.168.1.50) no tiene habilitado TCP/IP en SQL Server Configuration Manager o el puerto 1433 está bloqueado por el firewall local.
Acción recomendada: Habilita el protocolo TCP/IP en SQL Server Configuration Manager y permite el puerto 1433 en el equipo de destino.