Mldonkey

Por Paco Aldarias Raya

Impreso: 24 de agosto 2009

Email: pacolinux arroba aldarias punto es

Web: http://www.aldarias.es

Con Linux Debian. En Valencia (España)

El documento tiene version .html, y .pdf, cambiando en el navegador la parte final podrás acceder a ambos.

Este documento es de libre reproducción siempre que se cite su fuente.

Realizado con: LATEX

Índice General

1 Introducción

Mldonkey, "multi-networks file-sharing client" Es un sistema de compartir archivos de multired.

Es un programa p2p.

Redes a las que accede: Soulseek, Donkey, FileTP, Fasttrack, G2, Gnutella, Open Napster, Direct Connect.

El cliente (navegador web, kmldonkey, telnet) no funciona, sino tenemos el servidor en marcha (mlnet).

2 Instalación

2.1 Instalarlo por apt

Desde consola como root:
apt-get install mldonkey-server mldonkey-gui kmldoneky

Para lanzarlo:

mkdir /home/paco/mldonkey
cd /home/paco/mldonkey
mlnet &

2.2 Bajandose el fichero

Hay que bajarse este fichero:

mldonkey-2.5.11.tar.gz

De aquí:

http://savannah.nongnu.org/download/mldonkey/

2.2.1 Descomprimirlo

mkir /soft/ml

cd /soft/ml

tar zxf mldonkey-2.5.11.tar.gz

2.2.2 Instalación de paquetes

apt-get install m4 zlibc zlib1g zlib1g-dev

2.2.3 Compilando

2.2.4 Ponerlo en marcha

mkdir /home/paco/ml/

cp /soft/ml/mldonkey-2.5.11/mlnet /home/paco/ml/

cd /home/paco/ml/

nice -19 ./mlnet

3 Mantener los ficheros temporales

Copiar los ficheros: friends.ini, files.ini and shared_files_new.ini a la carpeta de trabajo.

Mas información aqui: http://mldonkey.berlios.de/modules.php?name=Wiki&pagename=Clean

4 Usuarios

Una vez arrancado el servidor entraremos para la gestión de usuarios.

Entramos al servidor: telnet 127.0.0.1 4000

Esto añade el usuario pepe:

useradd pepe  passpepe

Le damos contraseña al usuario admin que es el de administración (y que trae por defecto) de mldonkey.

useradd admin nueva_pass

5 Utilidad de kde: kmldonkey

Kmldonkey permite ver lo q se esta bajando y controlar la velocidad de mldonkey

Instalarlo, desde consola como root:

apt-get install kmldonkey

Ejecutarlo:

kmldonkey

6 Abrirendo el navegador

http://127.0.0.1:4080

7 Configuración

7.1 donkey.ini

Número de servidores
max_connected_servers = 3

7.2 downloads.ini

Ip que pueden conectarse:
allowed_ips = [
  "127.0.0.1" "255.255.255.255";]

Velocidad máxima de upload:
max_hard_upload_rate = 5

Velocidad máxima de download:
max_hard_download_rate = 15

Permite conectarse a la red opennap:
enable_opennap = true

Directorio temporal de fichero mientras se esta bajando:
temp_directory = "/wine/mp3/temp/"

Directorio donde se guardan los ficheros ya bajados:
incoming_directory = "/wine/mp3/ok/"

7.3 mldonkey_previewer

#!/bin/sh

MOVIE_PLAYER=mplayer
REAL_PLAYER=realplayer
AUDIO_PLAYER=xmms

SHELL=${SHELL:-/bin/sh}
PAGER=${PAGER:-less}
XTERM=${XTERM:-xterm}

#hack
DISPLAY=${DISPLAY:-:0.0}
export DISPLAY

echo Local File is "$1"
echo Pseudo file name is "$2"
echo Detected format is "$(file -b $1)"

case "$(echo $2|tr A-Z a-z)" in

 *.avi | *.divx | *.ogm | *.mpg | *.mpeg)
   exec $MOVIE_PLAYER  "$1" &
   ;;
 *.rm | *.ram)
   exec $REAL_PLAYER "$1" &
   ;;
 *.mp3 | *.ogg | *.wav)
   exec $AUDIO_PLAYER  "$1" &
   ;;
 *.zip)
   exec $XTERM -T "$2" -e $SHELL -c "unzip -v '$1' 2>&1 | $PAGER" &
   ;;
 *.rar)
   exec $XTERM -T "$2" -e $SHELL -c "unrar v '$1' 2>&1 | $PAGER" &
   ;;
 *.ace)
   exec $XTERM -T "$2" -e $SHELL -c "unace v '$1' 2>&1 | $PAGER" &
   ;;
 *)
   exec $XTERM -T "$2" -e $PAGER "$1" &
   ;;
esac

8 Mldonkey desde consola

# Por Paco Aldarias. v.1.2 06.09.2007
#! /bin/bash

# Acceso
usu="miusu"
pass="mispass"

# Velocidad
lentoup=1
lentodown=50
rapidoup=100
rapidodown=15

#********************
function exportar
# Ejemplo: dllink ed2k://|file|02-Roma_2.avi|474486784|F1DCFAB73A68F1126AFFDC4E1788B295|/
{
>ml.export
#Cogemos los numero de fichero
num=$(echo -e "auth $usu $pass \n vd\nq" | nc 127.0.0.1 4000 | grep "\[D" | awk '{print $2}' | cut -d"]" -f1)
for i in $(echo $num);do
  a=$(echo -e "auth $usu $pass \n vd $i \nq" | nc 127.0.0.1 4000 | grep ed2k | cut -c 10-)
  b=$(echo -e "auth $usu $pass \n vd $i \nq" | nc 127.0.0.1 4000 | awk '/Probable/ {print $3}')
  c=$(echo -e "auth $usu $pass \n vd $i \nq" | nc 127.0.0.1 4000 | awk '/Total/ {print $2}')
  echo "ed2k://|file|$b|$c|$a|/" >> ml.export
done
echo fichero generado: ml.export
cat ml.export
}

#********************
function importar
{
for i in $(cat ml.export);do
echo -e "auth $usu $pass \n dllink $i \n q" | nc 127.0.0.1 4000
done
}

#*********************
function cancelar
{
echo -e "auth $usu $pass\n cancel $1 \n" | nc 127.0.0.1 4000
}


#*********************
function conectar
{
echo -e "auth $usu $pass\n ? \n" | nc 127.0.0.1 4000
}



#*********************
function help
{
echo -e "auth $usu $pass\n longhelp \nq" | nc 127.0.0.1 4000
}

#*********************
function comando
{
echo -e "auth $usu $pass \n $1 \n q" | nc 127.0.0.1 4000
}


#*********************
function link
{
echo "telnet 127.0.0.1 4000"
echo "auth $usu $pass"
echo "dllink  fichero"
echo -e "auth $usu $pass \n dllink $1 \n q" | nc 127.0.0.1 4000
}

#****************************
function velocidad
{
echo "****************************"
case "$1" in
start)
echo "DOWN: $rapidodown   UP: $rapidoup"

echo -e "auth $usu $pass\n \
set max_hard_download_rate $rapidodown \n \
set max_hard_upload_rate $rapidoup \n \
q \
" | nc 127.0.0.1 4000 \
;;
stop)
echo "DOWN: $lentodown   UP: $lentoup"
echo -e "auth $usu $pass\n \
set max_hard_download_rate $lentodown \n \
set max_hard_upload_rate $lentoup \n \
q \
" | nc 127.0.0.1 4000
;;
*)      echo "Uso: rate.sh start|stop"
        exit 1
        ;;
esac
}

#********************************
function arranque
{
case "$1" in
"stop")
killall mlnet
;;
"start")
cd /home/paco/.mldonkey/
mlnet &
;;
*)      echo "$0 arranque start|stop"
        exit 1
        ;;
esac
}

#***************************
function borrar
{
echo -e "auth $usu $pass \n cancel $1 \n confirm yes \n q" | nc 127.0.0.1 4000
}


#***************************
function descargas
{
echo -e "auth $usu $pass \n vd\nq" | nc 127.0.0.1 4000
}

#***************************
function propiedades
{
echo -e "auth $usu $pass \n vd $1 \nq" | nc 127.0.0.1 4000
}


#*********************
function opciones
{

echo "Valores:"
echo "RAPIDO. DOWN: $rapidodown   UP: $rapidoup"
echo "LENTO.  DOWN: $lentodown   UP: $lentoup"

echo "opciones:"
echo "0. Salir"
echo "h. Ayuda de comandos"
echo "a. Arranque start/stop"
echo "v. start/stop. Velocidad start/stop "
echo "d. Descargas"
echo "l. Link ed2k://"
echo "c comando. Comando directo"
echo "p num. Ver propiedades fichero"
echo "b num. Borra fichero"
echo "t. Conectar"
echo "e. Exportar"
echo "i. Importar"
}


#**************** MAIN


case "$1" in
0)
   exit
   ;;
b)
   borrar $2
   ;;
p)
   propiedades $2
   ;;
t)
    conectar
    ;;
a)
    arranque $2
    ;;
v)
    velocidad $2
    ;;
d)
    descargas
    ;;
h)
    help
    ;;
c)
    comando $2
    ;;
l)
   link "$2"
   ;;

e)
   exportar
   ;;

i) importar
   ;;

*)
   echo "SINTASIS: $0 opcion valor"
   opciones
   exit 1
   ;;
esac

9 Añadir un enlace bittorent desde consola

Los carácteres extraños va entre comillas:

dllink "sdflfk()().torrent"

Si el fichero semilla esta en una carpeta:

dllink /usr/local/mldonkey/torrent/seeded/******.torrent

10 Añadir un elink usando telnet

dllink xxxxxxx.ed2k

11 Conectar por ssh desde consola

ssh -v -L4001:127.0.0.1:4001 usuario@Mimaquina.no-ip.com

12 Mandar ordenes desde consola

Sacaría la lista (vd) de ficheros que estamos descargando y la metería en el fichero descargas.txt. La q (quit) es para salir del mldonkey y volver a la línea de comandos:

echo -e "vd\nq" | nc 127.0.0.1 4000 > descargas.txt

Para que me muestre los ficheros de los que en ese preciso momento estoy bajando efectivamente algo:

alias bajadas_donkey='echo -e "vd\nq" | nc 127.0.0.1 4000 | grep "^.\[34m\[D"'

13 Script para controlar la velocidad: rate.sh

Con eso no hace falta apagar mldonkey, cuando uno necesita más o menos velocidad.

Desde consola como root, escribir:

nano rate.sh

#! /bin/bash

case "$1" in
start)
echo -e "auth admin mipassword\n
set max_hard_download_rate 50 \n
set max_hard_upload_rate 7 \n
q
" | nc 127.0.0.1 4000


;;
stop)
echo -e "auth admin mipassword\n
set max_hard_download_rate 5 \n
set max_hard_upload_rate 3 \n
q
" | nc 127.0.0.1 4000

;;
*)      echo "Uso: rate.sh start|stop"
        exit 1
        ;;
esac

Darle permisos de ejecución:
chmod 700 rate.sh

Ejecutarlo:
./rate.sh start

Ejecutarlo:
./rate.sh stop

14 Entrar a tu mldonkey desde el exterior: set_allowed_ips

Entrar desde consola con telnet: telnet localhost 4000

Poner estas ordenes:

 set allowed_ips 192.168.1.88
 save

15 Como conseguir la lista de servidores

Cuando no conecta a los servidores debemos pasarle la lista

telnet localhost 4000
servers /ruta/server.met

16 Control remoto: ml.sh

#! /bin/bash

#++++++++++ cambiar esto

# Acceso
usu="misuario"
pass="miscontrasenya"

# Velocidad
lentoup=1
lentodown=50
rapidoup=100
rapidodown=15

#++++++++++ fin cambiar esto

#*********************
function cancelar
{
echo -e "auth $usu $pass\n cancel $1 \n" | nc 127.0.0.1 4000
}


#*********************
function conectar
{
echo -e "auth $usu $pass\n ? \n" | nc 127.0.0.1 4000
}



#*********************
function help
{
echo -e "auth $usu $pass\n longhelp \nq" | nc 127.0.0.1 4000
}

#*********************
function comando
{
echo -e "auth $usu $pass \n $1 \n q" | nc 127.0.0.1 4000
}


#*********************
function link
{
echo "telnet 127.0.0.1 4000"
echo "auth $usu $pass"
echo "dllink  fichero"
echo -e "auth $usu $pass \n dllink $1 \n q" | nc 127.0.0.1 4000
}

#****************************
function velocidad
{
echo "****************************"
case "$1" in
start)
echo "DOWN: $rapidodown   UP: $rapidoup"

echo -e "auth $usu $pass\n \
set max_hard_download_rate $rapidodown \n \
set max_hard_upload_rate $rapidoup \n \
q \
" | nc 127.0.0.1 4000 \
;;
stop)
echo "DOWN: $lentodown   UP: $lentoup"
echo -e "auth $usu $pass\n \
set max_hard_download_rate $lentodown \n \
set max_hard_upload_rate $lentoup \n \
q \
" | nc 127.0.0.1 4000
;;
*)      echo "Uso: rate.sh start|stop"
        exit 1
        ;;
esac
}

#********************************
function arranque
{
case "$1" in
"stop")
killall mlnet
;;
"start")
cd /home/paco/.mldonkey/
mlnet &
;;
*)      echo "$0 arranque start|stop"
        exit 1
        ;;
esac
}

#***************************
function borrar
{
echo -e "auth $usu $pass \n cancel $1 \n confirm yes \n q" | nc 127.0.0.1 4000
}


#***************************
function descargas
{
echo -e "auth $usu $pass \n vd\nq" | nc 127.0.0.1 4000
}

#***************************
function propiedades
{
echo -e "auth $usu $pass \n vd $1 \nq" | nc 127.0.0.1 4000
}


#*********************
function opciones
{

echo "Valores:"
echo "RAPIDO. DOWN: $rapidodown   UP: $rapidoup"
echo "LENTO.  DOWN: $lentodown   UP: $lentoup"

echo "opciones:"
echo "0. Salir"
echo "h. Ayuda de comandos"
echo "a. Arranque start/stop"
echo "v start/stop. Velocidad start/stop "
echo "d. Descargas"
echo "l. Link ed2k://"
echo "c comando. Comando directo"
echo "p num. Ver propiedades fichero"
echo "b num. Borra fichero"
echo "t. Conectar"
}


#**************** MAIN


case "$1" in
0)
   exit
   ;;
b)
   borrar $2
   ;;
p)
   propiedades $2
   ;;
t)
    conectar
    ;;
a)
    arranque $2
    ;;
v)
    velocidad $2
    ;;
d)
    descargas
    ;;
h)
    help
    ;;
c)
    comando $2
    ;;
l)
   link "$2"
   ;;
*)
   echo "SINTASIS: $0 opcion valor"
   opciones
   exit 1
   ;;
esac

17 Puertos para que funcione el router y mldonkey

Hay que rediguir los siguientes puertos:

2 	192.168.2.2 	TCP+UDP 	6881-6882 	DONKEY1
3 	192.168.2.2 	TCP+UDP 	5235-5239 	DONKEY2
4 	192.168.2.2 	TCP+UDP 	4530 	DONKEY3
5 	192.168.2.2 	TCP+UDP 	10358 	DONKEY4

18 Bibliografía

  1. Web con cvs:
    http://savannah.nongnu.org/cvs/?group=mldonkey

  2. Mldonkey. Web Oficial.
    http://mldonkey.berlios.de/

  3. Mldonkey.
    FAQ http://www.nongnu.org/mldonkey/faq.html.es

  4. Mldonkey. Manual
    http://www.bandaancha.st/documentos.php?docid=48

  5. Mldonkey mldonkey_previewer
    http://mldonkey.berlios.de/modules.php?name=Wiki&pagename=mldonkey_previewer

  6. MLDonkey en 10 minutos
    http://bulma.net/body.phtml?nIdNoticia=2028

Índice de Materias

p2p
1
mldonkey
1

Sobre este documento...

Mldonkey

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html mldonkey -split 0 -local_icons 1 -show_section_numbers -no_auto_link -no_navigation -html_version 4.0

The translation was initiated by paco on 2009-08-24


paco 2009-08-24