Azureus implements the BitTorrent protocol using java language and comes bundled with many invaluable features for both beginners and advanced users:
- Multiple torrent downloads
- Upload and download speed limiting, both globally and per torrent
- Advanced seeding rules
- Adjustable disk cache
- Only uses one port for all the torrents
- UPnP sets the forward on your router
- Can use a proxy, for both tracker and peer communications
- Fast resume
- Can set a default download dir and move completed files
- Can import torrents automatically from a set dir
- Highly customizable interface
- IRC plugin included for quick help
- Embedded tracker, host your own torrents, automate your shares (periodic scanning of a dir)…
- Distributed Hash Table: host on it a completely decentralised torrent and/or benefit from it when the tracker is offline.

Many useful Azureus plugins are available:
- Auto-adjustment of your upload and download speeds according to your network charge with Autospeed
- Auto-download torrents with RSS Feed Scanner
- Schedule upload and download speed limits with Speed Scheduler
- Receive a mail when a download finishes with Status Mailer
- Add numerous info on torrents (Extra seeding columns, Country Locator)
- Remote control Azureus through the Swing Web Interface or the HTML Web Interface
- If it’s with a BitTorrent client working on versions prior to 3.3, you can safely resume your download with Azureus.
- From 3.3 on, you need to make your client, either pre-allocate the space used by the files or try and finish the allocation. If it can’t, it’s not safe to resume the download with Azureus.
- To continue downloads begun with BitComet, you need to check “Truncate existing files that are too large” in Options > Files as BitComet adds bytes at the end of the files…
Azureus has shown memory usage issues…
- Memory usage is known to climb up and drop back repeatedly when using java jre 1.4.2 with some configurations. The cpu load is higher too.
Please use latest Java 1.5. - A high cpu load has been experienced with some configurations using Zonealarm.
If you want to control the download speed of Azureus..
Some other programs however are also available:
- Netlimiter for windows users (Note: can cause 100% cpu usage on some configurations).
- The Wonder Shaper (or Trickle) for linux (openbsd, solaris…) users.
Azureus gives you 2 settings:
- Max active torrents: maximum number of torrents that are either “downloading”, “seeding” or “ready”.
- Max simultaneous downloads: maximum number of torrents “downloading”.
(always inferior to (Highest port number - Lowest port number) and to (Max active torrents))
For instance, you have 4 torrents in Azureus. You set max active torrents to 3 and max simultaneous downloads to 2.
- You will then have 2 “downloading” torrents, and 1 torrent “ready” and 1 torrent “stopped”.
When one download finishes, the torrent then switches to “seeding” mode and the “ready” torrent begins to download.
Once over, you will have 3 “seeding” torrents and a “stopped” one.
Check here for more details.
If you notice that your Azureus download speed is slow…
First thing to check is your upload limit setting: if you use all your upload bandwidth, your download performance will be greatly impaired.
So be sure and check your line speed.
Run the configuration wizard (introduced in version 2.0.3.2), available from the File menu.
If you want to set some limits manually, please read the following:
Concerning your computer:
- Are you behind a router? Enable port forwarding to your computer on port 6881 (or whatever you specified in the configuration).
Concerning Azureus:
- how many peers are you connected to? Set “number of max connections per torrent” sufficiently high (to 100 for instance) in “configuration” menu > transfer, unless you have some disconnection issues.
- what’s the “total speed” of your torrent (directly under “max uploads” in the general view) ?
this gives you an estimate of the speed of your swarm, so an estimate of your speed (speed of the swarm/numbers of peers you’re connected to) - When allocating bandwith, please allow at the very least 2kB/s per uploads (4kB/s is recommended), that means that using the default value of 4 uploads per torrent, you need AT LEAST 8kB/s of upload per downloading torrents. Not uploading will result in poor performances, trying to increase the number of uploads while the bandwidth is limited WILL result in a serious slow down.
Example:
My line is 512/128.
The settings for a BitTorrent application is directly linked to my max upload speed, here 128kbps (16kB/s).
So my max upload speed in azureus will be 13kB/s (letting room for download and browsing).
With 13kB/s upload, I can have 6 uploads at a time, because one upload needs to be at the very least least 2kB/s (uploading less might be damaging both for you and for the peer you’re uploading to - seeing that you’re not sending fast enough, the peer will ask someone else for the same piece and discard yours when it finally arrives, having downloaded it (and you uploaded it) for nothing… ).
I will have 2 active torrents (1 at most downloading, the other seeding) with 3 uploads each. (3 uploads means I will be uploading to 3 peers at a time on one torrent).
That way, if I’m only downloading, each peer will get 13/3 = 4kB/s approx, which is good and will make them sending me data more likely. The more you upload to a peer, the more likely he is to send you data fast.
And if I’m seeding one torrent and downloading another, each peer will get 13/6 = 2kB/s approx, which is ok.
All those settings should have been taken care of when you first ran the config wizard. Of course, it’s essential that you know your max upload speed for the wizard to be effective, both for the peers and for you.
Those who didn’t know what torrent import/export is?
- A torrent file contains information encoded using a space-efficient technique, however this renders the file hard to understand and modify. The “export torrent” facility allows this torrent information to be saved in an XML format which is more amenable to modification.
- The “import torrent” function takes an XML encoded torrent file and converts this back into the original format, making it usable as the basis for downloading/seeding.
- To uniquely identify a torrent a “hash” is computed from the “INFO” part of the XML document. For example, this hash is used when communicating with a tracker. Changes made to the “INFO” data will alter the hash value and make the torrent incompatible with other downloaders/seeders for the torrent content.
- The XML schema for XML torrent documents can be found here.
- Due to character set issues the torrent name and file name components are currently exported as hex encoded bytes.
Azureus’s in built tracker..
Azureus has a built in tracker to allow users to share torrents directly, rather than uploading them to an “external” tracker. This is called “hosting” and can be performed by selecting this option from the context menu on the “My Torrents” view.
Configure the details of the embedded tracker via the “Tracker” tab on the “Configuration” view. There is an “External tracker IP address” field that must refer to the external IP address of your machine. Note that if you are behind a firewall this may differ from your machine’s local address. To help in this task there is a “Check Address” button here. If your machine’s external address isn’t fixed (e.g. your ISP regularly changes it) then this will interfere with your hosted torrents, as the “announce url” will need to keep changing. If this is the case then it is advisable to use a DNS redirection service, such as DynDNS.org, to assign yourself a fixed DNS name - refer to the site for details.
In order to host a torrent it must have the correct “announce url” defined in the torrent. It must refer to the url of the embedded tracker. Use the File Menu/ “create a torrent” facility to construct a torrent, selecting the “Use Azureus embedded tracker” option to ensure the correct announce url is used. Then open the torrent and select “host”. You will probably want to seed the new torrent, at least initially, so start the torrent and navigate to the file/directory used to create the torrent when selecting the download location.
You will see on the tracker configuration dialog that there is a port associated with the tracker, default value 6969. If you have a router/firewall you will need to open this port up for incoming TCP connections, as you will have done for the peer transport ports (default 6881 to 6889).
The tracker also, if enabled, publishes the hosted torrents and statistics as a web page. This can be accessed by using the tracker’s root url. For example, http://127.0.0.1:6969/. Other users can then download the torrents directly from here ( http://yourexternalIP:6969/ ).
Communication with the tracker can be encrypted using SSL, again this requires a suitable client such as Azureus.
Configuration of SSL is required for both the Azureus downloader and tracker:
Tracker configuration: It is necessary to generate a public/private key pair for the SSL framework and store this in a file called “.keystore” located in Azureus’s home directory (where it stores the “azureus.config” file). It currently must have a keystore and key password of “changeit”. Such a key pair can be generated via the following Java command (”keytool” can be found in the JRE bin directory).
- keytool -genkey -keystore %home%\.keystore -keypass changeit -storepass changeit -keyalg rsa -alias azureus
Various questions are asked during the key generation process. The important one is the first one, “What is your first and last name?” Respond to this with the dns name (or IP address) of the tracker.
The certificate required for clients can then be exported via
- keytool -export -keystore %home%\.keystore -keypass changeit -storepass changeit -alias azureus -file azureus.cer
Note that it is the certificate, NOT the private key that is distributed for client use. Also note that it is possible to directly obtain the certificate from the SSL protected tracker if using Internet Explorer, as it allows you to save the certificate when contacting the site.
Downloader configuration: The client must trust the certificate in order to communicate with the site. The certificate must be imported on the client into a certificate store called “.certs” in the same place as “.keystore” above. The command to do this is:
- keytool -import -keystore %home%\.certs -alias azureus -file azureus.cer
assuming the certificate is in file “azureus.cer”. Again the password must be “changeit”. When prompted say “yes” to “do you trust this certificate”.
A good way to test that the tracker and downloader setup is going to work is to seed a torrent on the SSL tracker. Note that this requires Azureus to be set up as both Tracker and downloader above, and hence the “.keystore” and “.certs” files must both be populated via the three steps of key generation, certificate export and certificate import.
When creating a torrent to host using SSL, check the SSL checkbox on the “create torrent” wizard. This ensures that the announce url starts with “https” (as opposed to “http”) and also that the SSL port number is used (as opposed to the non-SSL port, again see the Tracker configuration).