Raspberry Pi como servidor Servicio MLDonkey Raspberry Pi como servidor Servicio MLDonkey R.23.6 @aula30x@masto.es Indice 0 Escenario.......................................................................................................................................................1 1 MLDonkey....................................................................................................................................................2 1.1 Instalación............................................................................................................................................2 1.2 Primeras comprobaciones..................................................................................................................3 2 Configuración básica..................................................................................................................................4 2.1 Acceso a la interfaz web desde cualquier máquina.......................................................................4 2.2 Contraseña del administrador..........................................................................................................4 2.3 Carpetas de descargas........................................................................................................................4 3 Descargar archivos......................................................................................................................................5 4 Gestionar las descargas desde el móvil....................................................................................................7 5 Apéndice. mldonkey-server vs mlnet......................................................................................................7 6 Referencias...................................................................................................................................................8 0 Escenario • • Hardware: ◦ Raspberry Pi 1 Modelo B Software: ◦ MLDonkey 3.1.3 1/8 Raspberry Pi como servidor Servicio MLDonkey 1 MLDonkey 1.1 Instalación Instalación. apt-get install mldonkey-server En la carpeta /var/lib/mldonkey encontramos los archivos de configuración y las carpetas de descargas. La configuración se realiza en una serie de archivos .ini pi@guara ~ $ ls /var/lib/mldonkey/*.ini /var/lib/mldonkey/bittorrent.ini /var/lib/mldonkey/searches.ini /var/lib/mldonkey/bt_dht.ini /var/lib/mldonkey/servers.ini /var/lib/mldonkey/directconnect.ini /var/lib/mldonkey/shared_files.ini /var/lib/mldonkey/donkey.ini /var/lib/mldonkey/shared_files_new.ini /var/lib/mldonkey/downloads.ini /var/lib/mldonkey/statistics.ini /var/lib/mldonkey/fasttrack.ini /var/lib/mldonkey/stats_bt.ini /var/lib/mldonkey/files.ini /var/lib/mldonkey/stats.ini /var/lib/mldonkey/file_sources.ini /var/lib/mldonkey/stats_mod.ini /var/lib/mldonkey/fileTP.ini /var/lib/mldonkey/users.ini /var/lib/mldonkey/friends.ini Por ejemplo, uno de los parámetros importantes que debemos conocer es el puerto para la administración vía web. Fichero /var/lib/mldonkey/donwloads.ini http_port = 4080 Los directorios de descargas también están ubicados en /var/lib/mldonkey: temp donde se guardan los archivos mientras se están descargando incoming/directories donde se guardan los directorios ya descargados (1) incoming/files donde se guardan los archivos ya descargados (2) (1) Típico de redes torrent, cuyas descargas pueden ser carpetas completas, sin necesidad de estar comprimidas en un único archivo (2) Típico de redes donkey, en las cuales se descargan archivos individuales, usualmente comprimidos Las carpetas que el usuario comparte para el resto de usuarios de la red P2P son, dentro también de /var/lib/mldonkey: shared incoming/directories incoming/files 2/8 Raspberry Pi como servidor Servicio MLDonkey Todas las carpetas son propiedad del usuario mldonkey y tienen los siguientes permisos: drwxr-xr-x 2 mldonkey mldonkey Probablemente el servicio no arranque automáticamente y ni siquiera nos permita arrancarlo con el parámetro start y tengamos que utilizar la opción force-start service mldonkey-server start Starting MLDonkey: mlnet. MLDonkey: mlnet [ERROR] configuration file prevent mlnet to be started (use force-start). service mldonkey-server force-start 1.2 Primeras comprobaciones Listar los puertos que utiliza el servicio: pi@guara ~ $ sudo netstat -ltnp | grep mlnet tcp 0 0 0.0.0.0:4000 0.0.0.0:* tcp 0 0 0.0.0.0:4001 0.0.0.0:* tcp 0 0 0.0.0.0:6881 0.0.0.0:* tcp 0 0 0.0.0.0:6882 0.0.0.0:* tcp 0 0 0.0.0.0:17797 0.0.0.0:* tcp 0 0 0.0.0.0:4080 0.0.0.0:* LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN Comprobar el archivo de log: /var/log/mldonkey/mlnet.log pi@guara ~ $ tail -n 4 /var/log/mldonkey/mlnet.log 2019/11/22 12:34:41 [cCO] Options correctly saved 2019/11/22 12:49:41 [cCO] Options correctly saved 2019/11/22 13:04:41 [cCO] Options correctly saved 2019/11/22 13:19:41 [cCO] Options correctly saved Comprobar que podemos acceder a la interfaz web mediante http://localhost:4080 3/8 1950/mlnet 1950/mlnet 1950/mlnet 1950/mlnet 1950/mlnet 1950/mlnet Raspberry Pi como servidor Servicio MLDonkey 2 Configuración básica 2.1 Acceso a la interfaz web desde cualquier máquina Para acceder a la interfaz web, sólo está permitido hacerlo por localhost (o la IP 127.0.0.1), ni siquiera utilizando la IP de la propia interfaz Ethernet se permite el acceso. Acceso mediante la URL http://192.168.1.21:4080 Mensaje de error: 403 Forbidden Connection from 192.168.1.21 rejected (see downloads.ini, allowed_ips) Para permitir el acceso a la interfaz web y que nos sea permitido desde cualquier equipo: Fichero /var/lib/mldonkey/downloads.ini El parámetro: allowed_ips = [ "127.0.0.1";] Cambiarlo por: allowed_ips = [ "0.0.0.0";] 2.2 Contraseña del administrador Cuando accedemos a la interfaz web, MLDonkey nos avisa del riesgo de que “el admin no tiene todavía contraseña” Para corregir esta situación, tenemos que dar de alta al usuario admin en el propio cuadro de introducción de comandos de la interfaz web y pinchar en el botón Input. 2.3 Carpetas de descargas Si queremos cambiar los directorios de descargas a otra ubicación con mayor capacidad (por ejemplo, a un disco duro externo conectado a la Raspberry), lo único que tenemos que hacer es crear enlaces a la nueva ubicación y mantener los permisos como estaban en la ubicación original. Ejemplo: para dejar todas las descargas en un único directorio del disco duro en /mnt/discoduro. Crear los enlaces: /var/lib/mldonkey/incoming/directories -> /mnt/discoduro/descargas/incoming/ /var/lib/mldonkey/incoming/files -> /mnt/discoduro/descargas/incoming/ /var/lib/mldonkey/temp -> /mnt/discoduro/descargas/temp/ 4/8 Raspberry Pi como servidor Servicio MLDonkey Y dejar los permisos como estaban antes, en todas las carpetas: drwxr-xr-x 2 mldonkey mldonkey 3 Descargar archivos La interfaz web de MLDonkey es muy rudimentaria, pero perfectamente funcional. Existen algunas programas cliente GUI (como Sancho, por ejemplo) que permiten utilizar este servicio con mayor comodidad pero la interfaz web integrada nos permite algo muy interesante: conectarnos desde cualquier máquina utilizando un simple navegador. Para descargar un archivo, vamos a la sección Search, escribimos el texto del archivo que queremos buscar y pinchamos en el botón Search. El servicio envía la consulta. 5/8 Raspberry Pi como servidor Servicio MLDonkey Ahora tenemos que pinchar en Search results para ver la lista de los archivos que ha encontrado, pinchamos en el que queramos y se inicia la descarga. Conviene escoger un archivo que tenga bastantes fuentes, para lo cual, podemos ordenar la lista por disponibilidad (A = Availability) o por fuentes completas (C = Complete sources). Cuando pinchamos en un archivo, éste empieza a descargarse. Podemos ver la lista de descargas y su progresión en Transfers. 6/8 Raspberry Pi como servidor Servicio MLDonkey Las tres letras que aparecen a la izquierda de cada archivo en descarga sirven para: P pausar la descarga R reanudar la descarga C cancelar la descarga Si queremos, por ejemplo, detener la descarga de un archivo y eliminarlo, activamos la casilla C y pinchamos en Submit changes. 4 Gestionar las descargas desde el móvil Para poder utilizar un programa GUI para conectarnos al servidor, tenemos que habilitar el puerto 4001. En el fichero downloads.ini gui_port = 4001 Si queremos deshabilitarlo: gui_port = 0 En nuestro caso, probamos MLAndroid, una app GUI que nos permite conectarnos a nuestro servidor desde el móvil. Es una app sencilla pero funcional que quizá ya ni siquiera esté en GooglePlay y haya que buscar otra similar o buscar otro repositorio alternativo y descargar directamente el archiv APK. En todo caso, todas deberían funcionar de la misma manera. 5 Apéndice. mldonkey-server vs mlnet A raíz de unos fallos recurrentes que no pudimos corregir, optamos por esta solución: 1. Eliminar la carpeta de configuración “/var/lib/mldonkey” 2. Iniciar el servicio mediante el comando “mlnet” Este modo crea la carpeta y archivos de configuración en el directorio personal del usuario “$HOME/.mldonkey” 7/8 Raspberry Pi como servidor Servicio MLDonkey Antes de la v2.6.1, MLdonkey guardaba los archivos de configuración en el directorio actual. Ahora, los “*.ini” se guardan en “$HOME/.mldonkey” (a menos que esté configurado el parámetro $MLDONKEY_DIR) Para arrancar el servicio de forma básica: $ mlnet Para arrancar el servicio en modo demonio, corriendo en segundo plano: $ mlnet > /dev/null 2>&1 & 6 Referencias [Tutorial] mldonkey-server en Raspberrypi - Raspberry Pi Forums https://forums.raspberrypi.com//viewtopic.php?t=13447 HowToStartMLdonkey - MLDonkey (sourceforge.net) https://mldonkey.sourceforge.net/HowToStartMLdonkey 8/8