Repository 32bit  Forum
Repository 64bit  Wiki

Server minimale per il peer-to-peer con Slackware e MLDonkey

Da Slacky.eu.
Versione delle 07:21, 12 set 2006, autore: L1q1d (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Indice

Introduzione

In questo how-to parlerò della mia esperienza con il programma MLDonkey su un sistema GNU/Linux Slackware. Se volete consigli per la realizzazione di un piccolo server adibito al download, peer-to-peer e non, di file dalla rete o se siete interessati all'installazione e configurazione di MLDonkey in un ambiente GNU/Linux Slackware, allora questa piccola guida può tornarvi utile. In ogni caso, è importante premettere che non verranno trattate tutte le problematiche relative all'installazione e configurazione dell'ambiente GNU/Linux Slackware dal momento che queste variano, e anche parecchio, in base all'hardware che si intende utilizzare.

Requisiti Hardware

Da adibire a Server potete utilizzare una qualsiasi macchina con architettura x86, una scheda di rete e, chiaramente, un disco fisso abbastanza capiente. Per il mio scopo, ad esempio, ho utilizzato un vecchio Pentium 200MMX, 64MB di ram, scheda di rete 3com e hard disk ide da 10GB.

Requisiti Software

Ovviamente, è necessario avere GNU/Linux Slackware installato, meglio se aggiornato all'ultima release, e configurato a puntino. Nel mio caso ho usato Slackware 10 installando le sole categorie A, AP, L e N.

Download mldonkey

L'ultima versione del programma si puo trovare all'indirizzo http://mldonkey.berlios.de/. Ho scelto di non compilare MLDonkey da sorgenti ma di avvalermi della versione binaria, per tre motivi:

  • i binari ufficiali che si trovano sul sito sono compilati staticamente, quindi niente problemi di librerie mancanti o non aggiornate;
  • per mantenere il mio server minimale non ho installato gli strumenti di compilazione;
  • i binari ufficiali funzionano molto bene :-) .

Detto questo, scaricate la versione binaria più aggiornata (nel mio caso la 2.6.7) dal seguente indirizzo http://download.berlios.de/pub/mldonkey/spiralvoice/cores/Linux/mldonkey-2.6.7.static.i386-Linux.tar.bz2 nella home directory del nostro utente:

$ cd ~/
$ wget http://download.berlios.de/pub/mldonkey/spiralvoice/cores/Linux/mldonkey-2.6.7.static.i386-Linux.tar.bz2

Quindi decomprimete l'archivio:

$ tar jxf mldonkey-2.6.7.static.i386-Linux.tar.bz2
$ cd mldonkey-distrib-2.6.7/

All'interno di questa cartella troverete gli eseguibili del programma, i file di documentazione e altro materiale aggiuntivo. I file che vi interessano per il corretto funzionamento sono:

  • mlnet, l'eseguibile del programma principale;
  • mldonkey_command, per inviare comandi al demone mlnet.

Questi due eseguibili andranno copiati nella cartella /usr/bin:

# cp mlnet mldonkey_command /usr/bin/
# chown root.bin /usr/bin/mlnet
# chown root.bin /usr/bin/mldonkey_command

Come funzione Mldonkey

MLDonkey e un programma demone che, a differenza degli altri client peer-to-peer (aMule, Azureus, ...) non non ha una propria interfaccia grafica ma comunica con l'utente tramite i protocolli http e telnet. Questo lo rende praticamente 'trasparente' per l'utente e adatto a essere comandato in remoto tramite un qualsiasi browser web o programma telnet. Supporta infatti quasi tutte le reti peer-to-peer ed è anche ottimo come download manager per file o interi siti, http o ftp.

Il programma è mlnet e si avvia in background nel modo seguente:

$ mlnet > /dev/null 2>%1 &

Vi ricordo che sarebbe opportuno eseguire come Utente Semplice e NON come Root. Meglio ancora se create un utente appositamente per eseguire MLDonkey, così da avere un isolamento maggiore. Potete creare un nuovo utente (e chiamarlo, ad esempio, mldonkey) nel seguente modo:

$ adduser mldonkey -d /home/mldonkey

Un altro accorgimento che devete assolutamente prendere è eseguire MLDonkey con una priorità un po più bassa del normale. Questo vi eviterà fastidiosi rallentamenti nei computer un po più datati.

Script di Avvio/Arresto

Create ora in /etc/rc.d uno script in grado di gestire l'avvio e il corretto arresto di MLDonkey. I file che andrete a scrivere saranno:

  • rc.mldonkey, che conterrà lo script;
  • rc.mldonkey.conf, che conterrà alcune variabili per la configurazione.
#!/bin/sh
#
# Start, stop or restart MLDonkey
#
# Version: 2.6.7-1
# Author: Ivan Centamori (sh1r081@yahoo.it)
# GPL
 
. /etc/rc.d/rc.mldonkey.conf

mldonkey_start() {
  if [ -e "$MLNET_DIR/mlnet.pid" ]; then
    echo "MLDonkey already started!"
    exit 1
  fi
  echo -n "Starting MLDonkey... "
  /bin/su $MLNET_USER -c "/usr/bin/nice -n $MLNET_NICE /usr/bin/mlnet > /dev/null 2>&1 &"
  /bin/sleep 1
  if [ -z "`/bin/ps U $MLNET_USER | /bin/grep mlnet`" ]; then
    echo "Failed!"
    exit 1
  fi
  echo "Done."
  return 0
}

mldonkey_stop() {
   if [ ! -e "$MLNET_DIR/mlnet.pid" ]; then
     echo "MLDonkey is not running!"
     exit 1
   fi
   echo -n "Stopping MLDonkey... "
   if [ -z $MLNET_ADMIN_PASSWORD ]; then
    /bin/su $MLNET_USER -c "(echo kill; echo q) | /usr/bin/nc 127.0.0.1 4000 > /dev/null 2>&1"
  else
    /bin/su $MLNET_USER -c "(echo auth admin $MLNET_ADMIN_PASSWORD; echo kill; echo q) | /usr/bin/nc 127.0.0.1 4000 > /dev/null 2>&1"
  fi
   /bin/sleep 1
   if [ -n "`/bin/ps U $MLNET_USER | /bin/grep mlnet`" ]; then
     echo "Failed!"
     exit 1
   fi
   echo "Done."
   return 0
 }

mldonkey_restart() {
  mldonkey_stop && mldonkey_start
}

if [ -z $MLNET_USER ]; then
  echo "Check the file /etc/rc.d/rc.mldonkey.conf"
  exit 1
fi

if [ -z $MLNET_DIR ]; then
  MLNET_DIR="`/bin/cat /etc/passwd | /bin/grep $MLNET_USER | /bin/cut -d : -f 6`/.mldonkey"
fi

if [ -z $MLNET_NICE ]; then
  MLNET_NICE="19"
fi

case "$1" in
  'start')
    mldonkey_start
    ;;
  'stop')
    mldonkey_stop
    ;;
  'restart')
    mldonkey_restart
    ;;
  *)
    echo "Usage: $0 (start|stop|restart)"
esac
# MLDonkey configuration file

# The user which run mlnet. This shouldn't be root.
MLNET_USER="mldonkey"

# Opzional. Leave blank for the default values.
MLNET_ADMIN_PASSWORD=""
MLNET_DIR=""
MLNET_NICE=""

########## rc.mldonkey.conf /FINE/ ##########

Vi ricordo che lo script rc.mldonkey, subito dopo la sua creazione, è di norma non eseguibile. Usate i seguenti comandi per renderlo eseguibile e impostare come proprietario root:

# chmod +x /etc/rc.d/rc.mldonkey
# chown root /etc/rc.d/rc.mldonkey*
# chgrp root /etc/rc.d/rc.mldonkey*

A questo punto, dopo aver configurato opportunamente il file /etc/rc.d/rc.mldonkey.conf, potete avviare MLDonkey con il comando:

# ./rc.mldonkey start

Per terminarlo invece usate il parametro stop:

# ./rc.mldonkey stop

Creazione del pacchetto TGZ

Per mantenere l'amministrazione del sistema Slackware il più ordinata possibile, è importante creare un pacchetto .tgz così da semplificare l'installazione/disinstallazione dei file del programma.

Per cominciare realizzate una struttura di directory adatta a contenere i file da "impacchettare":

$ mkdir ~/mldonkey-package
$ mkdir ~/mldonkey-package/etc
$ mkdir ~/mldonkey-package/etc/rc.d
$ mkdir ~/mldonkey-package/usr
$ mkdir ~/mldonkey-package/usr/bin

Copiate quindi gli eseguibili e gli script nelle directory appena create, assicuratevi anche che tutti i file copiati in bin abbiano come proprietario root e come gruppo bin, mentre i restanti file root.root:

$ cp /usr/bin/mlnet ~/mldonkey-package/usr/bin/
$ cp /usr/bin/mldonkey_command ~/mldonkey-package/usr/bin/
$ cp /etc/rc.d/rc.mldonkey ~/mldonkey-package/etc/rc.d/
$ cp /etc/rc.d/rc.mldonkey.conf ~/mldonkey-package/etc/rc.d/

Posizioniateli nella directory ~/mldonkey-packe e create il pacchetto con makepkg da utente root:

$ cd ~/mldonkey-package
# makepkg -l y -c n mldonkey-2.6.7-i386-1custom.tgz

Il file mldonkey-2.6.7-i386-1custom.tgz verrà creato e potrà essere utilizzato ogni volta che si vorrà installare MLDonkey su di un sistema Slackware.

Come si usa MlDonkey

Per comunicare con MLDonkey e sufficiente rivolgere qualsiasi browser web all'indirizo:

http://localhost:4080

oppure, da remoto, http://(indirizzo_di_rete_del_server):4080. Se non si dispone di un browser e possibile aprire una sessione telnet:

$ telnet localhost 4000

Per l'accesso sono richiesti il nome utente e la password. Di default questi sono "admin" e "" (password vuota). E' possibile cambiare questi valori dall'interfaccia web o modificando i file di configurazione.

L'utilizzo è molto semplice e immediato, soprattutto quello dell'interfaccia web. Per aggiungere nuovi download è suffiente inserire l'indirizzo web del file da scaricare nella finestra di input che compare premendo il tasto DL dell'interfaccia web. MLonkey riconoscerà automaticamente il tipo di download (BitTorrent, link a file Donkey, download ftp, ecc...) e inizierà il download. Per la maggior parte delle reti (tra cui Donley) è disponibile anche un sistema di ricerca raggiungibile tramite il tasto "Search" dell'interfaccia web.

I download, per default, si trovano nella directory ~/.mldonkey/incoming dell'utente che ha avviato MLDonkey.

Nei file di configurazione di MLDonkey ci sono delle opzioni che è opportuno configurare correttamente:

[ ~/.mldonkey/downloads.ini ]

allowed_ips = Imposta a 255.255.255.255 se vuoi accedere da un qualsiasi computer remoto. In questo caso è consigliabile utilizzare una password d'accesso.

max_hard_upload_rate = Imposta la massima velocità di upload raggiungibile da MLDonkey. Consiglio l'80% della banda totale di upload.

max_hard_download_rate = Imposta la massima velocità di download per MLDonkey. 0 per la massima velocità.


[ ~/.mldonkey/users.ini ]

users = Le coppie di valori rappresentano (nome utente, "password codificata"). Modifica i valori di default per una maggiore sicurezza.

Autore: Ivan Centamori

Strumenti personali
Namespace

Varianti