Server per il P2P con Debian: differenze tra le versioni

Riga 36: Riga 36:


===Configurazione===
===Configurazione===
====Directory====
Creiamo le ''directory'' di lavoro:
Creiamo le ''directory'' di lavoro:
<pre>$ mkdir -p /home/mulo/{session,incomplete,watch,complete}</pre>Il loro utilizzo sarà il seguente*''session'': cartella contenente i ''torrent'' attualmente in ''download/upload''.*''watch'': cartella dove inserire i file ''torrent'' (.torrent) che si desidera scaricare; tale operazione potrà essere gestita direttamente da ''Rtgui''. *''incomplete'': cartella dei file incompleti.*''complete'': cartella dei file scaricati.Configuriamo ora ''Rtorrent'' creando il file <tt>/home/mulo/.rtorrent.rc</tt> come il seguente. Ricordate sempre che per avere consigli sul come crearlo a partire da zero potete utilizzare il comodo esempio presente nella documentazione in ''/usr/share/doc/rtorrent/examples/rtorrent.rc'' sul quale ho basato la mia configurazione.<pre># This is an example resource file for rTorrent. Copy to# ~/.rtorrent.rc and enable/modify the options as needed. Remember to# uncomment the options you wish to enable.# Maximum and minimum number of peers to connect to per torrent.min_peers = 40max_peers = 100# Same as above but for seeding completed torrents (-1 = same as downloading)min_peers_seed = 5max_peers_seed = 10# Maximum number of simultanious uploads per torrent.max_uploads = 5# Global upload and download rate in KiB. "0" for unlimited.download_rate = 75upload_rate = 5# Default directory to save the downloaded torrents.#directory = ./completedirectory = /home/mulo/complete# Default session directory. Make sure you don't run multiple instance# of rtorrent using the same session directory. Perhaps using a# relative path?session = /home/mulo/session# Watch a directory for new torrents, and stop those that have been# deleted.schedule = watch_directory,10,10,load_start=/home/mulo/watch/*.torrentschedule = tied_directory,10,10,start_tied=schedule = untied_directory,10,10,close_untied=# */# Close torrents when diskspace is low.#schedule = low_diskspace,5,60,close_low_diskspace=100M# Stop torrents when reaching upload ratio in percent,# when also reaching total upload in bytes, or when# reaching final upload ratio in percent.# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0schedule = ratio,60,60,"stop_on_ratio=250,250M,2500"# Move completed torrentssystem.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,/home/mulo/complete;d.set_directory=/home/mulo/complete"# The ip address reported to the tracker.#ip = 127.0.0.1#ip = rakshasa.no# The ip address the listening socket and outgoing connections is# bound to.#bind = 127.0.0.1#bind = rakshasa.no# Port range to use for listening.port_range = 6881-6999# Start opening ports at a random position within the port range.#port_random = no# Check hash for finished torrents. Might be usefull until the bug is# fixed that causes lack of diskspace not to be properly reported.#check_hash = nocheck_hash = yes# Set whetever the client should try to connect to UDP trackers.use_udp_trackers = yes# Alternative calls to bind and ip that should handle dynamic ip's.#schedule = ip_tick,0,1800,ip=rakshasa#schedule = bind_tick,0,1800,bind=rakshasa# Encryption options, set to none (default) or any combination of the following:# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext## The example value allows incoming encrypted connections, starts unencrypted# outgoing connections but retries with encryption if they fail, preferring# plaintext to RC4 encryption after the encrypted handshake## encryption = allow_incoming,enable_retry,prefer_plaintextencryption = allow_incoming,try_outgoing,enable_retry# Enable DHT support for trackerless torrents or when all trackers are down.# May be set to "disable" (completely disable DHT), "off" (do not start DHT),# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).# The default is "off". For DHT to work, a session directory must be defined.# dht = auto# UDP port to use for DHT. # dht_port = 6881# Enable peer exchange (for torrents not marked private)#peer_exchange = yes## Do not modify the following parameters unless you know what you're doing.## Hash read-ahead controls how many MB to request the kernel to read# ahead. If the value is too low the disk may not be fully utilized,# while if too high the kernel might not be able to keep the read# pages in memory thus end up trashing.#hash_read_ahead = 10# Interval between attempts to check the hash, in milliseconds.#hash_interval = 100# Number of attempts to check the hash while using the mincore status,# before forcing. Overworked systems might need lower values to get a# decent hash checking rate.#hash_max_tries = 10# This will set rtorrent/scgi to listen on localhost, port 5000scgi_port = localhost:5000# Force rtorrent to use the UTF-8 encoding. The XMLRPC standard requires UTF-8 repliesencoding_list=UTF-8</pre>La maggior parte di queste opzioni sono esplicite, altre un po' ermetiche; è possibile consultare il [http://libtorrent.rakshasa.no/rtorrent/rtorrent.1.html manuale] per avere maggiori informazioni. Inoltre a questa [http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks pagina] è possibile avere informazioni avanzate in merito ai possibili comandi utilizzabili.Infine impostiamo alcuni parametri della webGui. Del file ''/etc/rtgui/config.php'' è sufficiente modificare i seguenti sulla base delle proprie impostazioni appena assegnate:<pre>$watchdir="/home/mulo/watch/";$downloaddir="/home/mulo/";</pre>
<pre>$ mkdir -p /home/mulo/{session,incomplete,watch,complete}</pre>
 
Il loro utilizzo sarà il seguente
* ''session'': cartella contenente i ''torrent'' attualmente in ''download/upload''.
* ''watch'': cartella dove inserire i file ''torrent'' (.torrent) che si desidera scaricare; tale operazione potrà essere gestita direttamente da ''Rtgui''.
* ''incomplete'': cartella dei file incompleti.
* ''complete'': cartella dei file scaricati.
 
====File di config====
Configuriamo ora ''Rtorrent'' creando il file <tt>/home/mulo/.rtorrent.rc</tt> come il seguente. Ricordate sempre che per avere consigli sul come crearlo a partire da zero potete utilizzare il comodo esempio presente nella documentazione in ''/usr/share/doc/rtorrent/examples/rtorrent.rc'' sul quale ho basato la mia configurazione.<pre># This is an example resource file for rTorrent. Copy to# ~/.rtorrent.rc and enable/modify the options as needed. Remember to# uncomment the options you wish to enable.# Maximum and minimum number of peers to connect to per torrent.min_peers = 40max_peers = 100# Same as above but for seeding completed torrents (-1 = same as downloading)min_peers_seed = 5max_peers_seed = 10# Maximum number of simultanious uploads per torrent.max_uploads = 5# Global upload and download rate in KiB. "0" for unlimited.download_rate = 75upload_rate = 5# Default directory to save the downloaded torrents.#directory = ./completedirectory = /home/mulo/complete# Default session directory. Make sure you don't run multiple instance# of rtorrent using the same session directory. Perhaps using a# relative path?session = /home/mulo/session# Watch a directory for new torrents, and stop those that have been# deleted.schedule = watch_directory,10,10,load_start=/home/mulo/watch/*.torrentschedule = tied_directory,10,10,start_tied=schedule = untied_directory,10,10,close_untied=# */# Close torrents when diskspace is low.#schedule = low_diskspace,5,60,close_low_diskspace=100M# Stop torrents when reaching upload ratio in percent,# when also reaching total upload in bytes, or when# reaching final upload ratio in percent.# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0schedule = ratio,60,60,"stop_on_ratio=250,250M,2500"# Move completed torrentssystem.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,/home/mulo/complete;d.set_directory=/home/mulo/complete"# The ip address reported to the tracker.#ip = 127.0.0.1#ip = rakshasa.no# The ip address the listening socket and outgoing connections is# bound to.#bind = 127.0.0.1#bind = rakshasa.no# Port range to use for listening.port_range = 6881-6999# Start opening ports at a random position within the port range.#port_random = no# Check hash for finished torrents. Might be usefull until the bug is# fixed that causes lack of diskspace not to be properly reported.#check_hash = nocheck_hash = yes# Set whetever the client should try to connect to UDP trackers.use_udp_trackers = yes# Alternative calls to bind and ip that should handle dynamic ip's.#schedule = ip_tick,0,1800,ip=rakshasa#schedule = bind_tick,0,1800,bind=rakshasa# Encryption options, set to none (default) or any combination of the following:# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext## The example value allows incoming encrypted connections, starts unencrypted# outgoing connections but retries with encryption if they fail, preferring# plaintext to RC4 encryption after the encrypted handshake## encryption = allow_incoming,enable_retry,prefer_plaintextencryption = allow_incoming,try_outgoing,enable_retry# Enable DHT support for trackerless torrents or when all trackers are down.# May be set to "disable" (completely disable DHT), "off" (do not start DHT),# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).# The default is "off". For DHT to work, a session directory must be defined.# dht = auto# UDP port to use for DHT. # dht_port = 6881# Enable peer exchange (for torrents not marked private)#peer_exchange = yes## Do not modify the following parameters unless you know what you're doing.## Hash read-ahead controls how many MB to request the kernel to read# ahead. If the value is too low the disk may not be fully utilized,# while if too high the kernel might not be able to keep the read# pages in memory thus end up trashing.#hash_read_ahead = 10# Interval between attempts to check the hash, in milliseconds.#hash_interval = 100# Number of attempts to check the hash while using the mincore status,# before forcing. Overworked systems might need lower values to get a# decent hash checking rate.#hash_max_tries = 10# This will set rtorrent/scgi to listen on localhost, port 5000scgi_port = localhost:5000# Force rtorrent to use the UTF-8 encoding. The XMLRPC standard requires UTF-8 repliesencoding_list=UTF-8</pre>La maggior parte di queste opzioni sono esplicite, altre un po' ermetiche; è possibile consultare il [http://libtorrent.rakshasa.no/rtorrent/rtorrent.1.html manuale] per avere maggiori informazioni. Inoltre a questa [http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks pagina] è possibile avere informazioni avanzate in merito ai possibili comandi utilizzabili.Infine impostiamo alcuni parametri della webGui. Del file ''/etc/rtgui/config.php'' è sufficiente modificare i seguenti sulla base delle proprie impostazioni appena assegnate:<pre>$watchdir="/home/mulo/watch/";$downloaddir="/home/mulo/";</pre>


===Script di avvio===
===Script di avvio===
909

contributi