Author: Federico Kereki
You can find Linux clients for several file-sharing networks. Taking into account how many clients are available for each, the current top three peer-to-peer (P2P) networks are eDonkey2000, FastTrack (derived from Kazaa), and Gnutella. Here are some desktop applications that allow you to become a full-fledged file sharer.
The eDonkey2000 (eD2k) network is a server-based, P2P, file-sharing network that primarily contains music files, video files, text files, and software. The servers store information about available files and act as communications centers, but the data itself resides on the client nodes. The list of available servers changes frequently, since anybody can become a server by running the appropriate software on a machine connected to the Web, so client programs usually must download server lists.
To access the network from a Linux client, you have a couple of choices. The simplest one to get started with is aMule. Installation is simple, but running it at full capacity requires opening about half a dozen ports in your firewall and forwarding them to your computer if you happen to be behind a router. (If you don’t do that and your computer cannot be properly accessed from the Web, you will become sort of a second-class citizen, and you won’t be able to run high-speed transfers.)
aMule is licensed under the GPL, and its current version is 2.1.3; version 2.2.0 is promised to be on its way. You can run aMule under Linux, BSD (and its variants), Mac OS X, Solaris, and even Windows.
aMule’s interesting features include its internationalization (it has translations for about 30 languages), support for compressed and encrypted transmissions, IP filters to avoid known bad IP addresses, a credit system that rewards users who upload files to other users, a search function that includes Boolean operators (AND, OR, NOT), several methods to avoid or correct corrupt files, and fine-tuning of communication parameters, going far beyond just top download or upload speed limits. You can even set it up to run on your machine and control it remotely through a Web interface.
Another interesting eD2k client is MLdonkey, an actively developed GPL-licensed program that also runs under Linux, Mac OS X, Windows, Solaris, and a few more. This program is more powerful, because (through its plug-in architecture) it can also connect to other protocols, including Gnutella, FastTrack, BitTorrent, and more. However, this is balanced with the fact that it provides only the P2P engine, and you must also install a separate user interface before you can use it. This can be an inconvenience, because you won’t be able to download anything with the server alone, but it allows to control your downloads locally, through a GUI, or remotely, through a Web browser; all you have to do is install the appropriate interface.
Probably the best-known interface for MLDonkey is sancho, which is written in Java, so you can run it practically everywhere. (Its name refers to the fictional Sancho Panza, Don Quixote’s squire, who rides a donkey.) Installing the latest version is just a matter of running a provided script.
Kazaa was the first wildly popular product written by the creators of Skype, and its P2P file-sharing technology was also used for their latest development, Joost, a system for distributing video and TV over the Net. Currently, the Australian company Sharman Networks owns the rights to the Kazaa software itself, but not its protocol, which is called FastTrack. Currently, there are three derivative versions of the protocol, but the name usually refers to Kazaa’s network. The most common use of Kazaa is to exchange music files, but you can use the network to exchange all kinds of files.
A simple way to connect to FastTrack, Gnutella, and other networks is to use giFT, whose name recursively means “giFT Internet File Transfer.” giFT is similar to MLDonkey: it runs as a daemon and allows you to use several protocols by means of plugins. Currently FastTrack and Gnutella (and also Ares, used mostly by Windows users) are available, with eDonkey (and more) in alpha version.
To control the daemon, you have to install a separate client, such as giFTcurs (the official giFT client, with a text-based, antique-looking interface) or the more modern Apollon. Neither program has had a new release in more than two years, so they might seem dated.
Gnutella (and, yes, its name has to do with the sweet hazelnut spread called Nutella) has been around since early 2000 and is fully distributed (all machines in the network serve both as clients and servers) instead of semicentralized like Kazaa and eDonkey. After the Napster service ran into legal problems in 2001, Gnutella grew in popularity, and scalability problems started to appear. The solution to this involved upgrading the protocol to include “ultrapeers” — special nodes that do part of the routing and data sending — and employing other techniques to reduce traffic overhead and provide more efficient searching. The decentralized aspect of Gnutella makes it resilient and impossible for any person or company to shut down or control. All kinds of files are available in this network.
LimeWire may be the most popular client for the Gnutella network. It is free of cost, written in Java, licensed under the GPL, and can run in Linux, Windows, and other operating systems. The LimeWire Pro version costs about $20 and features more optimized search results, speedier downloads, and the ability to connect to more sources, among other things. LimeWire has spawned many derivative programs, including FrostWire, which also supports BitTorrent and some features from the paid version of LimeWire.
Another client with a long history is gtk-gnutella (GTKG). As its name indicates, this program was developed for GTK+, but it doesn’t require GNOME to run. It is released under the GPL, and the latest version is 0.96.4 from July 2007. Despite its having not reached version 1.0 yet, the program is fully functional and lets you search, download, and upload files. The program requires fewer resources than other programs and has powerful network features (for example, to avoid spamming or for filtering irrelevant data), but its interface provides many options that are difficult to understand for less knowledgeable users.
Linux offers plenty of options for P2P file sharing. Since all of the available networks provide about the same content, you can decide what to install depending on what you like in a client. If you want to cover all bases, MLdonkey and giFT require a somewhat more complicated installation (requiring separate components) but allow you to connect to several networks. aMule and gtk-gnutella are powerful and speedy, but only allow connecting to the eDonkey network. Programs like LimeWire are also “one-network-only” but can be used (because of their Java origin) just about everywhere.
- Internet & WWW