person
RFC 1459 / ZNC Protocol Spec v1.8+
Bouncer ZNC / Soju Persistencia 24/7 Puerto 5001 / 6697 Buffer Playback Enmascaramiento IP
cloud_sync Core Manual • Módulo de Red Persistente

03 • Infraestructura: Configuración de Bouncer ZNC en FenixIRC

Persistencia continua de nick 24/7, recuperación transparente de buffer diferido y enmascaramiento total de IP móvil en Android mediante multiplexación de túneles TLS.

terminal Simulador Handshake
01.

Concepto y Arquitectura de Infraestructura Bouncer

dns

Proxy IRC 24/7 de Nivel de Transporte

Un Bouncer (BNC) actúa como intermediario autónomo desplegado en un servidor VPS o clúster dedicado con uptime ininterrumpido. A diferencia de un cliente móvil susceptible a desconexiones por deep-sleep de Android, el daemon ZNC o Soju mantiene sockets TLS abiertos perpetuamente con múltiples servidores IRC.

Cuando FenixIRC se asocia al bouncer, éste vuelca en ráfaga el historial comprimido acumulado (Buffer Playback) mediante marcas de tiempo server-time, restaurando el estado mental de conversación sin saltos.

Topología de Aislamiento IP Móvil Celular / vHost Virtual
verified_user
hub Flujo de Tráfico Cifrado Multipunto TLS v1.3 • Chacha20-Poly1305
FenixIRC Android Cliente Móvil (WakeLock) IP Dinámica: 4G/LTE Port 5001 SSL ZNC / SOJU Host VPS Proxy Dedicado Buffer Ring: 1000 msgs vHost: 185.220.101.42 Port 6697 Redes IRC Libera, OFTC, EFnet Visible: vHost ZNC
01. Conexión Segura Móvil autentica vía usuario/red
02. Ring Memory Buffer persistente en disco/RAM
03. Repetición Inmediata Descarga backlog con timestamps
02.

Implementación Técnica en FenixIRC

ServerEditScreen.kt • IrcEngine.kt
tune

Mapeo de UI hacia Capa de Datos (Model Layer)

Campo de Configuración Clave Kotlin / Tipo Valor Bouncer Objetivo
Servidor Host host: String bnc.midominio.com / IP VPS
Puerto de Red port: Int 5001 o 6697 (Listener ZNC)
Usar SSL / TLS useSsl: Boolean true (Certificado X.509)
Contraseña Servidor password: String Clave de usuario ZNC
Avanzado: Bouncer useBouncer: Boolean true (Habilita sintaxis ZNC)
Red / Tag BNC bouncerNetwork: String libera / oftc (Target ID)
info Al activar useBouncer = true, el motor de FenixIRC deja de asociar la contraseña como autenticación directa NickServ o server pass ordinario, delegándola al protocolo de negociación modular del BNC.
ServerEditScreen.kt • Native Preview
Android Compose UI
Editar Servidor IRC close
znc.fenixnet.org dns
5001
SSL / TLS lock
Conexión vía Bouncer Multiplexar credenciales ZNC / SOJU
libera ZNC Module: Active
03.

Protocolo de Handshake ZNC en el Motor (IrcEngine.kt)

code com.fenixirc.core.engine.IrcHandshake.kt
Kotlin 2.0
// Generación de tramas salientes según especificación ZNC
suspend fun dispatchAuthHandshake(
  session: IrcSessionState,
  writer: FrameChannelWriter
) {
  // Verificación de bandera de infraestructura Bouncer
  if (session.serverConfig.useBouncer) {
    val bncTag = session.serverConfig.bouncerNetwork.trim()
    val zncUser = "${session.credentials.username}/$bncTag"
    val zncPass = "${session.credentials.password}/$bncTag"

    // Inyección de sintaxis extendida RFC 1459 para ZNC/Soju
    writer.writeLine("PASS $zncPass")
    writer.writeLine("NICK ${session.credentials.nickname}")
    writer.writeLine("USER $zncUser 8 * :FenixIRC Client v2.4")
    session.logger.info("BNC Handshake emitido para red [$bncTag]")
  } else {
    // Conexión directa estándar a servidor RFC regular
    if (session.credentials.password.isNotBlank()) {
      writer.writeLine("PASS ${session.credentials.password}")
    }
    writer.writeLine("NICK ${session.credentials.nickname}")
    writer.writeLine("USER ${session.credentials.username} 8 * :FenixIRC User")
  }
}
security

Transparencia de Credenciales y Protocolo

ZNC requiere que la autenticación del cliente especifique con qué servidor conectado o red interna desea acoplarse.

Ejemplo de trama generada: PASS MiClaveSegura123/libera USER fenixdev/libera 8 * :User

El motor de FenixIRC abstrae este comportamiento para el usuario final. Basta con ingresar la contraseña en el campo habitual y el tag en la casilla de bouncer.

verified Compatibilidad verificada con Soju, ZNC y IRCCloud Proxy
04.

Beneficios Críticos de la Infraestructura Bouncer

all_inclusive
Always Online

01. Sesión Persistente 24/7 (Never-Offline)

Tu nick permanece conectado ininterrumpidamente en los canales. Jamás emites un evento /QUIT accidental por cambio de red WiFi a 4G/5G, paso por túneles o apagado de pantalla en Android. Preservas los privilegios de operador de canal (+o, +v) de forma continua.

Sin dropouts por Doze Mode en Android 14+
history_toggle_off
Zero Data Loss

02. Recuperación de Mensajes Diferidos (Buffer Playback)

Descarga automática y secuencial de menciones destacadas (highlights), consultas privadas (queries) y el backlog completo del canal. Gracias a la extensión IRCv3 server-time, los mensajes se ordenan cronológicamente con su hora exacta de emisión original.

Ring Buffer configurable hasta 5,000 líneas
vpn_lock
Hardened IP

03. Enmascaramiento Integral de IP Móvil

Blindaje total de tu privacidad personal: los servidores IRC y los usuarios en el canal únicamente ven la dirección IPv4/IPv6 estática o el vHost personalizado del servidor VPS remoto. Tu operador telefónico, geolocalización aproximada y dispositivo quedan completamente disimulados.

Mitigación nativa de ataques DDoS hacia el móvil
battery_saver
Eco Android

04. Máxima Eficiencia de Batería y Datos Móviles

El servidor VPS absorbe la ráfaga continua de paquetes PING? / PONG! requeridos por el estándar RFC para mantener la conexión viva. Tu smartphone no necesita mantener radios celulares despiertos constantemente, permitiendo ciclos de suspensión profunda (Deep Sleep).

Ahorro estimado: 60% de consumo vs IRC directo
05.

Guía Paso a Paso para Configurar ZNC en FenixIRC

01
Nuevo Servidor

Navega a la pantalla de Servidores en FenixIRC y presiona el botón de acción flotante [+].

ServerEditScreen
02
Host y Puerto

Ingresa el FQDN o IP del bouncer (ej. bnc.dominio.net), puerto 5001 y activa SSL/TLS.

useSsl = true
03
Identidad

Especifica tu Nick y la contraseña configurada en la cuenta de usuario de tu servidor ZNC.

ZNC Auth Token
04
Módulo BNC

Activa el switch Conexión vía Bouncer e ingresa el identificador de red, ej: libera.

bouncerNetwork
05
Guardar & Unir

Guarda la conexión. FenixIRC conectará al túnel, validará certificados y volcará el playback automáticamente.

Playback Complete
06.

Laboratorio Interactivo • Simulador de Handshake ZNC

Live Frame Generator
Configurar Credenciales
Cifrado TLS v1.3 Puerto seguro 5001
lock
Console Stream: /dev/ttyIRC0
// Simulador listo. Presiona 'Iniciar Handshake ZNC' para emitir tramas.