Notas sobre MLDonkey

#!/bin/sh
#
# archivo mldonkeyd
# script de inicio mldonkey
#

program=MLDonkey

case "$1" in
    'restart')
        $0 stop
        $0 start
    ;;

    'start')
        # Arranque demonio.
        echo -n "Iniciando $program (mlnet): "
        cd $HOME
        mlnet&
        echo listo
   ;;

   'stop')
       # Stop daemons.
       echo -n "Parando $program: "
       kill `ps -aef | awk '/mlnet/ { print $2}'`
       echo done
   ;;
*)

esac
   exit 0

Es extraordinariamente simple y esta pensado para que MLDonkey se ejecute dentro de tu carpeta de usuario, pero lo importante es que por su simplicidad debe funcionar en cualquier linux. Yo lo guarde en la archivo /home/mi_user/bin/mldonkeyd, así sólo ejecuto desde mi consola remota

> mldonkeyd start

y ¡Tada! MLDonkey se esta corriendo como demonio.

Ahora, sin NO están usando MLDonkey en una maquina remota pueden tener acceso a él en la página http://127.0.0.1:4080/. Pero como yo si lo estoy usando en una maquina remota esa no es una opción, salvo que esta sea un servidor con Apache HTTP Server Project entonces añadiría el archivo /etc/apache2/conf.d/mldonkey.conf y le pondria lo siguiente:


ProxyRequests Off
ProxyPass /~mi_user/MLDonkey http://localhost:4080
ProxyPassReverse /~mi_user/MLDonkey http://localhost:4080

Ojo! para que esto funcione debes tener instalado el mudolo porxy de Apache. Así ya tienes acceso a tu MLDonkey desde una pagina del estilo http://mi_servidor/~mi_user/MLDonkey pero… aunque sea una solución práctica, no lo recomiendo pues cualquiera podría atascar tu servidor bajando basura. Seguro hay modo de protejer tu página, desde usar mod_auth de Apache hasta funciones internas de MLDonkey. Pero eso sería un quebradero de cabeza. Entonces… ¿por que escribí esto? Pues por que es un ejemplo muy simple de uso de mod_proxy y no quiero olvidar como se hace 😀

Si ya vieron el GUI (Graphical User Interface) web se dieron cuenta de que… ¿como decirlo?… esta feo y complicado de usar. Por suerte programadores hábiles del la onda OpenSource nos han resuelto la vida y hay variedad de GUI’s para MLDonkey, en particular openSuSE 10.3 y 11.00 viene MLDonkey-gui pero tampoco me convenció. Asi que probé
Sancho, y ¡wow!

¿Por que wow? pues por que super fácil de instalar y tiene lo que yo buscaba, poder conectarse al MLDondkey desde SSH. Lo que significa no tener que abrir puertos de mas ni en mi maquina local y en la remota lo que es igual mayor seguridad. Bajas este bonito software de su página Sancho-gui.SourceForge la versión compilada para Linux (sancho-x.x.x-linux-gtk.sh) y lo instalas desde la consola:

> cd ~/Desktop                    <--- baje el sancho al escritorio :D
> sh sancho-0.9.4-58-linux-gtk.sh
Extract to directory []: /home/mi_user/.sancho
Creating directory sancho-0.9.4-58-linux-gtk
Verifying archive integrity... All good.
Uncompressing sancho-0.9.4-58-linux-gtk.................................................
Copying language files to   ...
Done.
All done.
> 

Esto crea la carpeta /home/mi_user/.sancho con todos los binarios e hice una acceso directo al binario en la carpeta ~/bin

> ln - ~/.sancho/sancho ~/bin/sancho

Con eso puedes ejecutar el comando sancho desde tu cuenta desde el lugar que quieras.

Cuando corres Sancho por primera vez te pide que lo configures, si usas MLDonkey de forma local, es decir en tu misma maquina, deja todo tal y como esta y dale siguiente o aceptar a todo. Sino cuando estés en Core settings (configuración del núcleo) palomea Use ssh2 port forwarding tunnel (advanced option) en “SSH Host:” escribe la ip o el nombre de tu maquina remota, en “SSH user:” el usuario con el que configuraste e iniciaste el demonio en la maquina remota, “SSH pass” es tu contrseña, la documentación de Sancho recomienda dejar este espacio vació, pues no tiene una forma segura de guardarla. Lo demás déjalo como esta de forma predeterminada.

Por ultimo, cuando yo intente entra me mando el error “com.jcraft.jsch.jschexception: auth fail”, para solucionar esto en tu maquina remota edita el archivo /etc/ssh/sshd_config:

[...]
# Cambiar 'PasswordAuthentication no' por:
PasswordAuthentication yes
[...]

Configuración

Esta sección son loqueras mías, jugando con la configuración. Antes que nada los GUI no son muy buenos para manejar la configuración así que me conecto con el telnet, a continuación los comandos que uso, sin explicaciones pues no si si fuera a funcionar, lo pongo solo para no olvidar que hice.

~> telnet 127.0.0.1 4000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Welcome to MLDonkey 2.9.5
Welcome on mldonkey command-line

Use ? for help

> shares
Shared directories:
  0 shared all_files
  0 incoming/files incoming_files
  0 incoming/directories incoming_directories

> unshare shared
directory removed

> unshare incoming/files
directory removed

> unshare incoming/directories
directory removed

> shares
Shared directories:
  0 incoming/directories incoming_directories
  0 incoming/files incoming_files

> share 0 /home/paris/Documents/Downloads all_files
directory /home/paris/Documents/Downloads added

> share 0 /home/paris/Documents/Downloads/files incoming_files
directory /home/paris/Documents/Downloads/files added

> share 0 /home/paris/Documents/Downloads/directories incoming_directories
directory /home/paris/Documents/Downloads/directories added

> shares
Shared directories:
  0 /home/paris/Documents/Downloads/directories incoming_directories
  0 /home/paris/Documents/Downloads/files incoming_files
  0 /home/paris/Documents/Downloads all_files
  0 incoming/directories incoming_directories
  0 incoming/files incoming_files


> unshare incoming/files
directory removed

> unshare incoming/directories
directory removed


> shares
Shared directories:
  0 /home/paris/Documents/Downloads/directories incoming_directories
  0 /home/paris/Documents/Downloads/files incoming_files
  0 /home/paris/Documents/Downloads all_files


Espero que a alguien le sirva aparte de ami.

Saludos!