// Stai leggendo ...

Hardware

Fritz!Box e Mldonkey: p2p e filesharing a pc spento

Fritz!Box FonUn piccolo “download center” completamente gestibile da remoto grazie ad una comoda interfaccia grafica o riga di comando: Mldonkey in accoppiata al nostro Fritz!Box ci permette questo e molto altro! Quando p2p e filesharing non necessitano più di un pc “sempre accesso” e di una connessione internet flat.


Tra le tante opportunità che un router “linux based” come il Fritz!Box ci riserva vi è certamente quella di poter personalizzare oltremodo la nostra macchina in modo da renderla quanto più possibile rispondente alle nostre esigenze.

Tra le altre, una delle più gettonate è quella di implementare un client p2p che permetta di poter effettuare filesharing “a pc spento” sfruttando un unità di archiviazione esterna collegabile al router per mezzo della porta usb di cui è dotato.

Grazie alle imbeccate di Tokka dunque andremo ad installare Mldonkey, uno dei client multipiattaforma e multiprotocollo più apprezzati del panorama opensource, sul nostro Fritz!Box 727o equipaggiato con l’ultima release del firmware internazionale (la 54.04.67) rilasciata da AVM.

La scelta di Mldonkey non è casuale: questo client si è rivelato uno dei più completi, promettenti e sviluppati, capace di “ben adattarsi” alle limitate risorse hardware del nostro router senza impattare oltremodo sulle prestazioni generali della macchina. Insomma il giusto compromesso tra funzionalità e prestazioni.
Mldonkey inoltre, oltre a supportare una pletora di protocolli, integra un piccolo web server ed è completamente controllabile via telnet: l’ideale per realizzare un piccolo “download center” gestibile da remoto, attraverso interfaccia grafica o linea di comando.

Dopo aver connesso una unità disco esterna al nostro Fritz!Box è dunque necessario andare a scaricare il client: personalmente ho utilizzato la versione 3.0.0 CVS compilata da Tokka, ma in attesa che il “sedicenne” la rilasci “al grande pubblico”, potete tranquillamente sopperire utilizzando il precedente rilascio o quella compilata per architettura Mipsel da Fabtar.

Una volta decompressa la cartella sul vostro desktop copiatene il contenuto all’interno dell’ unità di archiviazione esterna connessa al router. Personalmente io utilizzo il comando scp, ma lo stesso risultato si ottiene con qualunque client FTP.
Al termine dunque vi dovreste trovare con Mldonkey installato nella cartella

/var/media/ftp/STORAGE/bin/mldonkey

dove STORAGE è la vostra periferica esterna.

A questo punto qualora provaste a lanciare il client vi trovereste con uno sconsolante errore:

error mkdir failed on /.mldonkey: Read-only file system for directory /.mldonkey

Mldonkey infatti di default utilizza l’account root la cui partizione nei nostri Fritz!Box non è accessibile in scrittura. Problema facilmente aggirabile creando un nuovo utente all’interno del file /etc/passwd o ricorrendo ad una semplice operazione di “export”.
Per ragioni di comodità seguiremo questa seconda strada, riservandomi di illustrarvi l’altra, che permette di superare gran parte delle limitazioni dei firmware originali, in un altro articolo.

Da terminale dunque digitiamo:

telnet fritz.box
cat /var/flash/debug.cfg > /var/debug
vi /var/debug

e quindi incolliamo all’interno del file appena aperto quanto segue

if [ -f /var/media/ftp/STORAGE/bin/mldonkey/mlnet ]; then

export HOME=/var/media/ftp/STORAGE/bin/mldonkey/
export TMPDIR=/var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/temp
LD_LIBRARY_PATH=/var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
/var/media/ftp/STORAGE/bin/mldonkey/mlnet &

fi

Rendiamo permanenti le modifiche apportate con

cat /var/debug > /var/flash/debug.cfg 

Al successivo riavvio il nostro client sarà raggiungibile da interfaccia grafica all’indirizzo IP_ROUTER:4080. Non ci resta che proteggere l’account admin di mldonkey con una password, impostare il firewall del Fritz!Box in modo da garantirci ID alto e personalizzare il client in modo da scongiurare crash e blocchi del router.

PASSWORD PER ACCOUNT ADMIN

Di default l’account utilizzato da Mldonkey non è protetto da alcuna password ed è accessibile dall’esterno. Una pessima situazione! Poniamovi rimedio.

cd /var/media/ftp/STORAGE/bin
wget http://blog.liberailvoip.it/wp-content/uploads/busybox-4mb_26
chmod 755 /var/media/ftp/STORAGE/bin/busybox-4mb_26
./busybox-4mb_26 telnet localhost 4000

Una volta connesso via telnet a Mldonkey è sufficiente digitare:

useradd admin nuova-password-supersegreta

e quindi chiudere la finestra di telnet. Da ora in poi ogniqualvolta tenteremo di accedere all’indirizzo IP_ROUTER:4080 ci verrà richiesta la password di amministrazione.

ID ALTO

Da una rapida analisi dei files di configurazione del client p2p appare immediatamente chiaro che tutti i problemi legati all’id basso nell’uso del protocollo edonkey sono dovuti alle porte “non standard” utilizzate.

cd /var/tmp
cat /var/flash/ar7.cfg > ar7
vi ar7
:164   (NOTA: questo comando fa si che vi spostiate alla riga numero 164)

Cerchiamo la seguente stringa:

voip_forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
"tcp 0.0.0.0:5060 0.0.0.0:5060",

attiviamo la modalità inserimento dati premendo il tasto i e successivamente aggiungiamo le seguenti stringhe in modo da ottenere:

voip_forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
"tcp 0.0.0.0:5060 0.0.0.0:5060",
"tcp 0.0.0.0:8795 0.0.0.0:8795",
"tcp 0.0.0.0:8796 0.0.0.0:8796",
"tcp 0.0.0.0:8797 0.0.0.0:8797",
"udp 0.0.0.0:7078+32 0.0.0.0:7078";

Ancora una volta rendiamo permanenti le modifiche apportate digitando:

cat /var/tmp/ar7 > /var/flash/ar7.cfg

IMPOSTAZIONI DOWNLOADS.INI

Infine limitiamo il numero di connessioni contemporanee e di fonti cui il nostro client p2p potrà accedere durante l’attività di filesharing, in modo da evitare crash e blocchi del router.

vi /var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/downloads.ini

Qui le voci da modificare sono diverse, vi elenco le salienti, lasciando poi ad ognuno di voi la consultazione e modifica degli altri parametri. Il file è ottimamente commentato e non dovreste incorrere in alcun problema.

allowed_ips = ["0.0.0.0-255.255.255.255";]
max_upload_slots = 3
friends_upload_slot = false
max_connections_per_second = 3
nolimit_ips = ["192.168.1.255";]
max_concurrent_downloads = 20
shared_directories = [
 {     dirname = shared
 strategy = all_files
 priority = 0
};
 {     dirname = "/var/media/ftp/STORAGE/Downloads"        #(NOTA:cartella ove salvo i download completi)
 strategy = incoming_files
 priority = 0
};
 {     dirname = "/var/media/ftp/STORAGE/Downloads"        #(NOTA:cartella ove salvo i download completi)
 strategy = incoming_directories
 priority = 0
};]
sources_per_chunk = 3

I più pigri potranno comunque scaricare la versione di downloads.ini che attualmente utilizzo; vi ricordo infine che è consigliabile attivare una file di swap.

Commenti

commenti


I commenti all'articolo

33 commenti for “Fritz!Box e Mldonkey: p2p e filesharing a pc spento”

  1. Innanzi tutto, complimenti per l’ottima guida.

    Volevo chiederti:

    1) La stabilità del programma ed eventuali malfunzionamenti e problematiche;

    2) La possibilità di eseguire la procedura su altri modelli, visto che nel caso da te descritto fai riferimento al 7270.

    linus

    Commentato da linus | agosto 19, 2009, 17:47 |
    • 1- E’ “tutto su” da 3 giorni, i primi 2 dei quali ho lasciato alcune popolari canzoni in condivisione (in modo da avere sempre l’ upload a piena banda) e non è successo nulla. Anzi non ha nemmeno attinto alla swap per ora.
      2- La procedura è per 7270 dal momento che è il fritz che possiedo ma nulla vieta di “replicarla” su altri modelli: i comandi linux sono “universali” e a quanto mi risulta tutti i fritz sono compatibili con l’architettura mipsel

      Commentato da skumpic | agosto 19, 2009, 19:01 |
  2. Un grosso ringraziamento per questa guida.
    Ho seguito tutte le procedure che hai descritto e mldonkey, versione 3.0 di Fabtar sul mio fritz 7270 (FW. INT. ver. 04.67) con swap attivato, si avvia senza problemi.
    Ho anche modificato il file download.ini con le tue indicazioni e ho anche estratto il file libraries incluso nel pacchetto statico full, lincandolo con EXPORT prima dell’avvio del programma.

    Ho solo un problema Durante l’avvio e sulla home page di mldonkey mi vengono restituiti due errori:
    - libmagic data base not found;

    - l’errore “DNS resolution don’t work”.
    Il primo errore penso che non sia di fondamentale importanza ma il secondo dovrebbe essere sostanziale.
    Infatti questo ovviamente causa l’impossibilità di collegarsi ad alcun server o di scaricare il file server.met.
    Sinceramente non saprei come risolvere questo problema.
    Hai avuto anche tu questo genere di errore.

    Grazie
    Carlo

    Commentato da Carlo | settembre 1, 2009, 11:06 |
    • Ciao Carlo,
      il problema dei DNS lo risolvi con la stringa relativa alle librerie:

      LD_LIBRARY_PATH=/var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/lib:$LD_LIBRARY_PATH

      controlla di aver impostato correttamente il percorso che punta alle librerie

      Commentato da skumpic | settembre 2, 2009, 01:27 |
  3. ragazzi dato che sono intenzionato ad implementare una rete domestica multimediale ho da farvi alcune domande sul Fritz!Box.

    1) L’Hd che viene montato sulla porta usb del fritz viene visto da qualunque pc e lettore multimediale?
    2) Mldonkey permette anche di scaricare da rapidshered e megaupload utilizzando un account visto che ormai utilizzo solo questi?
    3) Eventualmente si potrebbe far girare anche sull’hd esterno un programma di video sorveglianza come zoneminder?
    4) Da quando hai fatto la guida ad oggi ti funziona ancora tutto o hai avuto dei problemi?
    Grazie a tutti per l’eventuali risposte :)

    Commentato da Diablo | gennaio 9, 2010, 17:39 |
    • ciao Diablo. Ti rispondo per punti

      1- si tramite samba o accesso ftp
      2- no.
      3- secondo me no. troppo esoso di risorse, soprattutto se vuoi impostare delle “zones” sensibili ai movimenti, delle registrazioni programmate o vuoi visualizzare a monitor il flusso video. Molto dipende però da che telecamere ip monti e da quanti eventuali passaggi debba fare il processore per gestire il flusso video.
      4- si

      Commentato da skumpic | gennaio 11, 2010, 18:24 |
  4. Ciao skumpic
    visto che ci siamo volevo chiederti quale altro modem/router con possibilità di gestire il voip consiglieresti per un acquisto che sia un po più economico rispetto al fritz?
    Sai il fritz e davvero bello ma costa una cifra ed onestamente ora che ho scoperto che non posso nemmeno scaricare da rapid e megaupload un router più entry-level mi andrebbe bene. L’uso che dovrei farne è quello classico con in più la possibilità di attaccarsi su tutta la rete telefonica di casa ed usare il voip, che chiaramente passa da liv :D

    Commentato da Diablo | gennaio 12, 2010, 21:46 |
    • Se ti interessa solo il router e vuoi smanettare ti consiglio la fonera nuova.
      Con 59 euro (mi pare) puoi gestire praticamente tutto. Però devi aver voglia di metterti alla prova con openwrt o ddwrt e non ha prese FXS (quelle per connetterci i tel analogici per intenderci). Quindi solo tel IP.

      Viceversa un router con presa FXS (tel analogici) ed FXO (presa telefonica domestica) con cui mi sono trovato molto bene è il BILLION (se cerchi sul blog ho anche scritto diversi articoli a riguardo. Io lo presi usato su ebay per 35 euro mi pare), ma anche il Siemens SX763 si comporta bene (a patto di voler rinunciare al tu tu italiano, cerca sempre l’articolo a riguardo sul blog).
      I linksys hanno problemi di eco nelle chiamate terminate su rete telecom, viceversa (solo chiamate voip) sono perfetti e a buon mercato (vedi il pap2).

      Commentato da skumpic | gennaio 13, 2010, 01:41 |
  5. ciao, ho fritz 7140 con fw originale 39.40.67, ho scaricato dal sourgeforce la versione ultima di mldonkey-3.0.1
    posso seguire la tua guida oppure non è valida?
    grazie ciao

    Commentato da fabio | gennaio 22, 2010, 11:16 |
  6. mi blocco qui:

    # cat /var/flash/debug.cfg > /var/debug
    cat: can’t open ‘/var/flash/debug.cfg’: No such file or directory

    Commentato da fabio | gennaio 26, 2010, 19:48 |
  7. si funziona, ovviamente il # non c’era!!

    Commentato da fabio | gennaio 27, 2010, 14:02 |
  8. navigando la folder /var/flash/ il file debug.cfg lo trova … provando a a aprirlo con il vi, lo trovo vuoto!!
    fritz 7140 annex A

    Commentato da fabio | gennaio 27, 2010, 14:04 |
    • anche a me ha dato lo stesso errore.
      cercando nel sito tedesco http://www.ip-phone-forum.de ho trovato quanto segue:
      - è normale che il file /var/flash/debug.cfg sia vuoto
      - per risolvere il problema dai il comando “echo > /var/flash/debug.cfg” oppure “touch /var/flash/debug.cfg” poi riprova con il comando cat
      visto che non sono un esperto ti consiglio comunque di attendere il parere di skumpic. io non ho ancora avuto modo di testare questa soluzione

      Commentato da giulio | gennaio 29, 2010, 16:19 |
      • grazie Giulio ma niente da fare…

        # echo /var/flash/debug.cfg
        /var/flash/debug.cfg
        # cat /var/flash/debug.cfg > /var/debug
        cat: can’t open ‘/var/flash/debug.cfg’: No such file or directory

        Commentato da fabio | gennaio 30, 2010, 08:48 |
        • @Fabio e Giulio
          Se non hai mai modificato in precedenza il file debug.cfg (cosa che stupidamente davo per scontata) è corretto che il file sia vuoto.
          Esegui quesi comandi invece di quelli indicati nel post:

          cd /var
          vi /var/debug

          Quindi inserisci i comandi indicati nella guida per il funzionamento di mldonkey e successivamente digita:

          cat /var/debug > /var/flash/debug.cfg

          Commentato da skumpic | gennaio 30, 2010, 15:09 |
  9. Problema facilmente aggirabile creando un nuovo utente all’interno del file /etc/passwd o ricorrendo ad una semplice operazione di “export”.
    Per ragioni di comodità seguiremo questa seconda strada, riservandomi di illustrarvi l’altra, che permette di superare gran parte delle limitazioni dei firmware originali, in un altro articolo.

    Non mi è chiaro questo passaggio,qualcuno mi può spiegare cosa fare?

    Grazie.

    Commentato da pasmar17 | gennaio 30, 2010, 02:40 |
    • Il “problema” sta nel fatto che il fritzbox reimposta gli utenti e le relative cartelle ad ogni avvio, fatto di cui dobbiamo tener conto in sede di configurazione di mldonkey.
      Per aggirare l’ostacolo ci sono 2 soluzioni:
      - ricopiare il file passwd che nei sistemi linux controlla proprio utenti, password e cartelle ad ogni avvio (strada più complessa)
      o in alternativa
      - ottenere lo stesso risultando modificando “artificialmente” una variabile con un export.

      In questo post si segue la seconda delle 2 strade, ed il comando è l’ultimo che indico poco dopo.
      Non devi fare altro che continuare a seguire le indicazioni della guida.

      if [ -f /var/media/ftp/STORAGE/bin/mldonkey/mlnet ]; then
      
      export HOME=/var/media/ftp/STORAGE/bin/mldonkey/
      export TMPDIR=/var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/temp
      LD_LIBRARY_PATH=/var/media/ftp/STORAGE/bin/mldonkey/.mldonkey/lib:$LD_LIBRARY_PATH
      export LD_LIBRARY_PATH /var/media/ftp/STORAGE/bin/mldonkey/mlnet &
      
      fi

      Commentato da skumpic | gennaio 30, 2010, 16:25 |
      • Avevo già provato a seguire i passi indicati ma purtroppo non mi funziona. Tra le altre cose dopo il riavvio del router (con firmware originale 58.04.78) se apro il file debug.cfg me lo ritrovo vuoto e con la dicitura “Not a regular file”. Ciò avviene sia se modifico il contenuto sia se lo cancello proprio, in pratica al riavvio il sistema va a ricreare il file fragandosene dei cambiamenti che ho fatto.

        Commentato da pasmar17 | gennaio 30, 2010, 16:52 |
        • Se compare il messaggio “not a regular file” significa che commetti qualche errore nella creazione del file.
          Assicurati di seguire per bene le indicazioni scritte nel post, VI è un editor a linea di comando un pò ostico per quanti sono agli inizi.

          Commentato da skumpic | febbraio 9, 2010, 12:25 |
      • Si hai perfettamente ragione, non avevo capito io il funzionamento perchè quando riavviavo andavo a lanciare manualmente ./mlnet, mentre basta aspettare e parte da solo.

        Insomma nel rispettare i passi della guida ho dimenticato la cosa fondamentale: accendere il cervello! :D

        Commentato da pasmar17 | febbraio 10, 2010, 03:51 |
  10. Ciao Skumpic e grazie per la splendida guida. Io ho il fritz 7170 e vorrei installare mldonkey su un nas collegato in rete visto che la porta usb del fritz è impegnata con la stampante e non ho un hub usb. quindi dovrei usare la porta di rete e non la usb. Mi aiuti? grazie.

    Commentato da antonio | febbraio 15, 2010, 09:29 |
    • Quindi vorresti montare il disco del nas con samba e quindi utilizzarlo come “spazio di storing” per mldonkey?
      Tecnicamente penso sia possibile ma non so quanto sia facile realizzarlo. Sul nas non puoi installare alcuna distribuzione linux? (su alcuni come i linksys so che è possibile) Cosi sarebbe tutto molto più semplice.

      Commentato da skumpic | febbraio 15, 2010, 15:04 |
      • Si vorrei gestire mldonkey con il fritz ma installandolo nel nas. ho letto dai forum che dovrei montare il samba ma poi non so come proseguire. nel nas so che gira proprio samba per gestire le proprietà del disco, ma dalla schermata di gestione disco ci si puo solo formattare o eseguire lo scandisk… credo quindi sia molto limitato. Samba è comunque all’interno del firmware e non so prorio come gestirlo.

        Commentato da Antonio | febbraio 15, 2010, 15:24 |
  11. Ciao,
    Ottima guida… funziana tutto! Complimenti!

    Ho solo un dubbio col KAD: Ho aperto tutte le porte necessarie e configurato il Fritz, ho fatto il Port-test dalla Gui di MLD e mi da ok per TCP e UDP ma se vado sulle stats della rete Kadmelia mi scrive:
    Kademlia is enabled – Kademlia Connectivity: NOT enough online peers ,there maybe a problem with incoming udp packets

    Qualche suggerimento?? Grazie in anticipo :)

    Commentato da Curioso | giugno 26, 2010, 18:52 |
  12. Grazie per l’interessamento :)

    Posso confermarti che il protocollo KAd era ed è implementato da MlDonkey… Non ricordo da quale versione ma da quella utilizzata da te in poi sicuramente :)

    Ti viene in mente uqlache motivo per cui posa avere questo problema nonostante la situazione che ti ho descritto nel post precedente?!?!?

    Grazie mille!

    Commentato da Curioso | giugno 27, 2010, 15:34 |
    • Che sia implementato non lo metto in dubbio, ma che la versione in uso sia stata compilata con il supporto per KAD ne dubito.
      Ad ogni modo se cosi non fosse (ossia se mi ricordassi male ed effettivamente KAD fosse presente) devi attivarlo nel file di configurazione

      Commentato da skumpic | giugno 29, 2010, 23:03 |
  13. Ottima guida, per curiosità tu che cosa usi come periferica usb? Visto che a quanto sembra il mio fritz non riesce ad alimentare nessuno dei miei hdd da 2.5

    Commentato da quique | febbraio 14, 2011, 15:44 |

Lascia un commento

Devi essere autenticato per lasciare un commento.