Tnt village
tntvillage.scambioetico.org · Statuto T.N.T.      Aiuto      Cerca      Utenti      Calendario

Questo sito non utilizza cookies a scopo di tracciamento o di profilazione. L'utilizzo dei cookies ha fini strettamente tecnici.

Sostieni movimentopirati.org

 

  Discussione chiusaInizia nuova discussioneAvvia sondaggio

> [GUIDA] Transmission-daemon su macchina headless, [LINUX]
neurot
  Inviato il: Feb 14 2012, 01:39 AM
Cita questo messaggio



Group Icon

Gruppo: Domiciliati
Messaggi: 1
Utente Nr.: 685401
Iscritto il: 7-February 12



Transmission-daemon su macchina headless

DISCLAIMER
Non sono un pro user. Il mio campo di studi è tutt'altro che l'informatica, e tutto quello che vedete su questa guida è stato imparato in maniera autodidattica ed "hobbistica". Il paragone che mi piace usare è quello con una scimmia ammaestrata: so che un certo comando fa una certa cosa, ma, più spesso che no, ho poco chiaro il funzionamento dietro.
QUALSIASI CONSIGLIO DA UTENTI PIÙ ESPERTI, CHE POSSA SERVIRE A MIGLIORARE IL CONTENUTO DI QUESTA GUIDA, È OVVIAMENTE BEN ACCETTO ED ANZI INCORAGGIATO.
Detto ciò, passiamo avanti.

INTRODUZIONE
Cominciamo col dire cosa ci prefiggiamo seguendo questa guida.
L'obiettivo è installare transmission (noto client BitTorrent "open" e popolare fra gli utenti linux) non nella sua versione classica, ma nella versione "demone". Un demone, in parole molto povere, è un programma che gira in background, senza un'interfaccia diretta; nel caso di transmission, il demone arriva completo di un'interfaccia controllabile via web, ma manca di un'interfaccia grafica nel senso classico.
Perchè è utile un simile approccio? Di sicuro, non è utile nel caso si stia usando un normale pc desktop, nel qual caso è molto più pratico un client "normale", dotato di un'interfaccia utente diretta e di facile installazione: µtorrent, vuze, transmission classico eccetera.
Tuttavia, in alcune situazioni questo può risultare poco pratico. L'esempio più significativo che mi venga in mente è quello di una macchina "headless", vale a dire un computer privo di monitor, tastiera, mouse, accessibile invece tramite altri mezzi, soprattutto connessioni SSH e porta seriale. Esempi di questi "headless" sono ad esempio i NAS, quegli hard disk che si collegano via ethernet. Questi congegni hanno in genere un processore ARM, e girano con linux, che a differenza di windows si adatta bene all'architettura ARM, nonchè all'assenza totale di un'interfaccia grafica.
Ci sono diversi modi per ottenere un headless. Io ho hackato un mio vecchio Lacie Internet Space (per questa operazione farò magari una guida in futuro, anche se non è un argomento del tutto attinente al forum) ma esistono metodi più semplici, ad esempio comprare uno di questi, che arrivano già configurati e pronti all'uso, e con un sacco di guide su internet su come personalizzarli. (D'altra parte però, hackare un device blindato dà sempre una certa soddisfazione.)
Non è per forza detto che una macchina headless debba per forza essere una macchina ARM: potete anche semplicemente prendere una vecchia mobo, un vecchio hard disk, un vecchio alimentatore, mettere tutto in un vecchio case e schiaffare tutto in cantina collegato alla rete di casa. Il vantaggio sostanziale dell'ARM è il consumo irrisorio rispetto a processori intel/amd, insomma da "desktop"; anche il calore che viene prodotto è molto meno. Ciò permette uptime enormi (il mio non lo spengo mai se non quando salta la corrente elettrica) a fronte di una minore spesa energetica.

REQUISITI
Questa guida presuppone che abbiate a che fare con una macchina linux, con la quale interagite tramite riga di comando (in genere ssh). Presuppone anche conoscenze basilari di linux, quali installare/rimuovere pacchetti, saper effettuare operazioni da super-user, eccetera. Non è strettamente indispensabile che sia una macchina headless, è solo consigliato, più che altro perchè in caso contrario l'utilità del fare quello che state per fare è davvero poca e vi converrebbe attenervi a metodi più tradizionali. :V
Piccola nota: per accedere via SSH da un pc Windows, consiglio di usare putty.

FASE 1 - INSTALLARE IL PACCHETTO
Il pacchetto che dobbiamo installare si chiama transmission-daemon, che a sua volta si porterà dietro transmission-common ed altri pacchetti da cui dipende. A seconda della distribuzione che state usando, avrete un differente gestore di pacchetti. Io che sono un newbie totale mi attengo a Debian e derivate, per cui mi ritroverò a lavorare con aptitude e apt-get. Se preferite Fedora e famiglia, lavorerete con yum e via discorrendo. Non è obiettivo di questa guida esaminare il funzionamento dei gestori di pacchetti: come (mi) diceva il mio coinquilino, c'è il comando man che vi insegna il funzionamento dei vari comandi (vi rimando all'Epilogo 2).

FASE 2 - CONFIGURARE L'UTENTE
transmission-daemon verrà fatto partire all'avvio del sistema, tramite lo script /etc/init.d/transmission-daemon. Non verrà avviato come super-user, ma come utente normale: questo utente è specificato nello script in init.d. Vi posto lo script nel mio caso: http://pastebin.com/FHisbUds. Nel mio caso l'user è "transmission", che è anche l'impostazione di default. Potete editare lo script nel caso desideriate cambiarlo: andate a cercare la riga
CODE
USERNAME=transmission

e sostituite 'transmission' con l'username che desiderate.
La maggior parte delle guide consigliano di creare un utente apposito per transmission-daemon, con accesso tramite password disabilitato. Io l'ho fatto, e mi sono ritrovato a dover risolvere dopo alcuni problemi di permessi.
In generale, contate che qualsiasi file scaricato apparterrà all'user sotto cui gira il processo transmission-daemon, ed al suo gruppo personale; nel mio caso, i file appartengono all'user transmission ed al gruppo transmission.
Assumendo che abbiate un solo user principale, per esempio utonto, nel sistema (il che dovrebbe essere il caso per i neofiti), esistono varie soluzioni.
La prima è quella suggerita, creare un user transmission dedicato al demone, ma in questo caso i file scaricati saranno in sola lettura per tutti gli altri utenti. Questo non è un grosso problema per l'utente comune, non è indispensabile avere i permessi in scrittura come utente normale: alla fine una volta che il vostro film-musica-vattelapesca è stato scaricato difficilmente avrete bisogno di modificarlo. (Io ho smanettato con i permessi per pura paranoia, detesto avere a che fare con file sola lettura nella mia cartella home, di qualsiasi natura.)
Per aggirare il problema si può aggiungere utonto nel gruppo transmission e cambiare l'umask della configurazione di transmission-daemon (nota per gli utenti pro:cambiare l'umask del sistema non ha effetto, transmission-daemon usa quello dei suoi file di configurazione). L'umask, in poche parole, determina a chi saranno accessibili i nuovi file creati nel sistema: lo standard varia a seconda della distribuzione. Si tratta di un numero in base 8: normalmente è 0022 o 0002: 0022 vuol dire che solo il creatore (owner) di un file può modificarne il contenuto, mentre gli altri utenti hanno solo il permesso di lettura. 0002 apre la scrittura anche agli utenti del gruppo a cui appartiene il file. Il default di transmission-daemon è 0022 (18 in numero decimale). Vi rimando comunque al punto 3 per la modifica dell'umask.
Per il momento, per creare il vostro utente transmission, senza fronzoli, il comando (da super user) è:
CODE
# adduser --disabled-password transmission

Notate che abbiamo disabilitato l'accesso via password. È comunque possibile accedere come utente transmission, usando il comando 'su transmission' da super user.
Gli utenti esperti sapranno sicuramente agire nel modo migliore per le loro esigenze. Basti ricordare, comunque, che transmission-daemon dà modo di impostare il proprio umask, ovvero i permessi che verranno assegnati ai file scaricati.

FASE 3 - CONFIGURARE IL DEMONE
transmission-daemon mantiene la sua configurazione nella home dell'user sotto cui viene lanciato. Assumeremo che sia stato creato l'utente transmission come nel caso sopra descritto, per cui i nostri file di configurazione saranno in /home/transmission/.config/transmission-daemon.
Prima di andare a cercare i suddetti file, da super-user scriviamo:
CODE
# /etc/init.d/transmission-daemon start
# /etc/init.d/transmission-daemon stop

In questo modo transmission-daemon creerà i file di configurazione di default (se già non lo aveva fatto), e poi verrà fermato, per permetterci di editare in tutta calma.
All'interno della suddetta cartella troviamo:
  • settings.json -> il file che ci interessa
  • torrents/ -> la cartella in cui vengono messi i file .torrent che aggiungiamo in lista
  • resume/ -> stessa cosa, ma coi .resume
  • altri che non ci interessano al momento.
Andiamo dunque ad editare settings.json; stiamo lavorando da riga di comando, ma esistono una varietà di editor che non necessitano di interfaccia grafica: i più diffusi sono vi e nano. Per i neofiti consiglio nano, in quanto i comandi di vi possono risultare ostici ai più.
CODE
# cd /home/transmission/.config/transmission-daemon
# nano settings.json

All'interno del file troviamo diverse opzioni. Descriverò le più importanti, ma qui trovate la lista completa.
  • download-dir / incomplete-dir -> si spiegano abbastanza da sole
  • incomplete-dir-enabled -> con 'false' i file vengono scaricati direttamente nella download-dir
  • umask -> imposta i permessi che verranno assegnati ai nuovi file scaricati; notate che in questo file, umask è espresso come numero decimale, e non ottale, vale a dire che per esempio un umask di 0022 va indicato come '18' (mentre 0002 rimane '2'); si noti che questo umask è prioritario su quello del sistema; default=18 (0022)
  • watch-dir e watch-dir enabled -> se abilitato, qualsiasi torrent aggiunto nella watch-dir verrà automaticamente aggiunto in coda
  • peer-port -> la porta TCP usata per scaricare
  • rpc-qualsiasi cosa -> riguardano l'interfaccia web, ne parlerò diffusamente fra poco
  • speed-limit-qualsiasi cosa -> si spieano da soli; sono modificabili anche dall'interfaccia web.
FASE 4 - CONFIGURARE L'INTERFACCIA WEB
Passiamo a spiegare cos'è questa interfaccia web.
transmission-daemon arriva corredato di un'interfaccia web, che ne permette l'utilizzo in remoto da qualsiasi browser. Per configurarla, andiamo ad editare settings.json (vedi fase 3) e cerchiamo le opzioni che iniziano con 'rpc':
  • rpc-enabled -> questa deve essere 'true', per ovvi motivi :V
  • rpc-authentication-required -> con 'true' verranno richiesti username e password per accedere all'interfaccia
  • rpc-username -> l'username di cui sopra
  • rpc-password -> stringa; inserite la password che desiderate in chiaro, al prossimo avvio transmission la cambierà direttamente in un hash codificato
  • rpc-port -> la porta che userete per connettervi all'interfaccia; di default è 9091, quindi nel browser digiterete ip-della-macchina:9091
  • rpc-whitelist-enabled e rpc-whitelist -> se la whitelist è abilitata, sarete in grado di connettervi solo dagli indirizzi ip specificati nella whitelist; nel caso la voleste disabilitare consiglio comunque di abilitare l'accesso con password.
FASE 5 - USARE L'INTERFACCIA WEB
Una volta finita la configurazione, aprite il vostro browser di fiducia su qualsiasi pc connesso alla rete locale. Nella bassa degli indirizzi digitate ip-macchina-transmission:porta dove la porta è quella specificata nel campo rpc-port del file di configurazione, vedasi la fase 4.
Ci troveremo dinnanzi a questo.
user posted image
Svisceriamo il funzionamento dei vari pulsanti in alto.
  • Open -> aggiunge un torrent alla lista, caricabile da disco oppure da url
  • Remove -> rimuove il torrent selezionato dalla lista
  • Pause/Resume -> mette in pausa il torrent selezionato, o lo fa ripartire
  • Pause All/Resume All -> stessa cosa ma con tutti i torrent; utile nel caso vogliate smettere di seedare ma vi scoccia andare a fermare il demone da riga di comando
  • Filter -> attiva/disattiva la visualizzazione della barra "filter" (sopra alla lista dei torrent)
  • Inspector -> apre/chiude l'inspector, il pannello alla destra della lista dei torrent.
Al centro abbiamo la lista dei torrent in download ed in seeding, ed a destra la finestra dell'inspector. I pulsanti in alto nell'inspector permettono di visualizzare le informazioni sul torrent selezionato: info generiche, attività, tracker, file. In quest'ultima scheda potrete anche modificare quali file volete scaricare dal torrent selezionato.
In fondo abbiamo due pulsanti. Quello con l'ingranaggio è il menu delle impostazioni, dal quale potrete variare la velocità di download/upload, la porta TCP in uso, eccetera.
Infine il pulsante con la tartaruga è il "turtle mode": attivandolo i limiti di download/upload passano a quelli indicati nei campi "Temporary speed limits" della finestra delle preferenze, e nei campi alt-speed del file di configurazione.

FASE 6 - SEEDARE COME SE NON CI FOSSE UN DOMANI
Avete appena finito di configurare transmission-daemon. Aggiungete il vostro primo torrent e buona condivisione.







APPENDICE 1 - ACCEDERE AI VOSTRI FILE SCARICATI
A questo punto esistono diversi modi per accedere ai file che avete scaricato da un pc da cui possiate usufruirne. Samba è il più classico. Si tratta di un demone che vi permette di condividere file in una rete accessibile anche da pc windows. Nella maggior parte delle distro arriva già installato, ma comunque va configurato, e per questo vi rimando ad altre giude fatte da gente più esperta: confesso che del funzionamento di samba so veramente poco, ma vi consiglio di cercarvi SWAT, un'interfaccia web che semplifica la configurazione di samba. In alternativa il metodo tradizionale prevede di editare a mano i file di configurazione.
Una volta creata una cartella condivisa con samba, diventa accessibile dalle risorse di rete di windows (e di linux). Inoltre sia su linux che su windows questa cartella può essere montata come "unità di rete". Da windows, su risorse di rete basta fare clic destro sulla cartella condivisa, e poi 'Connetti unità di rete'. Da linux si può montare in CIFS (avendo cura di installare il pacchetto cifs-utils prima), con questa sintassi:
CODE
# mount -t cifs -o defaults,username=UTENTE,password=PASSWORD //ip-macchina/nome-cartella-condivisa-samba mountpoint-sul-pc

Passare le password così allegramente potrebbe apparire una cosa poco ben fatta, soprattutto agli utenti già navigati. In alternativa si può usare l'opzione credentials=nome-file al posto di username e password, usando questo formato per il file con le credenziali:
CODE
username=value

password=value

domain=value

ed avendo cura di importare adeguati permessi a questo file. Ricordatevi che mount di solito viene lanciato come super-user, per cui non è necessario che gli utenti normali abbiano permessi di lettura al file delle credenziali, che potrebbe benissimo appartenere allo stesso root.
Un appunto: username e password vi vengono chiesti sia da windows che da linux. Se state cercando di condividere tutta la home dell'utente transmission, questo potrebbe causare problemi se lo abbiamo creato con l'accesso via password disabilitato, come in questa guida. Per aggirare il problema, possiamo aggiungere utonto (sempre per riprendere l'esempio della fase 2) al gruppo transmission ed autenticarci come utonto all'accesso. Nel mio caso, condivido in rete anche la cartella home dell'utente che uso normalmente sull'headless, per cui ho trovato utile montare in bind la cartella dei file scaricati di transmission dentro la home dell'utente, per evitare di creare ulteriori condivisioni ed incasinarmi la vita.
Oltre a samba, se siete più pratici degli ambienti linux anche l'accesso via ssh/scp può essere un'opzione. A questo proposito vi segnalo sshfs, contenuto nel pacchetto omonimo, che permette di montare cartelle via ssh:
CODE
# sshfs user@ip-macchina:percorso-cartella mountpoint-sul-pc

Vi verrà richiesta la password dell'utente. Per smontare la cartella invece:
CODE
# fusermount -u mountpoint-sul-pc

È un'alternativa discretamente valida a samba ed ha il vantaggio che non necessita di particolare configurazione, ma qualche volta ho avuto problemi a farlo funzionare, ad esempio su LMDE.



APPENDICE 2 - INTERFACCE ALTERNATIVE
Dietro segnalazione (e purtroppo dopo più di un anno dalla stesura della guida originale perchè sono un cane e ho il disturbo dell'attenzione), ho scaricato da qui transmission-remote-gui, un'interfaccia che è in grado di collegarsi alla macchina dove gira il daemon, allo stesso modo di come fate con l'interfaccia web, ma con una GUI molto più simile agli altri client BitTorrent.
Per cominciare, scaricate da qui il pacchetto per il vostro sistema operativo (è disponibile per Windows, Linux [presumo multidistribuzione, non richiede installazione e da quanto ho potuto vedere su debian funziona perfettamente], Mac OS [non ho modo di provarlo, ma se postate qualche screenshot fate una bella cosa], nonchè i sorgenti stessi se voleste compilarlo da voi su altri s.o., come ad esempio FreeBSD). Dopo l'installazione, avviate il programma per trovarvi di fronte a questa finestra.

user posted image

Scrivete nel campo Remote host l'indirizzo IP della macchina su cui fate girare il daemon, senza mettere :9091 alla fine visto che la porta è nel campo imemdiatamente sotto. Infine inserite username e password che avete impostato nella configurazione del daemon e cliccate OK. a questo punto siamo pronti per esplorare l'interfaccia.

user posted image
[Disclaimer: attualmente i torrent sono in pausa se no non funziona l'internet. fisch.gif ]

Come potete vedere, l'interfaccia è molto simile a qualsiasi altro client, l'unica differenza è che anzichè agire come client si collega in remoto al vostro daemon, pilotandone le funzionalità. E' anche dotato di più opzioni dell'interfaccia web, per cui può essere utile installarlo sul vostro pc principale, se ne avete uno. Quando la riducete ad icona, l'interfaccia finisce nel tray come un normalissimo client, ovviamente però non c'è bisogno di tenere sempre acceso il pc finchè la vostra torrentbox continua ad andare: ricordatevi che si tratta solo di un'interfaccia, non del client stesso!
In ogni caso, l'interfaccia web rimane sempre a vostra disposizione da dovunque, essendo "compresa nel prezzo" del daemon e non necessitando di alcuna installazione aggiuntiva sui pc da cui volete controllare il daemon.



APPENDICE 3 - QUALCHE CONSIGLIO SULLE MACCHINE DA USARE
  • Raspberry Pi - maggiori informazioni qui, anche se ha fatto talmente tanto parlare di sè che ora dovrebbe essere celeberrimo; si tratta di un vero e proprio micro-pc, con tanto di output video se uno volesse, ma (come qualsiasi altra macchina) utilizzabile anche "headless". Nella sezione Downloads potete scaricare Raspbian, Pidora ed altre distro ottimizzate per Pi, a seconda di quale preferite (io sono un debianofilo, ad esempio). Collegate un hard disk alla porta USB, impostate fstab perchè vi sia montata sopra quantomeno la cartella downloads di transmission, ed avrete una torrentbox pronta a partire.
  • Cugini "costosi" del Pi - ad esempio, io attualmente giro su una BeagleBoard-xM, un'altra alternativa può essere la Pandaboard (che ha anche il WiFi) o la Hawkboard. Se dovete comprare ex novo, la Pi rimane la scelta migliore IMHO.
  • Plug computers - esiste un'ampia gamma di macchine ARM "compresse" dentro alle dimensioni di un trasformatore; rispetto alla Pi, hanno il vantaggio di essere più facilmente configurabili ed avere già una enclosure (la Pi è una semplice board, l'enclosure dovrete fabbricarla o comprarla a parte), e lo svantaggio di non avere un output video (trascurabile, IMHO, giacchè lo userete headless). Fra i più celebri c'è sicuramente SheevaPlug, già citato nell'introduzione, che ha il vantaggio non indifferente di essere anche ampiamente documentato su internet (c'è una guida su debianizzati, ad esempio). Però basta che scriviate "Plug comnputer" su google e ne trovate una miriade.
  • NAS (hard disk ethernet) - anche questi li ho già accennati nella guida, io usavo un Lacie Internet Space finchè non ho tentato di flashargli una versione sbagliata di u-boot brickandolo del tutto. Questo è appunto il grande svantaggio di queste macchine: hanno un software molto chiuso e necessitano di procedure più o meno complicate per essere sbloccati, cosa che comunque il 75% delle volte vi farà dire addio alla garanzia; oltretutto le board non sono progettate per avere facili accessi, anche solo per avere una console sulla porta seriale c'è da piangere; il bootloader è alloggiato in una memoria flash interna quasi inaccessibile (accedervi per sbrickarlo è il mio obiettivo attuale, ed è tutt'altro che facile), a differenza della Pi e della Beagle-xM dove u-boot è comodamente alloggiato sulla scheda SD che contiene anche il sistema operativo. Dall'altro lato, queste macchine possiedono quasi sempre un'interfaccia SATA, nettamente più veloce ed affidabile dell'USB, ed arrivano con il loro hard disk già incluso.
  • Asus eeePC - recentemente la mia ragazza mi ha passato il suo vecchissimo primo modello di eeePC, quello con 4gb di SSD per intenderci. Ha dimensioni contenute, non fa rumore, consuma pochissimo ed ha anche un piccolo schermo: tutto questo lo rende perfetto come serverino domestico e come torrentbox, e trattandosi di un normalissimo pc con architettura i386 è anche di una facilità imbarazzante da configurare.
  • ...qualsiasi altro pc? - in realtà questi consigli segnalano le macchine più simpatiche, efficienti, utili o facili da usare come torrentbox, ma niente vi impedisce di prendere il vostro towerone e lasciarlo acceso 24/7 a fare da server domestico (cosa che io stesso ho fatto, ma era giustificata dal fatto che ospitava anche un server di minecraft :D ). Lo svantaggio è perlopiù nelle dimensioni fisiche e nel consumo energetico: un multicore (ma anche un Pentium 4) consuma nettamente di più di un Atom ed enormemente di più di un ARM! Entrambi questi svantaggi possono essere ridotti utilizzando un portatile, ad esempio potrebbe essere una buona idea per riciclare un laptop con lo schermo rotto (vi ritrovato anche una tastiera incorporata che sta alla vostra fantasia sfruttare).
Epilogo: trattandosi del mio secondo post sul forum, qualora abbia sbagliato sezione o cose simili fatemelo sapere, meglio per MP perchè mi arrivano le notifiche via email e non si rischia di aspettare un anno per la risposta. Inoltre ogni consiglio per rendere questa guida più chiara e più completa è naturalmente ben accetto. Ora cerco di impostare la sottoscrizione al thread in modo da ricevere email se arrivano dei reply.

Epilogo 2:
Neurot: "Massi, come si fa a..."
Massi: "man."


In caso di dubbi o problemi riguardanti la guida, postate pure in quest'area: LINK

Messaggio modificato da mercury il Nov 16 2013, 09:55 PM

Because we don't know when we will die, we get to think of life as an inexhaustible well, yet everything happens only a certain number of times, and a very small number, really. How many more times will you remember a certain afternoon of your childhood, some afternoon that's so deeply a part of your being that you can't even conceive of your life without it? Perhaps four or five times more, perhaps not even that. How many more times will you watch the full moon rise? Perhaps twenty. And yet it all seems limitless.
The most dramatic was one day in Saigon when a Buddhist parade started off with a sort of a hypnotic chant and the yellow robed priests marching along, and then there stepped forward a very frail old man in his 70s who turned out to be this priest, Quang Duc. And he assumed the lotus posture. And another priest stepped forward and poured gasoline and then suddenly towering flame. The priests and the nuns and the audience moaned and prostrated themselves towards this burning figure and he sat there unflinching and the smell of gasoline and burning flesh in the air, for ten minutes. People thought they saw the face of Buddha in the clouds that night.
My eyes were jaded, so close to the centre I could not see
But now they are fixed and glaring at the sacrifice to be made
Now that I'm aware of the cycles I pray that I can deal
Now that I have shown you these cycles I pray that you can feel
Messaggio PrivatoIndirizzo Email
Top
Utenti totali che stanno leggendo la discussione: 0 (0 Visitatori e 0 Utenti Anonimi)
Gli utenti registrati sono 0 :
 

Opzioni Discussione Discussione chiusaInizia nuova discussioneAvvia sondaggio

 

Scambio etico - ethic share
 Debian powered site  Nginx powered site  Php 5 powered site  MariaDB powered site  xml rss2.0 compliant  no software patents  no software patents