Archive

Tag Archives: p2p


Slimrat is a fantastic tool that allows you to automate downloads from rapidshare and several other download services.

Debian users can download slimrat using apt using the familiar “sudo apt-get install slimrat”.

Simply invoke the program in a terminal with

$ slimrat downloadlink 

One nice feature is the ability to queue up as many downloads as you like in a text file, and then download all, in sequence, with the software successfully negotiating waiting times between downloads.

To download a whole list.txt of files use the ‘-l’ option:

$ slimrat -l list.txt

personally, i would not want to be without this one. absolutely fantastic command line app. However, if you are looking for GUI program of this nature – dont bother with GUI front ends for slimrat, get Tucan instead!

p2p

Wondering which peer-2-peer method is best for you? I’ll be looking at some of the most popular, and rating them in different areas. It appears that this post got a little longer than i had originally intended, but i didnt want to cut anything because this is good stuff. Read on…

What do you want to download?

The first question i shall ask is: what do you want to download? It is true that some networks/protocols are better for certain content than others. Here is a quick rule of thumb.

Anime – IRC, FTP
I find that Amine is best obtained from either IRC, or FTP. Most fansub groups maintain there releases through these two methods, so it tends to be the most organised. I find torrents can contain a mish mash of different dubs and subs and differing file types and are best avoided.

Comics – IRC, Rapidshare
Comics are Usually released as .cbr or .cbz files. Rapidshare is the best way to go. many rapidshare forums have threads listing thousands of issues, very well organised.

Music – Soulseek, WinMX
Soulseek Wins. Not the most graceful or effective p2p tool, but there is so much rare and hard to find music on here, it just cant be overlooked.

Current TV – Torrents, Gnutella, FTP, IRC
Torrents and IRC are best for current TV – usually encoded and uploaded within hours of airing. Torrents are probably top because it is the most rapid distribution method, allowing a file to proliferate in mere hours.

Current movies – Torrents, IRC, Rapidshare
Again, Torrents are very good for movie releases. The problem lies in finding high quality encodes with high quality sources. ‘Now Showing’ films at the cinema are unlikely to be good quality downloads (Cams – recorded in the cinema on handcams)

Games – Torrents
Games are widely available on all p2p methods. OF course, with games and software, viruses are a significant threat. this goes without saying, but always scan files with up-to-date AV before opening. and download from a trustworthy source – either a private torrent tracker or private FTP are good. Also read torrent comments to see what other users have said about the file.

Old stuff (TV, music, movies – FTP, Rapidshare, Gnutella,
If you’re lucky to enough to meet someone who archives a show on his FTP, then congratulations. Otherwise RS and Gnutella can be the way to go. Also, entire series and older stuff is released as torrents, but there will be fewer seeds on unpopular and less up to date stuff.

*about Newsgroups*
I have personally never used newsgroups, but my understanding is that you can get almost anything from them. I once spent weeks scouring the internet, every (free) filesharing method i knew of looking for a particular file – no luck, it just was not available, simple as that. However a friend of mine who is a subscribed newsgroup user *DID* find the file for me. And in just a day he had brought it into work for me! Needless to say, I wasted no time and uploaded it again in torrent form so more people could use it.

The above list is just an illustration, and will help you choose a network/protocol to find what you are looking for. But you wont find many people who just stick to one method, it makes no sense to limit yourself.

Ease of use

This is an important point. some P2P setups are not well suited for beginners, of course, savvy users can quickly move past this topic, but I have known many ppl stick with kazaa and bearshare – not because they dont know of something better, they just dont know how to do it. Here is how I rank the p2p methods in terms of ease of use.

1. Gnutella clients/Soulseek/WinMX

Very easy to use. download, install, and launch the client. Easy to use tabs including search and current downloads/uploads. Users must setup a share folder and share content or risk being banned by other peers

2. Rapidshare

In simple terms an HTTP file server where other users have added files. Visit a link, click download, wait for an alotted time, and you’re browser will download the file. The problem is, most downloads are split .rar archives, and only 1 file can be downloaded at a time, which makes downloading by hand very tedious. Use an automation tool such as Tucan(cross format, highly recommended) or Rdown(firefox extension) which allows you to paste all your links, and then automates the downloading.

3. FTP

FTP is very easy to use – the difficult part is getting access to the server! FTPs are private servers,so you need to know somebody who can give you access, or contribute in some way to earn access. If you do have access, there are numerous programs that will alow you to upload and download files. It works in a similar way to moving files around your own computer, just a bit slower =)

4. Torrents

Torrents are generally easy to use. The reason its in fourth place, is because sometimes it can be hard to fix problems when using torrents.

Download a client – i recommend utorrent to windows users. In linux I like rtorrent, but its a bit hard to use. Something like Transmission or ktorrent are both good.

Find a good site to source your torrents, download the small .torrent files. open them using your client and away you go.

5. DC

From what I understand, a DC client allows a user to connect to a wide number of hubs. A search facility can the be used to locate files from the connected hubs. Most hubs require clients to share a certain number of gigs/files in order to connect. Can require configuration in order to get working correctly

6. IRC

Most people know of IRC for chatting, but there is a huge file sharing community on IRC. The problem is learning how to use it. IRC is probably the least accessible file sharing protocol I know, but also one of my favourite. You’ll need to register on a given IRC network, identify, connect a chan that is serving files, wait for triggers regarding files, and then use a command line interface similar to linux’s BASH in order to get files. There is also a lot of etiquette that comes into play when using IRC – fail to follow procedure and you could find yourself banned.

So yes, IRC has the steepest learning curve, but is actually a lot of fun to use – I will dedicate an entire post to this topic in the future so watch out.

Need your files right now?

It is hard to be definitive on the speed of a given protocol, because so much varies. For example (in no particular ranking):

Torrents
with torrents, a very new, or very old file will be slow, as there will be few peers sharing the entire file. But a mid-life torrent is usually very fast, and can max out the majority of modern connections. Also very popular files will download very quickly using torrents, but un popular or rare files can take ages.

Rapidshare
Rapidshare is perhaps the most consistent in terms of speed,and therefore the easiest to predict download time. The only problem is,its not the fastest. Free users are heavily restricted – only able to download 1 file at a time, and must wait a given number of seconds between downloading each 100mb segment of their download Rapidshare is an absolute horror to use without a program like Tucan.

IRC
Speeds here depend on the individual file server that you are connecting too, and by and large, transfer rates are very fast. The problem occurs when there are queues. Most bots or users on IRC will only serve a small number of files simultaneously, to prevent the connection getting overloaded (typically 2-4 slots) If you request a file when all slots are full,you’ll be placed into the queue to await a free slot. Even still, the bot will tend to give priority to Voiced users, Ops and personal friends, contributers, etc, which means, as a newbie, you could find yourself at the bottom of the queue for a long time as priority connections overtake you!

SoulSeek
I have never been impressed with the speeds on soulseek. Luckily this network specialises in music, which means small files. Soulseek is a bit out of date technologically – it only allows for connections between 2 peers for a given file, meaning that you cant download a single file from multiple users who all have the same file – you have to select the particular user and file, initiate the download and potentially sit in a queue until a download spot becomes available.

FTP
Again, speed is dependant on the FTP servers connection and its current load – normally you will find that FTP transfers are very fast. The problem is, not many of us are blessed with knowing people kind enough to share they’re beloved FTP server with you. Yes, You’ll need IP address, username and password in order to download from an FTP.

Gnutella
Allows distributed distribution among many peers, meaning many parts of one file can be downloaded from many sources. At the user end, it appears somewhat similar to soulseek, but the way files are actually transfered is mare akin to torrents. Gnutella, despite its name, is not associated with the GNU project, but many Gnutella clients are realeased under the GNU GPL licence.

Anonimity and security

None of the above protocols are inately anonimous, meaning there is a chance (if you use p2p download copywritten material) that you can be identified and prosicuted. some torrent clients encrypt data, but this is normally a measure against traffic shaping which is a common strategy by facist ISPs (i used to work for an ISP – all they care about is the lost bandwitdth and server load that p2p causes)

However there are ways to make these methods anonimous.for example, connecting through Tor – a distibuted proxy which bounces connections through many computers, thus masking your IP address. Another is a piece of software called peer guardian which again, supposedly protects users when connecting to p2p networks.

There are however, a new breed file sharing protocols/networks which are innately anonymous and do not broadcast IPs, effectively making you untraceable. Such examples include GNUnet and Freenet

As far as security against viruses and malware goes. There is no way to be certain a file is clean. common sense prevails. Non executable media is more likely to be safe – i.e. video files, plain text files or music. But that does not mean you are safe. some media files will attempt to download trojans mascarading as codecs to name just one. Be extremely careful downloading any software or games. The safest places for these downloads are private torrent trackers and private FTPs. Windows users: always run up-to-date AV and scan everything once downloaded.

My advice is, if you use a spare machine as a downoading workhorse – do the sensible thing and run linux on it!

Conclusion

There is no single method which is the best. For most people, torrents or the Gnutella network will be adequate. I myself Use a selection torrents and rapidshare, occasionally firing up nicotine (linux soulseek client) when i’m looking for music. try them all, see which you like. feel free to leave comments and share your own experiences.

Rtorrent is by far my favourite command line app and absolute favourite bittorrent client. However, its not like transmission or utorrent, there is some manual configuration required to get it working how you want.

and for me, the most important thing is transfer speeds.

Its something i read on countless forums – “I down load a torrent with transmission, and i get full speed. I try the same torrent with rtorrent and its really slow, or wont even connect”

So you opened ports 6881-6889 on your router and still no joy?

I had this problem too, and it is easier than you might think to fix. The first place you need to look is:

~/.rtorrent.rc

If that file doesnt exist, you need to create it your self using a text editor – just paste the below text into it.

# 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 = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. “0” for unlimited.
#download_rate = 0
#upload_rate = 0

# Default directory to save the downloaded torrents.
#directory = ./# 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 = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. “0” for unlimited.
#download_rate = 0
#upload_rate = 0

# Default directory to save the downloaded torrents.
#directory = ./

# Default session directory. Make sure you don’t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#session = ./session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_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.0
#schedule = ratio,60,60,”stop_on_ratio=200,200M,2000″

# 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-6889

# 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 = no

# 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_plaintext

# 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

Thats just the default .rtorrent.rc, and nearly all options are commented out, so at the moment this RC does very little. Anyway, i’m not hear to explain the this whole thing, if thats what you need, i’ll point you back kmandla’s post.

The only thing we are going to change in this file is where it says

# Port range to use for listening.
# port_range = 6881-6889

All we are going to do is remove the ‘#’ from the port_range line, which will force rtorrent to use the ports we have specified. make sure ports you want to use are specified – if you are unsure, use the same as I have.

Ok, now save the file. The next time you run rtorrent wit will be using these ports only. thats the same as the ports you forwarded from your router yes? but you still have slow/no connections?

This is because of iptables – the firewall that comes built in to most linux distos. To look at your iptables output, type:

sudo iptables -L

It should look something like this:

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

You’ll need to enter two commands to set iptables to allow the specified port range (port 6881-6889)

Enter:

sudo iptables -A INPUT -p tcp --destination-port 6881:6889 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --source-port 6881:6889 -j ACCEPT

And thats it. To summarise, we:
– Ensured we had a working .rtorrent.rc file in the home directory
– Edited the .rtorrent.rc file to force rtorrent to use certain ports
– Set iptables to permit the specified port range

Why would you want to use a command line app like rtorrent for torrents? I’ll tell you why.

Say you are at work, and you wanted to ensure that your favourite show (or whatever) is ready waiting for you when you get home, but you forgot to setup the download before leaving work…

well, using ssh, you can connect to your home machine, launch an app like rtorrent and set all the downloads you want. Hell, you could even launch a txt only browser on your home machine via ssh and go searching for downloads all day! but more on those sometime soon (disclaimer: nogui.wordpress.com does not condone slacking off in the work place)

Lets not forget also, this program is extremely lightweight and can run on very limited hardware,

A download waiting to begin in rtorrent

A download waiting to begin in rtorrent

Ubuntu users just need to type ‘sudo apt-get install rtorrent’. once installed, check out ‘man rtorrent’ for the command list. its not too hard, I could figure it out 🙂

For an excellent guide on how to use this program, check this out: http://kmandla.wordpress.com/2007/05/02/howto-use-rtorrent-like-a-pro/

Ok, so this is another gui app, but I simply had to post this one. Tucan is cross format application that automates the download process for sites such as rapidshare and megaupload. simply copy and paste your links into the software and tucan will test the links and then proceed to download them all. fire it off and forget about it! and bgest of all, it works on free accounts!

Paste all your links into the app, and tucan does the rest!

Paste all your links into the app, and tucan does the rest!

I couldn’t find this app on my build in repositories, so i downloaded it from here:

http://www.getdeb.net/app/Tucan

Just download the .deb and double click to install (also available for windows)