Blog de Daniel Zegarra Rotating Header Image

servidor

Como crear tu propia estación de radio

Un pata me pregunto como crear una radio en internet, y yo no le respondi adecuadamente porque estaba ocupado en otra cosa. Pero esta es una pregunta válida que en un momento atras me la hice y logré responder.

Si bien hay varias soluciones, explicaré la que use yo.

Antes de empezar necesitas contar con una IP estática, de esa forma otros usuarios de la red podrán encontrarte. Si deseas que tu público sean los usuarios de Internet (no solo tu red local) tu IP deberá ser pública tambien. Si cuentas con una conexion a internet, probablemente tu proovedor haya asignado una IP pública a tu router. Puedes usar esta si no tuvieras los recursos para alquilar una. Para ello sigue el tutorial de como tener DNS’s dinámicos.

SHOUTcast Radio es un software que te permite lanzar audio a traves de la red (ya sea por internet o una red LAN). Este software es gratuito y se integra perfectamente al popular reproductor de multimedia Winamp.

Los pasos para usarlo son simples y se detallan en la web de SHOUTcast.

  1. Debes descargar el servidor. Para empezar dirigete a esta dirección y acepta la licencia. Elige la versión del software que se ajuste al sistema operativo que usaras como servidor.
  2. Luego necesitarás el plugin para Winamp (el SHOUTcast Radio DSP Plug-in) que lo puedes descargar de aquí. Esto lo usarás mas adelante.
  3. Instala el primer archivo descargado. Yo uso Windows por lo tanto la instalación es muy simple, si usas otro S.O. espero sepas como instalar software en él.
  4. Luego de la instalación debes ubicar y modificar el archivo de configuracion. Este lo encuentras facilmente aquí:
    Ubicación del archivo de configuración de Shoutcast

    Ubicación del archivo de configuración de Shoutcast

    Los parametros pre-establecidos estan ya llenados para que tu no tengas que hacerlo. El único que debes cambiar es el parámetro Password. Esta es la clave que usaras para enviar música al servidor y gestionar las conexiónes hechas desde la web.

    Archivo de configuración de Shoutcast

    Archivo de configuración de Shoutcast

    Cambialo por el que más te guste y guarda el archivo.

  5. Ahora inicia el servidor. Junto a donde encontraste el archivo de configuración se encuentra el programa que arranca el servidor.
    Iniciando el servidor Shoutcast

    Iniciando el servidor Shoutcast

    Simplemente ejecutado y verás algo muy parecido a esto.

    Monitor del servidor Shoutcast

    Monitor del servidor Shoutcast

  6. Ahora que el servidor ya esta iniciado solo falta darle la música.
    Lo que hace el servidor es recibir la música que le das y reenviarla a los usuarios que la esperan. Los oyentes realmente no tienen contacto con el emisor sino que el servidor funciona de nexo entre los dos. De esta forma no es necesario que el servidor se encuentre en el mismo lugar que el emisor. El emisor puede estar en el punto A con un ancho de banda decente mientras que el servidor en el punto B con un mayor ancho de banda de salida (puesto que va a recibir a varios clientes, calcula unos 10kb/s por cada oyente) y los oyentes en cualquier otra parte del mundo. El servidor es tambien el que realmente necesita el IP público porque es con él quien tanto el emisor como los clientes buscarán.
  7. Como expliqué en el punto anterior, el servidor y el emisor de la música son entes distintos. En este ejemplo se encuentran en el mismo computador pero lo ideal sería tenerlos separados ubicando al servidor el una red con un buen ancho de banda de salida a Internet. En este ejemplo usare a Winamp como el emisor de audio. Winamp no hace esto de forma nativa, adquiere esta habilidad gracias a un plug-in que descargaste en el punto 2 de este tutorial. Ubica y ejecuta el segundo archivo que descargaste. El instalador es muy simple, solo asegurate que detecta correctamente la ubicación de tu instalación de Winamp. Una vez terminado inicia Winamp.
  8. No notarás cambios en Winamp y es porque el plug-in si se instalo correctamente pero falta activarlo. Para ello ve a Preferencias / Plug-ins / DSP/efecto, de la lista elije a Nullsoft SHOUTcast Source DSP y una nueva ventana aparecerá.

    Cargando el plug-in DSP de SHOUTcast en Winamp

    Cargando el plug-in DSP de SHOUTcast en Winamp

  9. Esta ventana es el nexo entre Winamp y tu servidor SHOUTcast y realmente lo que contiene será todo lo que necesitas.
    Secciones del plug-in de SHOUTcast para Winamp (Output)

    Secciones del plug-in de SHOUTcast para Winamp (Output)

    Secciones del plug-in de SHOUTcast para Winamp (Encoder)

    Secciones del plug-in de SHOUTcast para Winamp (Encoder)

    1. Servidores SHOUTcast a los que enviar la música. Puedes usar hasta 5.
    2. Saltar entre los datos de conexion al servidor y la informacion a mostrar en la guia de radios de SHOUTcast.
    3. Dirección del servidor. Dejalo en localhost si el servidor se encontrase en el computador que usarás de emisor (como en este caso).
    4. Puerto del servidor que esta esperando conexiónes. Dejalo como está.
    5. Clave para conectarse al servidor. Esta clave la elegiste en el punto 4 de este tutorial.
    6. Codificador a usar.
    7. Si se cortara la comunicación entre el emisor y el servidor, cuantos segundos esperar para intentar reconectar.
    8. Una vez los datos esten colocados da un clic sobre Connect para conectar manualmente el servidor. Si activas la opción Connect at Startup el plug-in se conectará al servidor vaca vez que inicies Winamp.
    9. Muestra el estado de la conexión.
    10. Juegos de codificadores prestablecidos. Puedes tener un máximo de 5.
    11. Tipo de codificación a usar. Recomiendo usar AAC porque la taza de compresión es muy buena.
    12. Configuración del tipo de compresión. Recomendable que se quede en 48kbps a 44100hz (Parametric Stereo).

Ya esta, eso es todo.

Usar el plug-in es muy simple. Todo lo que escuches en Winamp será automaticamente enviado al servidor y de allí a tus oyentes.

Notas/Tips

Hay mas opciones que te permite SHOUTcast como el elegir una pista de audio de bienvenida a todo nuevo oyente, crear listas de IP’s permitidos o bloqueados, reenviar el audio recibido a otros servidores (repetidores) e incluso funcionar como servidor de audio por demanda.

El servidor shoutcast tiene un administrador web. Para entrar solo necesitas la dirección del servidor más el número de puerto usado (usualmente es el 8000) quedando una dirección mas o menos asi:

http://www.musicarock.com:8000

http://localhost:8000 (si te conectas desde mismo servidor)
Para administralo el nombre de usuario es siempre admin y la clave es la que eliges en el paso 4.
La dirección para escuchar la radio es la misma.

Tu estación demora incluso horas en aparecerer la guía de radios de SHOUTcast. Eso es normal. Requiere de que te mantengas transmitiendo por un largo rato.

DNS’s dinamicos, tu propio server en Internet

Nota: Antes de leer este post requieres saber que es un dominio de internet.

Si eres un usuario comun de internet probablemente salgas a ella con tu router ADSL y cuentes con una IP pública pero dinamica. ¿Que significa esto? Una IP son 4 grupos de numeros que identifican tu computador en una red, ya sea pequeña (como la que posiblemente tienes en casa u oficina) o grande (como lo es internet). Se llaman IP’s públicas aquellas que se encuentran en la red de mas alto nivel osea Internet. Y IP’s privadas a las que estan detras de tu router. El router (ese aparato que te instalo tu proovedor de internet) es en si como un puente. Une la red pública (internet) con tu red privada (como tu pc) pero lo hace usando unas reglas, te permite sacar a internet todo lo que quieras, pero no permite que desde internet entren a tu red. Por regla general, los computadores de la red publica (internet) somo pueden conectarse con otros en su misma red. Por lo tanto se puede decir que tu router se encuentra en la zona pública, y tu computadora se encuentra detras del router, en la zona privada. Entonces, si alguien en china (por elegir un lugar cualquiera) quisiera rastrearte, solo llegaría hasta tu router y de ahi no pasa.

Esto suena bien, en resumen el router nos protege de ataques (aunque su razon principal de existir no sea esa) pero tambien nos limita un poco.

Como haces si deseas brindar un servicio en internet (servidor de web, multimedia, correo, etc), si instalaras lo necesario en tu pc para lograrlo solo funcionaria en tu red privada puesto que tu servidor se encuentra alli. Lo que necesitas es colocar tu computador en la zona pública. Debido a que no soy el primero que requiere de esto, los routers actuales suelen venir con un opciones de forwarding. Lo que el forwarding significa es que tu router redireccionará una solicitud a tu red privada cuando dicha solicitud cumpla con las reglas que previamente configuraste. En resumen, repetira una peticion que le llega a el desde la zona publica a tu computadora en la zona privada y devolvera la respuesta a la zona publica. Que chevere pues, asi podemos estar en la zona publica sin tener que salir de la privada.

Ahora, aún falta algo para que nuestro servidor casero sea util: Tener una manera de ubicarlo desde internet. Como dije al inicio del post, tu proovedor de internet seguro le da a tu router IP’s publicas dinamicas, esto quiere decir que cada vez que tu router se desconecta de la red (se apaga o la conexion se va) al intentar conectarse tu proovedor le asigna una IP distinta. Asi que si hayas la IP pública que tu router usa ahora es posible que mañana ya no sea la misma. Pero hay una solución a este percance ya que por suerte hay servicios en internet que te ofrecen un nombre de dominio dinamico de internet.

Dominio dinamico no quiere decir que el nombre cambia, quiere decir que los IPs suscritos a dicho nombre son los que cambian.

Los nombres de dominio normales (como google.com.pe, hotmail.com, latiendadelaesquina.net) redireccionan tu navegador siempre al mismo IP, por eso se les llama nombre de dominio estaticos o simplemente nombres de dominio.

Explicaré ahora como usar un servicio para asignar un dominio de internet al cambiante IP de tu router.

El servicio que elegi es dyndns. Hay otros más como no-ip, pero me parece que la interfaz gráfica de dyndns es mas amigable.

Para empezar, dirigete al sitio web www.dyndns.com y luego al link create account (si no lo ves, esta bajo los campos para iniciar sesion, esquina superior derecha). Ingresas los datos que te pide y luego esperas a que te llegue el correo de confirmación. Una vez confirmes tu nueva cuenta, inicias sesión.

Una vez estes dentro verás la siguiente pantalla.

Pantalla de resumen de DynDNS

Pantalla de resumen de DynDNS

En el menu izquierdo elije Services y luego en Host Services elije Add hostname. En la siguiente pantalla te pedira los datos para crear el nombre de dominio. Elijes el nombre de subdominio que desees y el dominio de la lista desplegable. Como este es un servicio gratuito, tu nombre sera algo como estemegusta.dyndns.org.

Creando un host

Creando un host

Luego viene la parte en que dependiendo del router que tengas pueden diferir los pasos a seguir.

Una vez creado el host debemos decirle a nuestro router que cada vez que cambie de IP público informe a DynDNS de dicho cambio. No todos los routers tienen esta opción, en ese caso podrias usar otro servicio como no-ip que instala un programa que corre en tu pc y hace esta actualizacion desde windows.

Bueno, entro a la configuración de mi router (usualmente es la direccion http://192.168.1.1) y escribo mi nombre de usuario y contraseña. Si estos datos no te los dió tu proovedor de internet, se los puedes pedir. Yo lo hice hace unas horas.

Una vez dentro buscas la opcion llamada DDNS o forwarding. Yo tengo un router de marca BILLION (marca completamente desconocida para mi, pero de suerte si cuenta con soporte para DynDNS).

Configurando mi cuenta de DynDNS en mi router

Configurando mi cuenta de DynDNS en mi router

Una vez ingresados los datos, los guardo y por si acaso, reinicio mi router.

Por último, debes redirigir los puertos de tu router que necesites a una pc en tu zona privada.

Redirigiendo puertos de mi router a mi zona privada

Redirigiendo puertos de mi router a mi zona privada

Por suerte mi router tambien me permite hacer eso. Yo encuentro esa opcion bajo el nombre de NAT, pero es probable que tambien lo puedas encontrar como Forwarding.

Encontre otro post donde explica lo mismo pero usando otro router, talvez te ayude. Ver post.

Actualización – 20 Oct08

Cuando hice este tuto no me funcionó. Si bien los tests me decian que los puertos realmente se abrian en el router, no podia acceder a los servicios que publicaba. Hoy probe conectarme desde mi trabajo y funcionó tal como debia funcionar. Ahora vuelvo a mi casa y ya no funka. Al parecer no puedo probarlo detras de mi router o talvez desde toda la red de telefonica (porque en mi chamba salgo con Americatel).

Manaña intentare irme a una cabina y probarlo desde ahi para descartar lo de la red de telefónica.

Instalar un Web Server sobre openSUSE 11

En junio, si no me equivoco, se liberó la versión estable 11 de openSUSE, una de las mejores distribuciónes de Linux. Mi experiencia con Linux es muy limitada, pero he llegado a aprender algunas cosas (a la fuerza) gracias a la practica y a la ayuda de un compañero de trabajo.

Te mostraré los pasos para instalar tu propio servidor LAMP en openSUSE 11, pero no te alegres tanto, porque si bien al final de este tuto tu servidor estara funcionando, no seria recomendable que lo coloques en la zona pública aún. Para ello debes hacerle un hardening a su servidor y yo no estoy capacitado para eso.

Paso 1: Consigue el instalador de openSUSE 11

Lo puedes descargar desde http://software.opensuse.org/. Es un archivo en formato ISO de 4.3Gb. Este archivo debes volcarlo a un disco DVD. Eso lo puedes hacer con un software como Nero o MagicISO. Puedes buscarte uno gratuito por aquí.

Una vez que hayas quemado la imagen en el dvd empiezas con la instalación.

Paso 2: Empezar a instalar

El disco grabado es booteable, solo asegurate que tu bios busca archivos de inicio en el CDRom antes que en tu disco duro.

Una vez que lo encuentre veras la siguiente pantalla.

openSUSE Install Arranque desde el disco de instalacion

openSUSE Install Arranque desde el disco de instalacion

Eliges Installation para empezar con el proceso. No te preocupes por el ingles, luego lo puedes cambiar.

Una vez iniciada la instalación y continuado con la bienvenida verás esto.

openSUSE Install Modo de instalacion

openSUSE Install Modo de instalacion

Yo elijo la primera opcion porque es lo que quiero hacer, no me interesa lo que actualmente tengo en mi disco duro.

openSUSE Install Zona horaria

openSUSE Install Zona horaria

Luego elijo mi zona horaria y verifico que la hora mostrada sea correcta.

En la siguiente pantalla debo decidir que escritorio gráfico usaré.

openSUSE Install Seleccion de escritorio

openSUSE Install Seleccion de escritorio

Yo elijo el KDE4, pero tu puedes elegir el que mas te guste. Si ya has usado ubuntu alguna vez, entonces debes conocer a Gnome. KDE4 es una nueva version de KDE que trae consigo buenas mejoras gráficas entre otras cosas. En este ejemplo no utilizaras el entorno gráfico.

openSUSE Install Propuesta de particionamiento

openSUSE Install Propuesta de particionamiento

En la siguiente pantalla debes elegir las particiones que deseas crear. Mi amigo me dice que es mejor hacerlo de forma manual, hay unos pasos a seguir. Pero como él esta ocupado dejaré que suse decida. Este no será un servidor de producción, no necesito que todo sea perfecto.

En la ultima parte de la preparación te pregunta por la identidad del servidor. En “Nombre completo” puedes escribir tu nombre. En el siguiente campo te pide el nombre de usuario. Coloca ahi tu nick (no debe tener espacios ni caracteres especiales). Y en los dos ultimos campos tu contraseña (una que elijas). Asegurate de marcar la opcion de “Utilizar esta contraseña para el administrador” (osea, el usuario root).

Una vez que ya he contestado a varias preguntas me muestra el resumen de lo que va a hacer.

openSUSE Install Configuracion de la instalacion

openSUSE Install Configuracion de la instalacion

Yo decido cambiar algunas cosas como el software que va a instalar, no me interesan los juegos o los efectos de pantalla, lo que harán sera ocuparme espacio y memoria.

openSUSE Install Eligiendo los paquetes a instalar

openSUSE Install Eligiendo los paquetes a instalar

Otra cosa a cambiar es el tipo de inicio del sistema. Por defecto inicia en el estado 5 que es el modo gráfico. Como este será un servidor la intención es no gastar memoria en cargar cosas imnecesarias. Por lo tanto, le decimos que inicie en el modo 3.
Te da tres modos:

  • 1: Modo de consola sin red
  • 3: Modo de consola con red (recomendado)
  • 5: Modo gráfico con red

Si inicias por defecto en modo gráfico no hay problema. Puedes usar la consola en cualquier momento.

Conforme empiezas con la instalación, lo primero que hará será preparar el disco duro, lo particionará y formateará de acuerdo a lo decidido anteriormente.

openSUSE Install Preparando el disco duro

openSUSE Install Preparando el disco duro

Luego continuar con la instalación de los paquetes.

openSUSE Install Instalacion de paquetes

openSUSE Install Instalacion de paquetes

openSUSE Install Terminando la instalacion basica

openSUSE Install Terminando la instalacion basica

Una vez haya terminado te pedirá reiniciar. Si dejas el disco de instalación, dentro de la compu, no importa, la primera opcion del menu booteable es “Iniciar desde el disco duro”.

openSUSE Install Configuracion automatica

openSUSE Install Configuracion automatica

De manera automática vuelve al programa de instalacion para configurar los paquetes instalados.

Paso 3: La configuracion de tu LAMP (Linux, Apache, MySQL y PHP)

Una vez que hayas terminado con la instalación empieza lo divertido, la configuración. Depende a el tipo de inicio que hayas elegido puedes seguir de dos maneras:

Si elegiste usar el modo grafico por defecto

Si elegiste iniciar por defecto en modo gráfico has lo siguiente:

Una vez el escritorio este cargado, dale un clic a la iguana verde ubicada en la esquina inferior irquierda y luego escribe la palabra “terminal” en el campo de busqueda ubicado en la parte superior del menu emergente. Dale un clic sobre el primer resultado.

openSUSE Install Abriendo el terminal en KDE4
openSUSE Install Abriendo el terminal en KDE4

Una vez abierto el terminal escribes:

su -

Luego la contraseña que elegiste previamente tal como se muestra en la siguiente imagen. Esto te da los privilegios del usuario root (administrador).

openSUSE Install Ejecutar comandos como root desde la terminal

Te recomiendo que maximices la ventana del terminar porque necesitaras espacio para lo que sigue. El boton de maximixar se encuentra exactamente debajo del cursor (ver última imagen).

Si elegiste el modo de consola por defecto

Entonces una vez que el servidor termine de iniciar te pedira inicies tu sesión. Escribe root como nombre de usuario y luego la contraseña que hayas elegido previamente.

De aqui en adelante los pasos son comunes.

Una vez que te hayas logeado tipeas:

yast

Ahora debes tener al administrador Yast2 en pantalla. Con Yast puedes realizar varios cambios en tu servidor sin necesitad de estar editando archivos de configuración. Te ayuda sobretodo si eres un principiante como yo.

Usa las flechas direccionales para moverte y la tecla <TAB> para saltar de un cuadro a otro o entre los botones.

Paso 3.1: Configurando con Yast

En Network Devices / Network Settings puedes configurar tu tarjeta de red: IP, Nombre, etc. Por defecto usaras DHCP.

openSUSE Install Configurando con Yast

openSUSE Install Configurando con Yast

Ve a Network Services y elige HTTP Server. Luego, asegurate que el puerto de escucha esa el 80 y que Open port in Firewall este seleccionado. Puedes seleccionar y deseleccionar usando la barra espaciadora. No olvides que puedes saltar entre los campos activos usando <TAB>. Vas a la siguiente pagina y activas lo que necesites: PHP5, Perl, etc… Sigues avanzando y veras que este asistente te ofrece varias opciones. Si desearas cambiar algo luego puedes volver a entrar aqui. Recuerda el DocumentRoot, es ahi donde se deben encontrar los archivos que seran visibles desde la web. Usualmente se encuentra en <RAIZ>\srv\www\htdocs.
En la última pantalla te da dos opciones:

  • Start apache2 server when booting
  • Start apache2 server manually

Te recomiendo la primera opción, asi apache2 iniciará de forma automatica al arrancar openSUSE.

Bien, ahora que Apache esta configurado pasamos a mySQL.

Salimos de yast, puedes ir saltando con <TAB> hasta llegar al boton Quit o presional simplemente <F9>. Asi como hecho que el servicio apache2 se inicie automaticamente al arrancar nuestro servidor debemos hacer lo mismo con mySQL. Para ver si el servicio mysql esta configurado para un inicio automatico escribimos lo siguiente:

chkconfig –list | grep mysql

Como resultado tendremos:

openSUSE Install Estado del inicio automatico de un servicio

Te resumo que significa esto: Estos numeros del 0 al 6 representan tipos de inicio del sistema operativo. 3 inicio en modo de consola y 5 el inicio en modo gráfico. Como ves en la imagen el servicio mysql no se iniciará automaticamente en ningun tipo de inicio. Debemos hacer el “off” del estado 3 y 5 se convierta en “on“. Para esto escribimos lo siguiente:

chkconfig mysql on

Asi de simple. Si deseas puedes ejecutar otra vez el comando que te informa del estado del servicio para verificar que realmente en los estados 3 y 5 el servicio mysql a pasado a “on“.

Tambien puedes ejecutar: chkconfig –list | grep apache2 para asegurarte que apache2 este en “on” en los tipos 3 y 5.

Habiendo hecho debes reiniciar tu servidor, para ello ejecuta el comado:

init 6

Con esto ya tienes corriendo tu servidor Apache con PHP y mySQL.

Te dejo algunos comandos que te pueden ser útiles:

init 0 : Apagar el servidor.
init 6 : Reiniciar el servidor.
service apache2 status : Para conocer el estado de un servicio. Puedes cambiar apache2 por el servicio que quieras.
service apache2 start : Para iniciar un servicio. Asimismo, en vez de mysql puede ser apache, sshd, etc.
service apache2 stop : Para detener un servicio.
service apache restart : detiene y vuelve a iniciar un servicio.
ifconfig : Muestra la configuracion de las tarjetas de red.
man nombre_cualquiera : Muestra la ayuda del comando nombre_cualquiera.
ping nombre_host : Hace un ping a un nombre de host o direccion IP, igual que el comando ping de windows. A diferencia que este no se detendra hasta presionar las teclas <CRTL> + <C>.
top : Muestra el estado de los procesos en ejecucion asi como su uso en memoria y procesador. De la misma manera, presiona <CRTL> + <C> para salir.

Si elegiste iniciar en modo consola por defecto y tambien elegiste instalar el escritorio KDE durante la instalación y ahora quieres probarlo, puedes ejecutar el comando startx. Esto iniciará el escritorio KDE usando el usuario actual. Para volver a la línea de comandos simplemente cierra sesión desde el entorno gráfico.

Si por algún motivo la aplicacion con la que tabajases se congelara, puedes reiniciar tu servidor saltando a otro escritorio. Para saltar entre escritorios presiona la tecla <ALT> + <del F1 al F6>. Tienes seis escritorios en modo de consola disponibles. El escritorio gráfico usa el siete. Para saltar del escritorio de comandos al grafico lo puedes hacer con <ALT>+<F7>, y para pasar del escritorio gráfico al de comandos lo debes hacer con <CRTL>+<ALT>+<del F1 al F6>. Recuerda usar las teclas <CRTL> y <ALT> de la izquierda de tu teclado.