Mldonkey e interfaz gráfica Sancho en Gentoo

Acabo de descubrir el mejor front-end para acceder a mldonkey. Ya he hablado de mldonkey en mi blog anteriormente aunque no muy extensamente, así que voy a comentaros en que consiste mldonkey.

Mldonkey es un programa P2P (Peer 2 peer) que permite compartir archivos a la vez que bajar lo que lo demas comparten, se puede encontrar muy material ilegal (peliculas, musica…) pero también hay disponible muchas otras cosas legales como documentación, CDs de Linux, etc…

Concretamente mldonkey tiene las siguientes caracteristicas:

  • Conexión a multiples redes P2P, la principal es la red edonkey2000 pero también puede conectarse a la red Kazaa, gnutella, servidores direct connect…. Por tanto hay muchas mas posibilidades de encontrar lo que buscamos 🙂
  • Separación de la interficie del usuario del núcleo del programa. El núcleo se encarga de conectarse a las redes, compartir y bajar archivos, etc… Para poder administrar el núcleo es necesario utilizar una interficie independiente, esto nos permite hacer que el núcleo funcione como un demonio del sistema… se inicia en el arranque y se detiene al parar la máquina, por tanto, si por casualidad se nos colgase la interfaz gráfica no perderiamos la conectividad con las redes P2P y continuaria bajando. Podriamos cambiar de sesion en la interficie grafica entre diferentes usuarios y mldonkey seguirá trabajando por su cuenta. Las interficies graficas solo seran necesarias para acceder al núcleo para realizar nuevas busquedas o controlar el estado.
  • Diferentes tipos de interfaces: telnet, web e interficie gráfica. Podemos acceder al núcleo desde la consola haciendo telnet al puerto 4000, podemos acceder a traves de una interficie web apuntando nuestro navegador al puerto 4080 o podemos utilizar diferentes interficies gráficas (escritas con GTK, QT, java…).
  • La interficie no tiene porque estar en el mismo ordenador donde se esta ejecutando el núcleo de mldonkey. Es posible conectarte con el núcleo desde otro ordenador conectado en red (Internet o red local), en mi caso esto me permite tener 1 servidor mldonkey al cual puedo acceder desde mi sobremesa o portatil y además mi hermano puede utilizar desde su MS Windows. Con esto ahorramos ancho de banda ya que solo tenemos 1 programa P2P con nuestra conexión ADSL y no 2 (cosa que deteriora muchisimo la conexión).

A primera vista parece una maravilla de programa, cual es la pega más importante? La configuración inicial es algo engorrosa ya que se lleva a cabo editando archivos. Os voy a explicar como hacerlo en una Gentoo ya que esta distribución facilita bastante el uso de mldonkey, para empezar hay que instalar mldonkey:

emerge mldonkey

Esto instalara el programa y también creará el usuario “p2p” en el sistema, el demonio que correra el núcleo de mldonkey será ejecutado con ese usuario. Lo primero que podemos hacer es iniciar el demonio:

/etc/init.d/mldonkey start

De esta forma se crearan los archivos de configuración básicos en el directorio del usuario “p2p”, concretamente en /home/p2p/.mldonkey/. Ahora ya podemos parar el demonio:

/etc/init.d/mldonkey stop

Vamos ahora a editar el archivo /home/p2p/.mldonkey/downloads.ini, es importante que siempre que hagamos un cambio en la configuración el demonio mldonkey este parado, de lo contrario perderemos todos nuestros cambios ya que el mldonkey va reescribiendo este fichero de vez en cuando. Lo más importante que debemos indicar en el downloads.ini es (todas las opciones estan comentadas en el archivo que estais editando):

  • El nombre del cliente:
    client_name = test
    
  • Desde donde se va a poder acceder a este nucleo, en muchas ocasiones no se querra dar la posibildiad de acceder desde el exterior pq vamos a correr el demonio y la interficie en la misma máquina, en esos casos con 127.0.0.1 ya es suficiente:
    allowed_ips = [
      "127.0.0.1";
      "192.168.0.255";]
    
  • Restricciones para las conexiones y descargas:
     max_hard_upload_rate = 3
     max_hard_download_rate = 15
     max_opened_connections = 50
     max_upload_slots = 3
     dynamic_slots = false
     max_connections_per_second = 2
     nolimit_ips = [
      "127.0.0.1";]
    
  • Las redes a las que queremos que se conecte:
     enable_overnet = true
     enable_bittorrent = true
     enable_donkey = true
     enable_opennap = true
     enable_soulseek = true
     enable_gnutella = true
     enable_gnutella2 = true
     enable_fasttrack = true
     enable_directconnect = true
     enable_fileTP = true
    
  • De donde queremos que coga información sobre servidores disponibles a los que conectarse, a mi me funcionan muy bien los siguientes:
     web_infos = [
      ("guarding.p2p", 1, "http://homepage.ntlworld.com/tim.leonard1/guarding.p2p");
      ("server2000.met", 1, "http://www.edonkey2000.com/server.met");
      ("servermaurice.met", 1, "http://ocbmaurice.dyns.net/pl/slist.pl?download");
      ("serverbest.met", 1, "http://2z4u.de/74d6tehh/min/server.met");
      (ocl, 1, "http://members.lycos.co.uk/appbyhp2/FlockHelpApp/contact-files/contact.ocl");]
    
  • Establecer el número máximo de descargas simultaneas:
    max_concurrent_downloads = 20
    
  • Que nos envie un mail cuando se ha finalizado una descarga (esta característica es muy útil):
     smtp_server = "127.0.0.1"
     smtp_port = 25
     mail = "mail@servidor.com"
     add_mail_brackets = false
     filename_in_subject = true
    
  • Donde se guardan las descargas temporales y finales:
     temp_directory = "/mnt/extra05/mldonkey/temp"
     incoming_directory = "/mnt/extra05/mldonkey/incoming/"
    
  • Que directorios queremos compartir:
     default_sharing_strategy = all_files
     shared_directories = [
      {     dirname = "/mnt/extra02/musica"
         networks = []
         strategy = all_files
         priority = 0
    };
      {     dirname = shared
         networks = []
         strategy = all_files
         priority = 0
    };]
    

Echad una ojeada al resto del fichero por si os interesa cambiar algún parámetro más, pero los que he comentado son los más importantes quizás.

Os recomiendo que hagais copia de seguridad de la configuración pq mldonkey es muy puñetero a veces, si por ejemplo encuentra algun error en la sintaxis eliminará los cambios que hayais efectuado.

Llegados este punto ya podemos iniciar el demonio mldonkey de nuevo:

/etc/init.d/mldonkey start

E incluso podemos hacer que se inicie automáticamente en el arranque:

rc-update add mldonkey default

Ahora podemos probar las interfaces que trae por defecto:

  • Acceso por telnet:
    telnet localhost 4000
    
  • Acceso por web:
    http://localhost:4080
    
  • Acceso por interfaz gráfica GTK:
    mlgui
    

El usuario por defecto que tiene mldonkey es “admin” y su password esta vacio. Es posible cambiarlo utilizando el acceso telnet y ejecutando “add_user admin password” y por supuesto también es posible añadir nuevos usuarios, aunque para todos sale la misma cola de descarga.

Una cosa muy interesante del demonio de Gentoo es que podemos regular la velocidad de mldonkey por comando, para esto hay que editar /etc/conf.d/mldonkey y especificar que limites se quieren para el modo slow y para el modo fast (si indicamos 0 significa ilimitado):

# bandwidth control, values in kb/s
LOW_DOWN="15"
LOW_UP="3"
HIGH_DOWN="26"
HIGH_UP="7"

Si hemos cambiado el password de admin es importante especificar tb:

# to enable password restricted access,
# uncomment and set BOTH following vars:
USERNAME="admin"
PASSWORD="secret"

De esta forma podemos ejecutar:

/etc/init.d/mldonkey slow

Para ponerlo en modo slow (lento) y:

/etc/init.d/mldonkey fast

Para ponerlo en modo fast (rápido). Yo utilizo esto para que automáticamente por la noche se ponga a fast y durante el dia este a slow y asi no nos molesta la navegación, lo hago mediante el cron. Como usuario root ejecutamos:

crontab -e

Y añadimos:

0   2 * * *    /etc/init.d/mldonkey fast &>/dev/null
0   10 * * *   /etc/init.d/mldonkey slow &>/dev/null

De esta forma a las 2 de la madrugada se pondra en fast y a las 10 de la mañana volvera ponerse en slow.

En este punto vemos que las interfaces que tenemos por defecto para acceder a mldonkey estan bastante bien, pero hoy mismo he descubierto una nueva que me ha encantado, se trata de Sancho. Esta escrito en java pero utiliza la libreria gráfica SWT, lo que hace que en linux lo veamos como cualquier aplicación GTK y en MS Windows con el típico look de los programas de ese sistema.

Esta interfaz es fantastica, utiliza el area de notificación de gnome y visualmente es muy atractiva. Aún recuerdo cuando se decia que en GNU/Linux el tema de los programas P2P estaba muy verde pero ahora ya disponemos de aplicaciones tremendamente potentes y atractivas.

Os explicaré como instalar Sancho en Gentoo ya que la versión actual del portage falla pq no puede encontrar el fichero necesario para descargar (si a vosotros os funciona con un simple emerge sancho-bin entonces perfecto, ignorar lo que viene a continuación). Para poder instalarlo tendremos que “crear” nuestro propio ebuild, y pongo crear entre comillas pq solo vamos a copiar el existente y cambiarle la versión. Para esto necesitamos que en el /etc/make.conf tengamos:

PORTDIR_OVERLAY=/usr/local/portage

Es decir, en /usr/portage estan los ebuilds principales de Gentoo y en /usr/local/portage podemos poner los ebuilds que queramos nosotros, de esta forma no se perderan al hacer un emerge sync. Ahora debemos crear el directorio y copiar el ebuild:

mkdir -p /usr/local/portage/net-p2p/sancho-bin/
cp /usr/portage/net-p2p/sancho-bin/sancho-bin-0.9.4.5-r1.ebuild                                                                                                                /usr/local/portage/net-p2p/sancho-bin/

Cambiamos el nombre del ebuild para que corresponda a la última versión de Sancho actualmente disponible:

cd /usr/local/portage/net-p2p/sancho-bin/
mv sancho-bin-0.9.4.5-r1.ebuild sancho-bin-0.9.4.6.ebuild

Descargamos el fichero:

emerge -pv sancho-bin
emerge -f sancho-bin

Creamos los ficheros MD5:

cd /usr/local/portage/net-p2p/sancho-bin/
ebuild sancho-bin-0.9.4.6.ebuild digest

Y finalmente instalamos:

emerge sancho-bin

La aplicación ya esta compilada, cosa que hara que se instale rápido. A pesar de esto también podriais bajaros el código fuente y compilarlo a mano, el programa esta bajo la licencia GPL. Para ejecutarlo basta con teclear “sancho”, seguid los pasos del asistente y especificar a que núcleo quereis conectaros.

Como añadido si quereis que os aparezca la interfaz en castellano podeis bajaros el archivo de traducciones de la web de sancho y copiarlo en el directorio de vuestro usuario “/home/user/.sancho/”, despues debereis seleccionarlo en las preferencias de la aplicación.

Tanto desde la interficie gráfica mlgui que trae por defecto mldonkey como desde Sancho es posible configurar muchos parámetros del núcleo de mldonkey, por tanto esto nos puede ahorrar tener que editar más archivos de configuración a mano 🙂

Al principio pensaba comentar por encima en mi blog la buena impresión que me ha causado Sancho, pero al final me ha salido un artículo sobre mldonkey muy completo que he preferido compartirlo aqui también 🙂
Autor: marble

This entry was posted in Gentoo. Bookmark the permalink.

5 Responses to Mldonkey e interfaz gráfica Sancho en Gentoo

  1. jBilbo says:

    Muy bueno el artículo, me hacía falta una guía de éste tipo para mldonkey.

    El otro día instalé g2gui, la nueva interfície gráfica oficial del proyecto mldonkey, y aunque pinta muy bien, se me cuelga al comenzar, esta muy verde y en gentoo esta masked. Probaré el sancho, me echaba para atrás lo que ocupa en principio xD

    Por otro lado, el fallo del ebuild de sancho veo que no esta reportado en el bugzilla de gentoo, podrías añadir un pequeño report y así no le pasará a más gente, tiene arreglo fácil.

    PD: Hay un bug en los comentarios O_o en los párrafos, te pone un br de más… me acabo de dar cuenta.

  2. gerard says:

    Posiblemente el mejor articulo aparecido en gpltarragona.

    Otra cosa, conoceis http://planet.bulma.net/ un planet de varios lugs, no creeis q deberiamos darnos de alta?

  3. jBilbo says:

    Por otro lado, el fallo del ebuild de sancho veo que no esta reportado en el bugzilla de gentoo, podrías añadir un pequeño report y así no le pasará a más gente, tiene arreglo fácil.

    Alguien lo ha reportado ya.

    PD: Hay un bug en los comentarios O_o en los párrafos, te pone un br de más… me acabo de dar cuenta.

    Ya esta arreglado.

  4. jBilbo says:

    no creeis q deberiamos darnos de alta?

    Esta en marcha.

  5. Anonymous says:

    he seguit tots els pasos de configuracio que possava aquest article. Desde linux no aconsegueixo que sem conecti a cap servidor i desde windows no aconsegueixo que la gui de sancho es conecti. Al fitxer de configuracio o tinc posat aixins (suposo que estara be, sino ja se on la cago XD)
    allowed_ips = “127.0.0.1 192.168.0.255”
    i per lo de no conectarse a cap servidor em sabrieu explicar que pot ser que fagi malament?
    Si cal mirare de penjar a algun puesto el fitxer de configuracio o el miro de posar resumit aqui.

Leave a Reply