Servicios

DNS y Streaming en CasaOS

En nuestra reciente aventura técnica, nos embarcamos en la configuración de un servidor de streaming RTMP y la automatización de consultas DNS en CasaOS. Este proceso estuvo lleno de desafíos, múltiples intentos y aprendizajes significativos. Aquí compartimos nuestra experiencia, esperando que sea útil para otros entusiastas de la tecnología.

Configuración del Servidor RTMP

Nuestro primer desafío fue configurar un servidor de medios utilizando Node-Media-Server en Docker. A continuación, los pasos clave:

  1. Creación del Dockerfile: Creamos una imagen Docker personalizada para Node-Media-Server.
  2. Configuración del media_server.js: Ajustamos los parámetros para optimizar la calidad del streaming y verificamos las IPs de las conexiones entrantes.
  3. Automatización con Docker: Utilizamos Docker para ejecutar y gestionar el servidor de medios, asegurando una ejecución estable y de alta calidad.

Después de múltiples intentos y ajustes, logramos una configuración que permitiera el streaming con una buena calidad y latencia aceptable.

Creación del Script media_server.js

Contenido del media_server.js:

const NodeMediaServer = require('node-media-server');

const config = {
  rtmp: {
    port: 1935,
    chunk_size: 60000,
    gop_cache: true,
    ping: 30,
    ping_timeout: 60
  },
  http: {
    port: 8000,
    mediaroot: './media',
    allow_origin: '*'
  },
  trans: {
    ffmpeg: '/usr/bin/ffmpeg',
    tasks: [
      {
        app: 'live',
        vc: "libx264",
        vcParam: ['-crf', '28', '-preset', 'faster'],
        ac: "aac",
        acParam: ['-b:a', '128k'],
        hls: true,
        hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
        dash: true,
        dashFlags: '[f=dash:window_size=3:extra_window_size=5]'
      }
    ]
  }
};

const nms = new NodeMediaServer(config);
nms.run();

Automatización de Consultas DNS

El siguiente desafío fue automatizar las consultas DNS para verificar registros A y HTTPS (TYPE65). Creamos scripts en bash y los ejecutamos periódicamente usando cron. Aquí están los pasos clave:

  1. Creación de Scripts Unificados: Combinamos los scripts en uno solo para simplificar la gestión.
  2. Configuración de Cron: Configuramos tareas cron para ejecutar el script cada hora, asegurando que las consultas se realicen automáticamente.

Contenido del sushi_lookup.sh:

#!/bin/sh

DNS_SERVER="192.168.1.1"

while IFS= read -r domain; do
    echo "Checking A record for $domain"
    dig @$DNS_SERVER +short A "$domain"
    
    echo "Checking HTTPS (TYPE65) record for $domain"
    dig @$DNS_SERVER +short TYPE65 "$domain"
done < /mnt/ramen/takoyaki/domains.txt

Desafíos y Soluciones

  1. Problemas de Configuración de Docker: Ajustamos varias configuraciones hasta que el contenedor Docker funcionó correctamente.
  2. Problemas de IP del DNS: Verificamos y utilizamos la IP correcta del servidor DNS dentro de Docker.
  3. Automatización y Permisos: Nos aseguramos de que los scripts tenían los permisos correctos y configuramos cron adecuadamente.

Configuración de Cron

Para asegurarnos de que los scripts se ejecutan según lo programado, revisamos las tareas cron y añadimos registros para confirmar la ejecución:

0 * * * * /mnt/ramen/takoyaki/sushi_lookup.sh >> /mnt/ramen/takoyaki/sushi_lookup.log 2>&1

Este proyecto ha sido una verdadera aventura técnica, llena de desafíos y aprendizajes. Desde la configuración del servidor RTMP hasta la automatización de consultas DNS, cada paso nos ha acercado a una solución eficiente y funcional. Esperamos que nuestra experiencia sirva de guía para otros que enfrenten retos similares en la implementación de soluciones en CasaOS.

Para hacer esta lectura más agradable, recomendamos escuchar el tema «Aerith’s Theme» del juego Final Fantasy VII. Es una melodía tranquila y nostálgica que seguramente te acompañará bien durante este viaje técnico.

Tags : CASAOSDNSZIMABLADE
Adrian Elegante

The author Adrian Elegante

Soy un apasionado de los idiomas y me encanta explorar la rica cultura de Japón. En mi tiempo libre, disfruto jugando videojuegos y explorando nuevas tecnologías. Estoy emocionado de compartir mis pensamientos y experiencias con la comunidad del blog. ¡Nos vemos en los comentarios!

Leave a Response

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.