Brian’s BitTorrent FAQ and Guide

Brians Bittorrent Faq

(Category) Brian’s BitTorrent FAQ and Guide

(Category) Brian’s BitTorrent FAQ and Guide : (Category) Background Information
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Background Information : (Answer) What is BitTorrent?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Background Information : (Answer) How does BitTorrent compare to other forms of file transfer?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Microsoft Windows
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Mac OS X

  • Move all installed copies/versions of bittorrent to the trash.
  • Empty the trash.
  • Open the BitTorrent_OSX_3.2.2a.dmg file again and copy the bittorrent program directly into the Applications folder.
  • Official client v3.1 – Try this previous version of the client if you have difficulties with 3.2.2.
  • 3.1 client with rate limiting patch – I have no additional details about this version.
  • Sarwat Khan’s OS X client – You may also want to try this alternative to the stock OS X build. See also: Screenshots
  • Additionally, you should be able to run any of the various Python/wxPython based clients directly from the source code, but it may take a little bit of work. Here are the steps you should follow. Note, I am not a Mac user so I can’t guarantee this will work, if someone could do it and send me the exact instructions, I’ll post it here.
    1. Install Python. If you are running 10.2, download this bundle of Python 2.3a3 (see also: Home Page.) If you are running 10.1, there is a pre-packaged version here &emdash; please read the instructions on the home page, note that you cannot use stuffit with this archive. If you want more information on Python and Macs, try this link.
    2. Install wxPython. For 10.2 and Python 2.3, use this package ( If you don’t have Python 2.3, you may have to use a previous version, such as this one ( This page at Sourceforge contains the latest as well as several previous versions.
    3. Install the source code for the BitTorrent client. The above section for Windows clients has links to source code.
    4. To start the GUI client, run “python --responsefile file.torrent“, where file.torrent is the torrent file which you have already downloaded. See also the section below on using the BitTorrent command line tools. Also, the command-line version of Python should be in your path for this to work. See this page for instructions on adding /usr/local/bin to your path.

(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Mac OS 9
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Linux/Unix
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Java Clients (platform independent)
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Windows Uninstall
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) Mac OS X Uninstall
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Installing BitTorrent : (Answer) What other BitTorrent-related utilities are out there?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) I’ve installed BitTorrent, now what? There’s no program to run!
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) I just installed BitTorrent but whenever I click on a link I just get a small file and nothing happens?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) What is this Mandrake thing I’m invited to download after BitTorrent?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) What do all these words mean? (seeding, uploading, share rating, etc.)
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) BitTorrent says I’m uploading, what files am I sharing? What’s being sent?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) What happens if I cancel a download? How can I resume?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) Why is my downloaded file huge even though I only downloaded a small bit?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) Why does my hard drive go crazy at the beginning of a resumed download?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Started with BitTorrent : (Answer) What is seeding? How do I do it? Why should I leave the client open after it finishes downloading?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Configuring Your Network for BitTorrent
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Configuring Your Network for BitTorrent : (Answer) What ports does BitTorrent use? Will it work with a firewall/NAT?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Configuring Your Network for BitTorrent : (Answer) Can I use BitTorrent with a proxy server?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Configuring Your Network for BitTorrent : (Answer) What if I need to use SOCKS to access the Internet?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .RAR, .R00, .R01, .Rnn
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .CBR, .CBZ
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .PAR, .P01, .Pnn
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .NFO
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .SFV
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .BIN, .CUE
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Category) How do I open this file that I’ve just downloaded? : (Answer) Files ending in .ISO, .CCD, .MDS, .BWT, .CDI, .NRG
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Opening/Viewing/Using Files You’ve Downloaded : (Answer) Where can I get help working with this multimedia file?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems : (Answer) I’m getting an error message, what does it mean?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems : (Answer) My download speed seems slow, what can I do to increase it?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems : (Answer) What can I do if I get a blue screen error, spontaneous reboot, or lockup?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems : (Answer) My internet connection drops, often during very fast downloads. What can I do?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Troubleshooting Errors and Problems : (Answer) How can I get a list of the people to whom I’m connected?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) How do I create a new torrent (share a file I have with others)?IMPORTANT NOTE! Despite what I would call common sense and courtesy, I see people doing stupid things at this point all the time! For example, if the file you are sharing was originally posted to Usenet and came in a number of parts (.RAR, .R00, .R01), do not put those parts in an archive and then create a torrent of that. Most media files are already compressed, and rar-ing or zip-ing them just adds an additional step for everyone that receives the files. And for the love of $DEITY, do not include the parity files in your torrent! In summary, if the end product you are sharing is an bittorrent faq .AVI file, create a torrent for that. This makes it easier for people to hold on to the original form of the torrent, and this tends to lead to it being shared longer. If you distribute your AVI file as an RAR containing 33 parts, which itself contains a ZIP, then people will trudge through the processing of the files to get the AVI, and then most likely delete the original since it’s in a form that is useless to them. Therefore, they cannot (re-)seed the torrent since they’ve lost the original format. Finally, you do your part to put an end to the neverending stream of “How do I open .R00 files?” questions. (end opinionated rant). Get more details here:

  • Run maketorrent. (See (Xref) What other BitTorrent-related utilities are out there? if you haven’t installed it.) If you are sharing a single file, click the (file) button, otherwise click the (dir) button. In either case a file dialog will appear, and you should select the file/directory that you wish to share.
  • Enter the tracker’s announce url in the space provided, or use the drop-down list to select from one of a common list of trackers. Remember, if you use a site’s tracker when creating a .torrent file, plan to upload/post the file to that community. You can also add a comment, but it’s optional.
  • Select the piece size, or just accept the default value of (auto). In general, the smaller the piece size, the more efficient the BitTorrent download will be, but will result in a larger .torrent file. 256 kB seems to be the most common piece size in use these days, but you can experiment with other settings if you want. Avoid very large piece sizes for small files; likewise avoid small piece sizes for very large files.
  • Click create torrent to begin the process of creating the file. You can then select if you want to create a single .torrent for all the files in the directory, or a number of separate .torrents. Most of the time you want a single .torrent for the whole folder, unless you know what you’re doing. When finished, you should find a newly created .torrent file in the same directory as the file/directory you selected to share.
  • Upload this .torrent file to a web server. Usually this means going to the web page of the site whose tracker you used and clicking the “Upload torrent” link. The procedure varies from site to site, but it’s usually always explained in a FAQ link or forum posting. If you are running your own web server (and have appropriately according to (Xref) How do I configure a web server for .torrent files?) then upload the file to your server’s public web space, or whatever method you use to put files on your server.
  • Finally, you must seed the file. Until this step, nothing but metadata has been transferred. Seeding is necessary to actually transmit your file to others. There are several ways to do this, but the simplest is to use your ordinary BitTorrent client just as you would with any other file. Navigate to the page on the web server where your .torrent is posted, click the link, and when the BitTorrent client starts be sure to select the same file/ directory that you used in maketorrent in step 2 above. The client should check the files and verify that they are complete, and then connect to the tracker and begin seeding. There are several important points about this step:
    • Be sure the machine that you are seeding from can accept incoming network connections on the ports BitTorrent is using. Usually this means configuring port forwarding if you are in a NAT environment. See (Xref) What ports does BitTorrent use? Will it work with a firewall/NAT? .
    • If you are running the tracker on the same machine as the seeding client, and you are in a NAT environment, you must add the “--ip address” parameter to the client command line, where address is the publicly-visible IP address of the machine. For example, your machine might be on an internal network, sharing a DSL or cable modem connection behind a router/gateway. In this case it probably has an internal (unroutable) IP address such as 192.168.x.x or 10.x.x.x. It is necessary to tell the tracker your true public IP address instead of this internal address. If you’re not sure what that is, try a site such as this one. For details on the command line see (Xref) How do I change the command line parameters in Windows?. Finally, remember that in a lot of cases you will have a dynamic IP address (one that is assigned to you each time you connect), and if this is true you will have to ensure that you are using the correct one each time. Again, this process applies ONLY if you are seeding and running a tracker on the same machine, and you have a NAT setup.
    • Make sure to leave the seeding client open long enough. The exact amount of time depends on a number of factors. If the file you are seeding is very popular, then you can often seed just long enough to get several distributed copies into the swarm, and then disconnect. If the torrent is sufficiently “healthy,” the seeder leaving will have no adverse effects, since there are enough distributed copies of the file to support the swarm. If the file has fewer interests, you will generally have to seed longer. A good policy is to check back later on the tracker’s stats page or in the forums and make sure that no one has been left stranded.
    • If you want to seed a number of different torrents, it is often cumbersome to open a number of copies of the GUI client. In this situation the version of the client is very useful. See the section (Xref) Is there a way to download or seed a number of files at once without launching a bunch of copies of the client? for details.

(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) How do I change the command line parameters in Windows?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) How can I make Internet Explorer ask me if I want to save the torrent link rather than automatically opening the download GUI?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) What are the command line parameters for the BitTorrent client?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) What are the command line parameters of the BitTorrent Python tracker?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Category) How do I run a tracker?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Category) How do I run a tracker? : (Answer) Using the standard Python tracker
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Category) How do I run a tracker? : (Answer) Using BNBT
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Category) How do I run a tracker? : (Answer) Using PHP / MySQL trackers
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) How do I configure a web server for .torrent files?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Advanced Topics : (Answer) Is there a way to download or seed a number of files at once without launching a bunch of copies of the client?
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support : (Answer) Web Sites
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support : (Answer) Mailing Lists
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support : (Answer) Forums
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support : (Answer) Newsgroups
(Category) Brian’s BitTorrent FAQ and Guide : (Category) Getting Help and Support : (Answer) IRC
(Category) Brian’s BitTorrent FAQ and Guide : (Answer) Links to Popular BitTorrent Sites


Welcome! If you are new to BitTorrent, this site should help clear up a lot of commonly asked questions.

Please note: This site is mostly a mirror of the FAQ at That site is updated first, so this one may be a little bit behind in some places.

If you would like to check your firewall/NAT port forwarding configuration, try the Natcheck page.

Disclaimer: I am a Windows user, and so by default the answers will tend to apply to Windows if not otherwise stated. I’ve tried to include as much Linux and Mac information as I can. If you have anything to add on those subjects, by all means please contribute. Find more information here:

UPDATE: I’m afraid I have had to disable edits of this FAQ from the general public. I was getting perhaps one or two erronious additions daily, which resulted in a lot of work for me to clear out. There were sections with up to a dozen blank “New Item” objects that someone added without knowing what they were doing. I appreciate the handful of you that contributed useful answers, but I do not have the time to clean up after the rest of you, so the FAQ is now read-only.


Table of Contents(Category) Background Information
(Category) Installing BitTorrent
(Category) Getting Started with BitTorrent
(Category) Configuring Your Network for BitTorrent
(Category) Opening/Viewing/Using Files You’ve Downloaded
(Category) Troubleshooting Errors and Problems
(Category) Advanced Topics
(Category) Getting Help and Support
(Answer) Links to Popular BitTorrent Sites
If you wish to contact me for any reason, please use this link to send me a message. –Brian


[New Answer in “Brian’s BitTorrent FAQ and Guide”]
(Category) (Answer) What is BitTorrent?
(Answer) How does BitTorrent compare to other forms of file transfer?
[New Answer in “Background Information”] (Answer) BitTorrent is a protocol designed for transferring files. It is peer-to-peer in nature, as users connect to each other directly to send and receive portions of the file. However, there is a central server (called a tracker) which coordinates the action of all such peers. The tracker only manages connections, it does not have any knowledge of the contents of the files being distributed, and therefore a large number of users can be supported with relatively limited tracker bandwidth. The key philosophy of BitTorrent is that users should upload (transmit outbound) at the same time they are downloading (receiving inbound.) In this manner, network bandwidth is utilized as efficiently as possible. BitTorrent is designed to work better as the number of people interested in a certain file increases, in contrast to other file transfer protocols.

One analogy to describe this process might be to visualize a group of people sitting at a table. Each person at the table can both talk and listen to any other person at the table. These people are each trying to get a complete copy of a book. Person A announces that he has pages 1-10, 23, 42-50, and 75. Persons C, D, and E are each missing some of those pages that A has, and so they coordinate such that A gives them each copies of the pages he has that they are missing. Person B then announces that she has pages 11-22, 31-37, and 63-70. Persons A, D, and E tell B they would like some of her pages, so she gives them copies of the pages that she has. The process continues around the table until everyone has announced what they have (and hence what they are missing.) The people at the table coordinate to swap parts of this book until everyone has everything. There is also another person at the table, who we’ll call ‘S’. This person has a complete copy of the book, and so doesn’t need anything sent to him. He responds with pages that no one else in the group has. At first, when everyone has just arrived, they all must talk to him to get their first set of pages. However, the people are smart enough to not all get the same pages from him. After a short while they all have most of the book amongst themselves, even if no one person has the whole thing. In this manner, this one person can share a book that he has with many other people, without having to give a full copy to everyone that’s interested. He can instead give out different parts to different people, and they will be able to share it amongst themselves. This person who we’ve referred to as ‘S’ is called a seed in the terminology of BitTorrent. There’s more about the various terms in a later section.


[Append to This Answer] (Answer) The most common method by which files are transferred on the Internet is the client-server model. A central server sends the entire file to each client that requests it — this is how both http and ftp work. The clients only speak to the server, and never to each other. The main advantages of this method are that it’s simple to set up, and the files are usually always available since the servers tend to be dedicated to the task of serving, and are always on and connected to the Internet. However, this model has a significant problem with files that are large or very popular, or both. Namely, it takes a great deal of bandwidth and server resources to distribute such a file, since the server must transmit the entire file to each client. Perhaps you may have tried to download a demo of a new game just released, or CD images of a new Linux distribution, and found that all the servers report “too many users,” or there is a long queue that you have to wait through. The concept of mirrors partially addresses this shortcoming by distributing the load across multiple servers. But it requires a lot of coordination and effort to set up an efficient network of mirrors, and it’s usually only feasible for the busiest of sites.Another method of transferring files has become popular recently: the peer-to-peer network, systems such as Kazaa, eDonkey, Gnutella, Direct Connect, etc. In most of these networks, ordinary Internet users trade files by directly connecting one-to-one. The advantage here is that files can be shared without having access to a proper server, and because of this there is little accountability for the contents of the files. Hence, these networks tend to be very popular for illicit files such as music, movies, pirated software, etc. Typically, a downloader receives a file from a single source, however the newest version of some clients allow downloading a single file from multiple sources for higher speeds. The problem discussed above of popular downloads is somewhat mitigated, because there’s a greater chance that a popular file will be offered by a number of peers. The breadth of files available tends to be fairly good, though download speeds for obscure files tend to be low. Another common problem sometimes associated with these systems is the significant protocol overhead for passing search queries amongst the peers, and the number of peers that one can reach is often limited as a result. Partially downloaded files are usually not available to other peers, although some newer clients may offer this functionality. Availability is generally dependent on the goodwill of the users, to the extent that some of these networks have tried to enforce rules or restrictions regarding send/receive ratios.

Use of the Usenet binary newsgroups is yet another method of file distribution, one that is substantially different from the other methods. Files transferred over Usenet are often subject to miniscule windows of opportunity. Typical retention time of binary news servers are often as low as 24 hours, and having a posted file available for a week is considered a long time. However, the Usenet model is relatively efficient, in that the messages are passed around a large web of peers from one news server to another, and finally fanned out to the end user from there. Often the end user connects to a server provided by his or her ISP, resulting in further bandwidth savings. Usenet is also one of the more anonymous forms of file sharing, and it too is often used for illicit files of almost any nature. Due to the nature of NNTP, a file’s popularity has little to do with its availability and hence downloads from Usenet tend to be quite fast regardless of content. The downsides of this method include a baroque set of rules and procedures, and requires a certain amount of effort and understanding from the user. Patience is often required to get a complete file due to the nature of splitting big files into a huge number of smaller posts. Finally, access to Usenet often must be purchased due to the extremely high volume of messages in the binary groups. Get more here:

How To Download The New 100k Factory Revolution Bittorrent?

BitTorrent is closest to Usenet, in my opinion. It is best suited to newer files, of which a number of people have interest in 100k factory revolution. Obscure or older files tend to not be available. Perhaps as the software matures a more suitable means of keeping torrents seeded will emerge, but currently the client is quite resource-intensive, making it cumbersome to share a number of files of 100k factory. Get more here:

BitTorrent also deals well with files that are in high demand, especially compared to the other methods within 100k factory revolution.

[Append to This Answer] (Category) There are a multitude of clients available for the BitTorrent, because unlike some peer to peer applications (such as Kazaa), the BitTorrent implementation is open source. This means that programmers are free to take the source code to the program and modify it, if they feel there is something they’d like to change.

Of course, this means that some of the clients are fully-tested and polished while others are rough or lacking features. Please keep this in mind when experimenting with an unknown BitTorrent program.

Below you will find information on BitTorrent clients and other related utilities, organized by operating system.


BitTorrent clients for:
(Answer) Microsoft Windows
(Answer) Mac OS X
(Answer) Mac OS 9
(Answer) Linux/Unix
(Answer) Java Clients (platform independent)Uninstallation notes:
(Answer) Windows Uninstall
(Answer) Mac OS X UninstallSee also:
(Answer) What other BitTorrent-related utilities are out there?
[New Answer in “Installing BitTorrent”] (Answer)

  • The Shad0w’s experimental clientRecommended! This client incorporates the codebase of the official version as well as all the improvements of the experimental version, below. Additionally, there are some misc. bug fixes, improvements from the latest development CVS sources, a user preferences feature that remembers its settings, and more. I highly recommend this version! (alternate) (alternate 2)
  • burst!Recommended! This client features a smaller memory footprint compared to the others, due to replacing the wxPython GUI with one written in Delphi. The GUI lets you control multiple transfers from a single window, in addition to many other handy features such as a built-in TorrentSpy-like capability. It uses the same Python back-end as The Shad0w’s client so you also get all of the recent developments included therein.
  • burst plus! – A client which is based on the burst base and includes Spanish language support, as well as some other additions.
  • SimpleBT – Another fork of the burst code base that features Chinese language support.
  • ABC (“Another BitTorrent Client”) – This is a relatively new client that includes many of the most recent changes in the experimental versions, as well as other added features such as controling multiple downloads from a single window, queueing, automatic seeding, etc. See also: Sourceforge page.
  • Official client – This is the “official” client in that it is the latest supported version from Bram Cohen, architect of BitTorrent. It has the fewest features of all the clients, and releases are much more conservative than the experimental versions. Use this if you want stability but don’t need any of the common features of the other clients, such as upload rate limiting. See also: (CVS view), Sourceforge page.
  • Eike Frost’s Experimental client – This is based on the official version, with patches to allow upload rate control and show statistics about the number of peers and seeds, among other things. New in the “-2” revision is support for displaying additional details about the peers that are connected, as well as some annoyance and bug fixes.
  • Azureus – A very nice Java client that incorporates a full-featured GUI with extensive visualizations/statistics about the transfer. You will need the 1.4 JRE installed to run this, which can be obtained from this link. See also: Screen shots.
  • Personal Torrent Collector (PTC) – This is an alternative GUI interface to the Python BitTorrent client. It has support for a number of interesting features, such as the ability to control the total bandwidth usage of a group of BitTorrent transfers, and RSS syndication for organizing torrent files. See also: SourceForge page.
  • Shareaza – Newer public beta versions of this program now include BitTorrent support, in addition to the eDonkey2k and Gnutella protocols. However, the BitTorrent support may still have bugs, and some things (such as seeding a file) may not be as straightforward as with dedicated BitTorrent clients.
  • NovaTorrent – I welcome reviews of this client. 🙂 I have not personally evaluated it yet.
  • BitTorrent++ – This is an alternative to the official client. It supports extra functionality such as multiple downloads from a single GUI. Some people (myself included) have experienced major bugs with this program, so consider it unstable and use a different client unless you want to experiment. It appears to be abandoned and has not had any bug fixes in a long time. Therefore, since these bugs have the ability to adversely affect the performance of the BitTorrent swarm, so pleae do not use this client.


The link for the souce for the Shadow’s Experimental client is wrong.. The link should be which is the site for the Windows compiled code as well. And if for some reason it’s not working, you can go to and find the linkt o e-mail me about it and I can put up both the code and the Windows compiled there.
Jon Wolf
[] TurboBT is Cool GUI and low system resource used BitTorrent Client. Build by PyQt Python23. [Append to This Answer] (Answer)

  • Official client v3.2.2a – This is the newest build of the client for OS X 10.2 (Jaguar.) It incorporates adjustments for upload rate control, as well as preferences for min/max port. Also included are some statistics (number of peers, total uploaded/downloaded) and support for Rendezvous (ability to find peers on the same side of the firewall and allow trackerless operation in the local domain.) Note: If you get the error message Download failed when you try to open a torrent with this version, try the following fix. Note: Apparently the new 3.2.2a version linked above fixes this glitch.)
[Append to This Answer] (Answer) There is no official support for Mac OS 9. Further, wxPython does not seem to be ported to Mac OS 9, which means you cannot run the GUI versions. However, there is hope: you can still use BitTorrent, although it will take a little bit of extra work.

  1. Download and install MacPython. Please refer to this page for more information on Python and Macs.
  2. Download and unpack the source code to the client.
  3. Option-Drag the file from the source code to PythonInterpreter. Then click Set unix-like command line interpreter, and enter “--url http://server/file.torrent“, except substitute the actual URL of the .torrent file. This is the same as the “download” link on whatever web page offered the torrent. Select Go and the file should begin downloading. If you get an error message that ends in ImportError: cannot import name getpid, use the following procedure:
    1. Find the file from the source code (it’s in the subfolder named BitTorrent) and open it with any plain-text editor.
    2. Search near line 23 for the following:from os import getpid, path, makedirsAnd remove the getpid word so that the line now reads:from os import path, makedirs
    3. Search near line 177 for the following:myid = (chr(0) * 12) + sha(repr(time()) + ' ' + str(getpid())).digest()[-8:]and change it to the following:myid = (chr(0) * 12) + sha(repr(time())).digest()[-8:]
    4. Save the file, and retry the above procedure for downloading, hopefully this time without the error message.


 Above is stated :  >>Then click Set unix-like command line interpreter, and enter  "--url http://server/file.torrent", except substitute the actual URL of the .torrent file    In fact, the exact syntax is :  --url "http://server/file.torrent"  This is important, as it is not necessarily easy to figure out, and one char misplaced makes it so that nothing works, and the error messages are not always the most clearest to tell what went wrong.  The same procedure, but for a local torrent (on your HD) is  --responsefile “HD:Desktop Folder:THE.GREAT.DIVX.MOVIE.torrent”  , where “HD:Desktop Folder:” is the complete path to your torrent file, the “HD” needs to be the name of your hard disk, here it’s just an example, and “THE.GREAT.DIVX.MOVIE.torrent” needs to be, duh, the name of your .torrent file.  The delimiter is " : ", not slash (/) or other things.  Just as a fictious example, here’s one of mine :  --responsefile “disque dur:Desktop Folder:BitTorrent-3.2.1b:Equilibrium.torrent”  (12/07/2003) Sebastian.
I like to append two additionnal flags when using BitTorrent in Mac OS 9.
–display_interval 15 This will reduce the refreshing rate of the raw display of BitTorrent in console mode.
–saveas “yourshortfilenamehere” Because MacPython in Mac OS 9 doesn’t support long filenames, you sometimes have to give your local file a short filename (lesser than 32 characters). Not doing so when the source file has a long filename results in an error.
[Append to This Answer] (Answer) Running the official (and derived) clients – The official 3.2.1 (source tarball) and the experimental (source tarball) clients should both work fine under any Unix flavor that has Python support. If you wish to use the GUI version, you will also need wxPython.

For Debian systems there is a package called bittorrent, which requires the python 2.2 package. You should also install the packages libwxgtk2.4-python and mime-support, if you plan to use the GUI version of the client.

If you are using Mandrake with Cooker, you might want to try the RPMs listed here.

Below are some general instructions for installing on a Unix/Linux system.

Install Python, preferably version 2.2. You can run “python -V” to see what version you currently have installed, if any. Also, you may have multiple versions of Python installed, so you might check /usr/bin for commands like python2.2 if plain python says it’s version 1.x. If your distribution uses packages, use the search tool to find prepackaged versions before trying to manually install. Try here and here for Python RPMs.

Install wxPython if you want to use the GUI version. Note that this will require the GLib and GTK+ libraries, which are probably already on your system if you have GNOME installed. (Start here or search your distribution’s package manager if you need GTK+.) You’ll want to find the wxPython package corresponding to the version of Python which you have installed. For RPM systems such as RedHat and Mandrake, you might try the following wxPython RPMs corresponding to version 2.1, version 2.2, and version 2.3 of Python. More RPMs are available at the Sourceforge site, and you can also consult the wxPython download page. Please be aware that the RPMs linked above assume that Python is installed under /usr and that the Python libs are in /usr/lib/python2.x/. If this is not the case, you will probably need to tell the installer this information.

Finally, install the source tarball for the BT client to a directory of your choice. To integrate the client with your web browser, it will be necessary to associate files of type “application/x-bittorrent” with the BitTorrent client. You will need to add a line such as the following to your /etc/mailcap file:

application/x-bittorrent; /usr/local/bin/ --responsefile %s; test=test -n "$DISPLAY"

Note that you should substitute the correct path for the location in which you installed the source tarball. If don’t have wxPython or would prefer to use one of the text-mode clients you can replace with or Also note there’s an error in the INSTALL.unix.txt file, which is missing the --responsefile argument.

Additionally, with Linux/Unix you should also be able to use any of the alternative clients that are cross-platform, such as PTC or Azureus, or any of the other Java clients listed below.


Goto /usr/ports/net/py-bittorrent, type make install clean, start with BitTorrent torrentfile.
[Append to This Answer] (Answer)

  • Azureus – A full-featured Java BitTorrent client with many enhancements and features.
  • snark 0.4 – Snark is an implementation of BitTorrent protocol that uses gcj, the GNU Compiler for Java. In addition to acting as a regular client, Snark also includes an integrated .torrent file creator, micro-HTTPd server, and tracker. With Snark the user can share files with a single command, without the usual hassle of installing a tracker, finding a web server, posting the .torrent file, etc. Compilation requires gcj 3.3 or higher; alternatively you can find a precompiled bytecode version here. See the home page for more information.
  • Effusion 0.3 – Experimental Java client with IRC integration. See home page for details and usage.
  • JTorrent 0.1 – This is a line-by-line port of the 3.0.2 python client/tracker to Java. It currently installs and runs under Windows and Unix, and requires the JRE v1.4 or greater. To install, download the installer and have a look at the README file. See also the project status README. Note that this is alpha-level code, so be prepared for bugs.


[Append to This Answer] (Answer) To remove BitTorrent, go to Add/Remove Programs in the Control Panel as usual. There should exist an entry for BitTorrent. If it’s not there, suspect an incorrect install. You can always reinstall the latest version and then uninstall it.

If you know what you are doing, you can manually remove BitTorrent by deleting the directory C:Program FilesBitTorrent (substituting the actual location of your Program Files dir) and removing the following registry keys:

  • HKEY_CLASSES_ROOTMIMEDatabaseContent Typeapplication/x-bittorrent
  • HKEY_CLASSES_ROOTbittorrent
  • HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionUninstallBitTorrent


[Append to This Answer] (Answer) To remove BitTorrent from Mac OS X, simply drag the application to the trash. If you also wish to delete the preferences, trash the file ~/Library/Preferences/BitTorrent.plist as well.


[Append to This Answer] (Answer)

  • TorrentSpyRecommended! An MS Windows tool which allows you to query a tracker about a specific torrent, view metadata info, check a file’s hashes, etc. A new feature is the “create” tab for making torrent files to upload.
  • maketorrent – A utility for creating torrent files, by the author of the burst! client. Version 1.x of MakeTorrent was a modified version of the Python ‘completedir’ program with extra features. Version 2.x is a complete rewrite in Delphi. Highly recommended!
  • completedir 1.0.1 – A utility for creating new .torrent files, part of the official BitTorrent client package. This is packaged as a Windows installer, get the source code for use with other platforms.
  • BNBT – This is a C++ implementation of a BitTorrent tracker. It should compile under most any Unix with GCC available, as well as MS Windows with MSVC (binaries included.) It includes all of the functionality of the reference Python tracker, but it also includes many enhancements: user accounts, improved web interface, statistics, etc. See also the TrackPak for a bundled BNBT and installer that’s easy to use.
  • Java BitTorrent Tools – A metafile viewer/editor, availability checker, and a basic tracker.
  • BTChange 0.94a – For modifying tracker info in an existing .torrent file. Use this if the tracker changes, so that you don’t have to recreate the file. See also: Sourceforge page.
  • PHPBTTracker – a free (GPL) tracker implementation in PHP with a MySQL back-end, includes built-in statistics collection and reporting. See also: sample output.
  • DumpTorrentCGI – Use this handy web page to parse and output the contents of a .torrent file (from either your local system or a link URL.) Use this to quickly determine a torrent’s hash ID or which tracker is hosting it.
  • 1.11 – A free (GPL) Perl script that analyzes the logfile of a tracker and creates graphs and reports of the bandwidth used and number of peers/seeds. See also: Home page.
  • libbt – A library implementation of the BitTorrent protocol in C. This project is still under development, and is not suitable to end-users at this point.


[Append to This Answer] (Category) (Answer) I’ve installed BitTorrent, now what? There’s no program to run!
(Answer) I just installed BitTorrent but whenever I click on a link I just get a small file and nothing happens?
(Answer) What is this Mandrake thing I’m invited to download after BitTorrent?
(Answer) What do all these words mean? (seeding, uploading, share rating, etc.)
(Answer) BitTorrent says I’m uploading, what files am I sharing? What’s being sent?
(Answer) What happens if I cancel a download? How can I resume?
(Answer) Why is my downloaded file huge even though I only downloaded a small bit?
(Answer) Why does my hard drive go crazy at the beginning of a resumed download?
(Answer) What is seeding? How do I do it? Why should I leave the client open after it finishes downloading?
[New Answer in “Getting Started with BitTorrent”] (Answer) BitTorrent is not like other peer-to-peer applications (such as Winmx, Kazaa, Gnutella, etc.) in that it does not have its own “universe.” Put another way, BT lives on top of the Web, which means that all of the searching/listing of available files is done on the web. When you find a file you want to download, you click on it and the BitTorrent client program will run and ask you where to put it, and then start downloading.

See the section (Xref) Links to Popular BitTorrent Sites for some starting points on the web if you’re new.


[Append to This Answer] (Answer) Try closing and restarting your web browser. When BitTorrent installs, it registers a new MIME-Type (application/x-bittorrent) and this change will not take effect until the next time the web browser is opened. [Append to This Answer] (Answer) You don’t need it. Mandrake is a full Linux distribution, a replacement Operating System. It is an example of the kind of thing that BitTorrent was designed to distribute — large programs which, upon release, cause a flood of eager downloaders. In other words, it’s not related to BitTorrent in any way, it’s just something a lot of people might be interested in.


[Append to This Answer] (Answer)

Usually this refers to the small metadata file you receive from the web server (the one that ends in .torrent.) Metadata here means that the file contains information about the data you want to download, not the data itself. This is what is sent to your computer when you click on a download link on a website. You can also save the torrent file to your local system, and then click on it to open the BitTorrent download. This is useful if you want to be able to re-open the torrent later on without having to find the link again.
In some uses, it can also refer to everything associated with a certain file available with BitTorrent. For example, someone might say “I downloaded that torrent” or “that server has a lot of good torrents”, meaning there are lots of good files available via BitTorrent on that server.
A peer is another computer on the internet that you connect to and transfer data. Generally a peer does not have the complete file, otherwise it would be called a seed. Some people also refer to peers as leeches, to distinguish them from those generous folks who have completed their download and continue to leave the client running and act as a seed.
A computer that has a complete copy of a certain torrent. Once your client finishes downloading, it will remain open until you click the Finish button (or otherwise close it.) This is known as being a seed or seeding. You can also start a BT client with a complete file, and once BT has checked the file it will connect and seed the file to others. Generally, it’s considered good manners to continue seeding a file after you have finished downloading, to help out others. Also, when a new torrent is posted to a tracker, someone must seed it in order for it to be available to others. Remember, the tracker doesn’t know anything of the actual contents of a file, so it’s important to follow through and seed a file if you upload the torrent to a tracker.
When there are zero seeds for a given torrent (and not enough peers to have a distributed copy), then eventually all the peers will get stuck with an incomplete file, since no one in the swarm has the missing pieces. When this happens, someone with a complete file (a seed) must connect to the swarm so that those missing pieces can be transferred. This is called reseeding. Usually a request for a reseed comes with an implicit promise that the requester will leave his or her client open for some time period after finishing (to add longevity to the torrent) in return for the kind soul reseeding the file.
The group of machines that are collectively connected for a particular file. For example, if you start a BitTorrent client and it tells you that you’re connected to 10 peers and 3 seeds, then the swarm consists of you and those 13 other people.
A server on the Internet that acts to coordinate the action of BitTorrent clients. When you open a torrent, your machine contacts the tracker and asks for a list of peers to contact. Periodically throughout the transfer, your machine will check in with the tracker, telling it how much you’ve downloaded and uploaded, how much you have left before finishing, and the state you’re in (starting, finished download, stopping.) If a tracker is down and you try to open a torrent, you will be unable to connect. If a tracker goes down during a torrent (i.e., you have already connected at some point and are already talking to peers), you will be able to continue transferring with those peers, but no new peers will be able to contact you. Often tracker errors are temporary, so the best thing to do is just wait and leave the client open to continue trying.
Receiving data FROM another computer.
Sending data TO another computer.
share rating
If you are using the experimental client with the stats-patch, you will see a share rating displayed on the GUI panel. This is simply the ratio of your amount uploaded divided by your amount downloaded. The amounts used are for the current session only, not over the history of the file. If you achieve a share ratio of 1.0, that would mean you’ve uploaded as much as you’ve downloaded. The higher the number, the more you have contributed. If you see a share ratio of “oo”, this means infinity, which will happen if you open a BT client with a complete file (i.e., you seed the file.) In this case you download nothing since you have the full file, and so anything you send will cause the ratio to reach infinity. Note: The share rating is just a number that is displayed for your convenience. It does not directly affect any aspect of the client at all. In general, out of courtesy to others you should strive to keep this ratio as high as possible, of course.
distributed copies
In some versions of the client, you will see the text “Connected to n seeds; also seeing n.nnn distributed copies.” A seed is a machine with the complete file. However, the swarm can collectively have a complete copy (or copies) of the file, and that is what this is telling you. Referring again to the “people at a table” analogy (see (Xref) What is BitTorrent?), consider the case where the book has 10 pages, and person A has pp.1-5 and B has pp.6-10. Collectively, A and B have a complete copy of the book, even though no one person has the whole thing. In other words, even if there are no seeds, as long as there is at least one distributed copy of the file everyone can eventually get a complete file. Meditate on this, the Zen of BitTorrent, grasshopper.
This is a term used in the description of the BitTorrent protocol. It refers to the state of an uploader, i.e. the thread that sends data to another peer. When a connection is choked, it means that the transmitter doesn’t currently want to send anything on that link. A BT client signals that it’s choked to other clients for a number of reasons, but the most common is that by default a client will only maintain --max_uploads active simultaneous uploads, the rest will be marked choked. (The default value is 4 and this is the same setting that experimental client GUI lets you adjust.) A connection can also be choked for other reasons, for example a peer downloading from a seed will mark his connection as choked since the seed is not interested in receiving anything. Note that since each connection is bidirectional and symmetrical, there are two choked flags for each connection, one for each Tx endpoint.
Another term used in the protocol specification. This is the corollary to the choked flag, in that interested refers to the state of a downloader with respect to a connection. A downloader is marked as interested if the other end of the link has any pieces that the client wants, otherwise the connection is marked as not interested.
If the client has not received anything after a certain period (default: 60 seconds), it marks a connection as snubbed, in that the peer on the other end has chosen not to send in a while. See the definition of choked for reasons why an uploader might mark a connection as choked. The real function of keeping track of this variable is to improve download speeds. Occasionally the client will find itself in a state where even though it is connected to many peers, it is choked by all of them. The client uses the snubbed flag in an attempt to prevent this situation. It notes that a peer with whom it would like to trade pieces with has not sent anything in a while, and rather than leaving it up to the optimistic choking to eventuall select that peer, it instead reserves one of its upload slots for sending to that peer. (Reference)
optimistic unchoking
Periodically, the client shakes up the list of uploaders and tries sending on different connections that were previously choked, and choking the connections it was just using. You can observe this action every 10 or 20 seconds or so, by watching the “Advanced” panel of one of the experimental clients.


[Append to This Answer] (Answer) Don’t worry. When you are downloading a particular torrent, you are also uploading that torrent at the same time. The parts of the file(s) that you have already downloaded are uploaded to other peers. This is normal, and it’s how the protocol works. There is no “shared directory” setting as with other peer-to-peer applications. If you have a certain file (or files) that you want to make available to others, you must first create a .torrent file and upload it to a server, and then seed the file. See the section (Xref) How do I create a new torrent (share a file I have with others)? for the detailed procedure.


[Append to This Answer] (Answer) BitTorrent fully supports stopping and later resuming a partial download. You don’t have to do anything special. If you cancel a download before it’s finished, the partial download remains on your hard drive. To resume the transfer, just click on the same torrent link again and when asked where to save the file, select the same location as last time. BitTorrent will see that the file exists and check it to see how much has already been downloaded. It will then pick up where it left off the last time. See also the section (Xref) Why is my downloaded file huge even though I only downloaded a small bit? regarding file size.

Note: To resume properly, you must make the same selection when prompted as you made the first time. For torrents consisting of a single file, this is rather straight-forward: simply select the file. However, torrents that consist of a folder of multiple files can be a bit more confusing. To resume, you must select the folder that contains the BitTorrent folder.

Here’s an example of resuming a folder-type torrent. Let’s suppose that you downloaded a torrent called SomeCoolBand, and selected to put it in the folder Downloads. So your directory structure resembles something like DownloadsSomeCoolBandfile1, DownloadsSomeCoolBandfile2, and so on. The important part of this example is that should you resume this transfer, when asked to select a destination folder you must select the Downloads folder and NOT DownloadsSomeCoolBand. It may seem a bit counter-intuitive, but just remember to always make the same selection as the original choice. When you first started the transfer there was no SomeCoolBand folder; you instead selected Downloads and BT created the SomeCoolBand folder.


[Append to This Answer] (Answer) When BitTorrent starts, it allocates space for the entire file(s). That is what you see at startup as the progress bar moves across the screen and the disk drive goes crazy. The reason it does this is because it downloads the file in pieces, and those pieces arrive in an arbitrary order. Unlike http or ftp, which download the file from start to finish, BT downloads it in random order.

Note that newer versions of the client can allocate the space as the transfer progresses, and skip the initial “preallocation” step.


[Append to This Answer] (Answer) When you open a torrent and give BitTorrent a filename/directory that already exists, it must check the file to see how much of it is useful data and how much is junk. (Recall that BT allocates space for the entire file when you first start a torrent.) To do this it must read the entire contents of the file, and generate what’s known as a hash for each piece of the file. A hash is a cryptographic function that creates a small summary or digest of a large amount of data. BitTorrent uses the SHA hash function to determine which parts of the file are good and which are bad.


[Append to This Answer] (Answer) First, you may want to review the answers in the section (Xref) What do all these words mean? (seeding, uploading, share rating, etc.). A seed is a client which has a complete file. Seeding is the process of connecting to a torrent when you have a complete file. There are two ways to do this:

  • …by leaving your client open after the download completes. Once you have the entire file you become a seed, and the BitTorrent client remains connected to the swarm, sending to other users until you close it.
  • …by clicking on a torrent link (or opening a saved .torrent file) and selecting a filename of a file that has already completed. BitTorrent will check over the file and realize that it’s already complete, and continue to connect to the tracker and serve as a seed.

It’s generally considered a good idea to leave your client open as long as possible, since it helps other users. Some communities have guidelines on when it’s permissible to disconnect, typically after the ratio of bytes received to bytes sent reaches 1:1, or 24 hours after the download completes. Please be nice, and do what you can to contribute to other users.


[Append to This Answer] (Category) (Answer) What ports does BitTorrent use? Will it work with a firewall/NAT?
(Answer) Can I use BitTorrent with a proxy server?
(Answer) What if I need to use SOCKS to access the Internet?
[New Answer in “Configuring Your Network for BitTorrent”] (Answer) Prior to version 3.2, BitTorrent by default uses ports in the range of 6881-6889. As of 3.2 and later, the range has been extended to 6881-6999. (These are all TCP ports, BitTorrent does not use UDP.) The client starts with the lowest port in the range and sequentially tries higher ports until it can find one to which it can bind. This means that the first client you open will bind to 6881, the next to 6882, etc. Therefore, you only really need to open as many ports as simultaneous BitTorrent clients you would ever have open. For most people it’s sufficient to open 6881-6889.

The port range that BitTorrent uses is configurable, see the section (Xref) What are the command line parameters for the BitTorrent client?, specifically the --minport and --maxport parameters.

The trackers to which BitTorrent must connect usually are on port 6969, so the client must have outbound access on this port. Some trackers are on other ports, however.

BitTorrent will usually work fine in a NAT (network address translation) environment, since it can function with only outbound connections. Such environments generally include all situations where multiple computers share one publicly-visible IP address, most commonly: computers on a home network sharing a cable or xDSL connection.

However, you will get better speeds if you allow incoming connections as well. To do this you must use the “port forwarding” feature of whatever is performing the NAT/gateway task. For example, if you have a cable or DSL connection and a router/switch/gateway/firewall, you will need to go into the configuration of this device and forward ports 6881-6889 to the local machine that will be using BitTorrent. If your device makes it hard to enter a range of ports (if you must enter each one separately), then you can just do the first 10 or so ports, or however many simultaneous clients you plan to ever have open. If more than one person behind such a gateway wishes to use BitTorrent, then each machine should use a different port range, and the gateway should be configured to forward each port range to the corresponding local machine.

If you have one of these broadband router/NAT devices (such as the Linksys BEFSR41, D-Link DI-701/704, Netgear RT311, SMC Barricade, 3Com Home Ethernet Gateway, etc.) you will usually need to enter the web configuration of the device. If you’re not sure, try or sometimes If you can’t figure it out, try the manual for the device — they are often on the manufacturer’s web site in PDF form. You can also try the forums at places like Broadband Reports or Practically Networked. To see an example of what you’re looking for, this is a link to the Linksys BEFSR41 manual. Look at page 55, under the section “Port Range Forwarding.”


If you are using Microsoft’s ICS (Internet Connection Sharing), this article on mapping ports might be useful.

If you are using a software firewall, then you must also enable incoming connections to be answered by the BitTorrent client program. Note that Windows XP includes a primitive firewall (“Internet Connection Firewall” or ICF) which you may have to configure for BitTorrent. Here are the directions for opening ports in the Windows XP firewall:

  1. Open the ‘Network Connections’ folder (click Start, then Control Panel, then Network and Internet Connections, then Network Connections.)
  2. Click the shared connection or the Internet connection that is protected by Internet Connection Firewall, and then, under Tasks, click Change settings of this connection.
  3. On the Advanced tab, click Settings.
  4. For each port you wish to forward, (i.e. 6881, 6882, … 6889) do the following:
    1. On the Services tab, click Add and enter all of the following information:
    2. In Description of service, type an easily recognized name for the service, such as “BitTorrent”.
    3. In Name or IP address of the computer hosting this service on your network, enter (this means “the local machine.”)
    4. In both External and Internal port number for this service, enter the port number, e.g. 6881.
    5. Select TCP, then OK.

See this link or this link for more information about the XP firewall.


If you are running another type of software firewall (such as Zone Alarm Pro, Norton Firewall, McAfee Firewall, BlackICE Defender, etc.), you may have to do something similar to allow inbound access on ports 688x to the BitTorrent client (usually btdownloadgui.exe.)

For example, in Zone Alarm Pro, in the Program Listings, click on the program’s name (btdownloadgui.exe) and then click the Options button and then enter the ports to use. If you’re having trouble connecting, you might try giving BitTorrent access to all ports.


To open ports in the Mac OS X firewall, do the following:

  1. Open System Preferences.
  2. Click Sharing.
  3. Select the Firewall tab.
  4. Click the New… button.
  5. Click the popup menu in the dialog that appears, and choose Other….
  6. In the Port Number, Range, or Series field, enter 6881-6999.
  7. In the Name field, enter BitTorrent (or any other identifying string.)
  8. Click OK.


If you are using a linux box as your firewall machine, and are using iptables as your NAT/firewall, here’s how you can enable portforwarding to a specific machine for BitTorrent. Either append to your iptable configuration script or put this in a file of its own. This was written in bash, but should work for ash, zsh or plain old bourne shell too (not csh however).
—- start shellscript —-
 #!/bin/bash #bittracker portforwarding BTFORWARDADDR= BTPORTS="6890 6891 6892 6893 6894 6895 6896 6897 6898 6899" for pt in $BTPORTS; do   /sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport $pt -j DNAT --to-destination $BTFORWARDADDR:$pt   /sbin/iptables -A FORWARD -s $BTFORWARDADDR -p tcp --dport $pt -j ACCEPT done
—- end shellscript —-
What this does is for each port in the BTPORTS string, establish a prerouting forward to send it directly to the machine listed in BTFORWARDADDR instead of mangling it through NAT. Also, in the event you have a default setting of DENY or REJECT for your forwarding rules, it allows forwarding from the BTFORWARDADDR machine on each of the BTPORTS out to the net.


In addition to the syntax illustrated here, iptables supports the specification of a range of ports using the syntax –dport $START:$END so the whole 6881-6999 range used in BT 3.2+ can be NAT’ed. For example…
=== start script === #!/bin/bash BTFORWARDADDR= PORTSTART=6881 PORTEND=6999

  /sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport $PORTSTART:$PORTEND -j DNAT --to-destination $BTFORWARDADDR   /sbin/iptables -A FORWARD -s $BTFORWARDADDR -p tcp --dport $PORTSTART:$PORTEND -j ACCEPT

=== end script ===
This assumes that the host to which these ports will be forwarded, BTFORWARDADDR, will be using the same range i.e. no port redirection is required.

[Append to This Answer] (Answer) First, note that there are two types of connections that the BitTorrent program must make:

  • Outbound HTTP connections to the tracker, usually on port 6969.
  • Inbound and outbound connections to the peer machines, usually on port 6881 and up.

A web proxy can only be used for the first type of connection, since the second type is not HTTP. Theoretically, you could use the HTTP CONNECT command to tunnel them through an HTTP proxy, but this would require additional code support in the client. There is a possible workaround for this scenario, however; see the final point below.

That having been said, here is how to configure an HTTP proxy for the tracker connections:

  • If the proxy does not require authorization, the system-wide proxy configuration should work. For Windows, open the Control Panel select Internet Options, click on the Connections tab, select your connection and click Settings… (or Lan Settings… if you have a direct connection.) Make sure the Use a proxy server option is selected and enter the proxy’s address and port.
  • If your proxy requires basic authorization, set the http_proxy environment variable to http://username:password@hostname:port, where username and password are your login and password, and hostname:port is the address and port of the proxy server. If you don’t know how to set environment variables, there are instructions for Windows on this page by Mike Ravkine (krypt).
  • If your proxy requires NTLM authorization (a Microsoft-proprietary scheme), you may have to use a third party program. Fortunately there is a utility called NTLM Authorization Proxy Server. It is a program you run on your local machine that acts as a proxy for your proxy. In other words, it takes the (unauthenticated) proxy requests from the application (BitTorrent) and forwards them on to your organization’s proxy, adding the necessary NTLM authorization. It is written in Python and available as source, so you must install Python on your computer before running it. Refer to the home page for more information.
  • If you are in a firewalled environment where NO outbound connections are allowed except those through an HTTP proxy, you will have difficulty using BitTorrent. One method which might work is as follows: The desproxy program can serve as a SOCKS 4 or 5 server than tunnels requests through the proxy server. Then use SocksCap to “socksify” (intercept the network calls and redirect them to the SOCKS server) the BitTorrent program. See below for a few notes about SocksCap. Note: If you get this method to work, please report your steps and results so that I can improve this part of the FAQ. Thanks.


[Append to This Answer] (Answer) Look into a program called SocksCap. It can be used to socksify any normal program. The complication here is that you have to give SocksCap a command line to run, and the btdownloadgui command line will be different for each torrent. One suggestion would be to setup a command line in SocksCap such as ” btdownloadgui.exe --responsefile "c:downloadsfile.torrent"“. (Substitute any suitable directory in the command.) Now, when you want to open a torrent, save it as “file.torrent” in “c:downloads” (or whatever you used) and then run the command in SocksCap.


[Append to This Answer] (Category) (Category) How do I open this file that I’ve just downloaded?
(Answer) Where can I get help working with this multimedia file?
[New Answer in “Opening/Viewing/Using Files You’ve Downloaded”] (Category) Below is a list of common file types you will encounter with BitTorrent, and how to handle them. Please be aware that the best way to identify file types is by their extension. For example, a file named ends in .zip which is a clue that you should open the program in WinZip, or something equivalent.

Please be aware that the default setting in Windows is to hide file extensions. This results in many headaches from new users who have no idea how to open a certain file. Instead of displaying an extension, Windows expects you to identify files based upon the File Type column in the Detail View mode of Explorer. This can be cumbersome, and often the text shown is wrong or doesn’t correspond to the file’s actual type.

For these reasons, I urge you to go into Folder Options and disable the ridiculous Hide file extensions of known file types option.


(Answer) Files ending in .RAR, .R00, .R01, .Rnn
(Answer) Files ending in .CBR, .CBZ
(Answer) Files ending in .PAR, .P01, .Pnn
(Answer) Files ending in .NFO
(Answer) Files ending in .SFV
(Answer) Files ending in .BIN, .CUE
(Answer) Files ending in .ISO, .CCD, .MDS, .BWT, .CDI, .NRG
[New Answer in “How do I open this file that I’ve just downloaded?”] (Answer) If you find a directory with a bunch of files ending in .Rnn, it’s a RAR archive split into multiple parts. This is commonly done for posting to Usenet newsgroups. Open the .RAR file and extract the contents with WinRAR (Windows) or UnRarX (OS X.) Either program should automatically see all the parts if they are in the same directory.


[Append to This Answer] (Answer) These are comics in a compressed archive. For Windows, download the free program CDisplay. Or simply rename them (CBR to RAR, CBZ to ZIP) and open with your usual archive program, such as WinRAR or WinZIP. For OS X, try Book Image Viewer after extracting with unrar or unzip.


[Append to This Answer] (Answer) These are parity files, used to reconstruct any missing parts of the archive. Ordinarily you will not have to do anything with them — they are extraneous unless a part is missing or bad, in which case the torrent’s creator should have fixed the archive before distributing the torrent. If WinRAR does give you a message about a missing or corrupt part, then get SmartPAR (Windows) and open the .PAR file. The program will then check all the files and recreate any missing or damaged parts. For OS X, UnRarX should also process the PAR file.


[Append to This Answer] (Answer) Files that end in .NFO are plain text files that often contain very useful information about the files you have just downloaded. Always read the NFO file if you are having a problem! Unfortunately, the .NFO extention also has another meaning to Windows, so sometimes when you try to open these files you will get an error from MS System Information about a corrupt file. If this is the case you will also probably see the file listed with a type of “MSInfo File” or something similar. You should open the NFO file in Notepad, or any plain-text editor. More info here.


[Append to This Answer] (Answer) Simple File Verification file – used to verify the integrity of a set of files, this is a text file containing file names and typically CRC32 checksums. For Windows, try a program such as QuickSFV or fsum to verify the integrity. Mac OS X users should try MacSFV. Normally these files should not be necessary with BitTorrent, since the BT protocol has its own error checking method (on top of TCP’s checksumming.) If you find some file that doesn’t match the checksum in its SFV file, blame the torrent’s creator, since he or she should have fixed it before creating and distributing the torrent.


[Append to This Answer] (Answer) These are images of a CD, usually a Video CD (VCD) or Super Video CD (SVCD). There are several ways to deal with these. For Windows:

  • Use a program such as Nero to burn the images to a CDR and then view them in your standalone DVD player, or your DVD drive with your DVD player software. Some instructions for burning BIN files with common software applications can be found at this link.
  • If you know it’s a VCD/SVCD, you can use a tool such as VCDGear to extract the MPEG data. VCDs will be MPEG-1 type files, and SVCDs will be MPEG-2 type files. Usually the easiest way to view these is with a DVD player such as PowerDVD which can read input from a file.
  • Use a program such as Daemon Tools or Alcohol 120% to ‘mount’ the file as a virtual disk. Then you can use PowerDVD or whatever application is appropriate to view the data from that drive.

For OS X:

  • Use FireStarter FX to burn (S)VCDs from CUE or BIN files.
  • Play (S)VCD files, and most others, with VLC.


[Append to This Answer] (Answer) These are also images of a CD, much like .BIN and .CUE files. However, these extensions tend to be images of Data CDs in most cases as opposed to VideoCDs or SuperVCDs. As with (Xref) Files ending in .BIN, .CUE either burn them to a CD-R or CD-RW, or use a program that lets you ‘mount’ them on a virtual drive.


[Append to This Answer] (Answer) Modern music and movie files can be very complicated due to a wide variety of software and hardware standards. There are often several ways to skin each cat, for example: converting a DivX movie to SVCD can be done with a number of different tools with varying quality. I guess what I’m saying here is don’t panic if you can’t figure it all out.

Fortunately, there are some sites on the net with comprehensive guides to doing this sort of thing. For software links for almost all kinds of converters, editors, joiners, etc., try this section of You can also review the many guides and articles on that site. Another very comprehensive site for video/film/audio editing and manipulation is; they have an extensive collection of FAQs, guides, and software listings. Be sure to also visit their forums for access to some very knowledgeable folks.

Finally, is another site worth checking for anything relating to DVDs, movie rips, encoding/decoding, etc. Be sure to check the forums for the most up-to-date information.


Below are some useful links for codecs and related things:

  • GSpotStart Here! Open your file with this program and it will tell you which codecs/filters you need and if you have them on your system or not.
  • XviD codecKoepi’s Version and Nic’s version – This is a very popular format these days, and is used often. Modern builds can also play back that various DivX and m4v (mpeg-4 video) formats, so it’s a good one to install first.
  • ffdshowProject home (OLD)Download latest versions here – ffdshow is another multi-purpose codec. With this one program you can play back a large array of formats: XviD, DivX versions 3, 4, and 5, m4v, 3ivX, MP43, MP42, MP41 (Microsoft’s bastardized mpeg-4 formats), WMV7, WMV8, H263, H264, MJPEG, DV, Huffyuv, RV10, RV20, and others. It also has many advanced post-processing options. Because of the complexity of this codec, I recommend it for advanced users. Try the XviD codec above, as it has similar multi-format capability with an easier to use interface.
  • ac3filter – If you have video but no audio this is likely what you need. You also need this if Gspot tells you that you have a file with audio format “0x2000” or 8192. If the sound is too soft, go into its Configuration panel and increase the Master Gain, and/or enable DRC (“Dynamic Range Compression”.)
  • DivX – This is the official site of the DivX codec, which is currently at version 5. There are three main “flavors” of DivX: the old DIV3 (which was simply a hacked Microsoft mpeg-4 codec), DIV4 (which was coded by Project Mayo and later became the XviD codec) and DIV5, which is the commericialzed product from the DivX Networks company. This codec is not free and often inserts an unwanted “DivX” logo at the beginning of playback. If you absolutely can’t get a DIV5 file to play back then you may need this codec, however these days the open-source XviD codec (above) or ffdshow do a very good job at most DivX formats, so there’s really no need to indulge a company that makes an adware-infested product.
  • OggDS – This is a DirectShow filter for Ogg media files. Install this if you have an .ogm file. For more info on Ogg media, read this FAQ.

Codecs and Media Players and how they relate:

The codec is what does the actual encoding and decoding of the data — hence its name. A lot of people ask questions such as “I’ve tried player X, Y, and Z but none work, which player do I need?” That is the wrong way to go about solving the problem as all media players use the same codecs (with some exceptions, below.) Once you have the proper codecs, any media player should work. Likewise, without the required codecs, no media player will work. Do not expect MS Media Player’s automatic codec download to do anything. It’s designed to only know about Microsoft codecs, which are hardly ever used for movies and TV episodes that you’ll encounter with BitTorrent.

Alternatives to “Codec Hell”

There are also some applications that have their entire own set of bundled codecs, which means they play most anything out-of-the box. VLC (Videolan Client) is the best known example of such a player. If you are frustrated with codecs, try installing VLC. It should be able to open just about anything you throw at it. An up and coming alternative is mplayer which was originally developed to play media files under Linux and non-windows operating systems. However, it has been ported to Windows, so you can use it in a way similar to VLC. However, it is currently hard to use, so try downloading a GUI front end to go with it. At this point mplayer is still for experts only.

Do not install codec packs!

It’s very tempting to try one of these “all in one” files that claims to have every codec you’ll ever need. That may be correct, but it’s also the problem with them. They typically install a large number of things for the sake of being complete, but this is often counterproductive. I know that it seems like it should be the best idea but it’s not. If you find that you’re in “codec” hell then uninstall every last codec that you can find, and start from the beginning. With a very small number of codecs (for example: XviD, ac3filter, and perhaps ffdshow or the DivX codec) you should be able to play back the vast majority of files that you encounter.

[Append to This Answer] (Category) (Answer) I’m getting an error message, what does it mean?
(Answer) My download speed seems slow, what can I do to increase it?
(Answer) What can I do if I get a blue screen error, spontaneous reboot, or lockup?
(Answer) My internet connection drops, often during very fast downloads. What can I do?
(Answer) How can I get a list of the people to whom I’m connected?
[New Answer in “Troubleshooting Errors and Problems”] (Answer) The best thing to do in general if you’re having connectivity problems is just wait. Often trackers are unavailable or slow to respond, usually due to high load or sometimes DDoS attacks. Some torrents can take a while to get up to speed, so patience is a virtue. That being said, below are some common error messages with explanations and what to do about them.

Note: Often you will get a red error message when there’s a problem connecting to the tracker, but the client will keep on retrying. This is normal. It can result in the download progressing normally and successfully, even with an error message displayed on the screen. Make sure to note the time-stamp on the error, and if it’s more than 5 to 10 minutes old, you can ignore it. The newer versions of the experimental client “age away” the error messages after 5 minutes to deal with this situation.

Problem getting response info – [Errno 2] No such file or directory: “C:\Documents and Sett…”
For some reason, Internet Explorer sometimes doesn’t save the torrent file in the Temporary Internet Files directory properly. The solution seems to be to right click on the link and choose Save As…, and save the torrent file to disk, and then double-click the file to launch the client. Clearing the IE cache seems to help if this problem is recurring. It seems to be related to torrent files with square brackets (‘]’ and ‘[‘) in the filename.
Too many args – 0 max.
This error in indicative of a bad command line. See the FAQ section (Xref) How do I change the command line parameters in Windows? and ensure that the arguments to the BitTorrent program include --responsefile "%1".
A piece failed hash check, re-downloading it
This is a benign message, you can safely ignore it. It means that you received a piece of the file that didn’t check out as being correct, so it will be downloaded again. Probable cause of this might be someone incorrectly using the “skip hash check” option. If this option is incorrectly used on a not-yet complete file, the client will send pieces to its peers that are not correct and fail the built-in hash checking routines meant to catch such errors.
bad data from tracker –
Usually you can ignore this, it seems to happen when the tracker is overloaded or otherwise flaky.
Problem connecting to tracker – timeout exceeded
Problem connecting to tracker – HTTP Error 503: Connect failed
Problem connecting to tracker – [Errno socket error] (10061, “Connection refused”)
Problem connecting to tracker – (111, ‘Connection refused’)
There was a problem contacting the tracker. Trackers tend to be heavily loaded, and connections sometimes fail. The best thing to do is just be patient and leave the client open. If you find you’re getting this a lot, you can try increasing the HTTP request timeout by adding the parameter “--http_timeout 120” (the default is 60, unit is seconds.) See the FAQ section (Xref) How do I change the command line parameters in Windows? if you need help doing this.
Problem connecting to tracker – HTTP Error 400: Not Authorized
This indicates that the administrators of this tracker are not allowing it to be used for this torrent. Some trackers will only track torrents that are also posted in their forums/website, for example. Usually this indicates a stale torrent — try going to the web site associated with the tracker and see if you can find an updated torrent.
Problem connecting to tracker – HTTP Error 404: Not Found
Probably a stale torrent. Try to find a new link to the torrent.
Problem connecting to tracker – HTTP Error 407: Proxy Authentication Required
You may need to configure a username and password for your proxy server setting in order to contact the tracker. See the section (Xref) Can I use BitTorrent with a proxy server? for details.


[Append to This Answer] (Answer) Here are some general guidelines to getting fast connections with BitTorrent.

  • Give it time! Be patient! This is the most important suggestion for most speed-related problems. Sometimes it can take a while to contact a slow tracker. The beginning of a download will be especially slow since you don’t have any pieces of the file to share with others. Recently, trackers have been quite overloaded and it’s common to get timeout-related errors: see (Xref) I’m getting an error message, what does it mean?. Leave the client open and eventually it will connect.
  • Make sure the torrent is “live.” Use an experimental build of the client that shows the number of peers and seeds to which you are connected. Or, check the status of the torrent (using the website’s statistics or TorrentSpy) and make sure there are other people connected. To get decent speed, a torrent must have at least a few other people connected. The more peers, the faster the transfer will be in general.
  • Sometimes, limiting your upload rate will increase your download rate. This is especially true for asymmetric connections such as cable and ADSL, where the outbound bandwidth is much smaller than the inbound bandwidth. If you are seeing very high upload rates and low download rates, this is probably the case. The reason this happens is due to the nature of TCP/IP — every packet received must be acknowledged with a small outbound packet. If the outbound link is saturated with BitTorrent data, the latency of these TCP/IP ACKs will rise, causing poor efficiency.Use a client that allows limiting of the upload rate, and set it to around 80% of the maximum rate observed. It can be tempting to limit the rate to very small values. On very healthy torrents, this will not adversely affect the download rate. However, when there are fewer peers you will generally get higher download rates by allowing the highest upload rate possible before saturating the link — the (approx.) 80% sweet spot.To limit the upload rate with Mac OS X, try Carrafix. You’ll want to set an individual cap for each BitTorrent port (6881 and up.)
  • Ensure that your network allows the outgoing connections necessary for BitTorrent to work. Some networks (usually at schools, workplaces, etc.) are firewalled and all connections must go through a proxy server. In other cases, only well-known ports are available. There are too many different situations to list every possible scenario, but if you are trying to download a torrent that you know to be “live” yet the client still reports zero peers and seeds, then this is probably the case. See also the question (Xref) Can I use BitTorrent with a proxy server?
  • If your network uses NAT, make sure the BitTorrent ports are forwarded to the machine that runs the client. This will allow inbound connections from peers. Otherwise, only outbound connections will succeed. See the section (Xref) What ports does BitTorrent use? Will it work with a firewall/NAT?
  • If you have a software firewall, make sure the BitTorrent client has the proper access.


[Append to This Answer] (Answer) Some network cards and DSL modems have buggy drivers. Common symptoms include a blue screen (with a DRIVER_IRQL_NOT_LESS_OR_EQUAL error) or a spontaneous reboot. Here are some common culprits:

  • Linksys LNE100TX model 5, Linksys NC100, Skymaster SK1207E, Planex FNW-9803-T, or any other network card based on the AN983B chipset by ADMtek, sometimes also sold under the no-name “Asound” or “Fast” brands. Note that this includes some motherboards’ built-in Ethernet controllers, such as: MSI (Microstar) MS-6378, DFI NS70-EL & AZ30-EL, USI PM-845, Fujitsu D1451. The solution seems to be to install one of the following drivers from ADMtek: Windows XP, Windows ME/2000, Windows 98. These are drivers from the chipset manufacturer and are Microsoft certified. Use these drivers in place of any other driver for those cards, including the latest version from Linksys.
  • Netgear FA311 – Try this version (1.30) of the drivers from Netgear.
  • Netgear FA312 – Seems to have the same problem as the FA311, but try this version (1.8) of the drivers instead. (Note that this driver should work with both the FA311 and FA312, so also try it if you have the FA311 and the above driver doesn’t work.)
  • Alcatel Speed Touch USB DSL modem – Install these drivers.

If your network interface card (NIC) or DSL/cable modem were not listed above, then check with the manufacturer’s website and make sure you have the latest drivers.


Driver version (dated 5/27/2003) from National Semiconductor, manufacturer of DP83815 chipset used in FA311, fixed problems with reboots on WinXP Pro.,1804,829,00.html [Append to This Answer] (Answer) This issue is still unresolved, but my guess is that it’s due to buggy firmware in the xDSL/cable modem or router. Reports on the mailing list seem to indicate that transfers complete without issue if the download rates are low. It seems that some people have come up with some very creative workarounds to deal with this, such as stopping the transfer if it gets too fast and restarting.

Limiting the download rate is much harder than limiting the upload rate, because one can only really control the rate at which packets leave the system. The rate at which they arrive is determined by the originating systems and any routers, gateways, or traffic shapers along the path. However, there are several ways that software can achieve the effect of limiting the download rate — they amount to basically dropping some packets if they’re coming in too fast, which will cause the TCP/IP stack of the sender to back off somewhat.

For those having these sorts of problems, here are the methods of which I’m aware to limit the download rate:

  • For Windows, the Netlimiter program claims to be able to limit both the download and upload rate of individual programs or connections. The program is still in beta-testing, and it shows. My initial trial of it was not positive: it reported vastly wrong figures of its estimation of the BitTorrent program upload rate, its sockets wrapper broke Apache and rsync-over-ssh on my cygwin system, and its installer was ill- behaved. Finally, it is not free software, in both the “free speech” and “free beer” senses of the word. Not recommended at all.
  • For Linux, *BSD, and Solaris, there is trickle, which is a userspace traffic shaper that uses the dynamic library preload facility. This has the advantages of requiring neither root privileges nor a recompiled kernel, and a simple command line e.g. trickle -u 20 -d 80 --responsefile "%1".
  • For Linux, you can try using the QoS features of the kernel to set an ingress filter. A recent mailing list post gives an example script that uses the tc (traffic control) command. Note that for this to work you will need root access and you may have to recompile the kernel (for netlink sockets and QoS.) See this page for information about configuring the kernel, this page about the ingress queueing discipline, and the Linux Advanced Routing & Traffic Control HOWTO as well as the Advanced Networking Overview for more information. The BSDs surely have traffic shaping as well, if anyone would like to contribute some links I will update this section.
  • For Mac OS X (10.2.x only), Carrafix claims the capability to limit both upload and download rate for each port. Note that you must set a seperate cap for each port that BitTorrent uses in the Carrafix setup screen.
  • Finally, another option is to limit the number of connections that BitTorrent makes. The number of connections does not directly correlate with download speed, however, since a client may be connected to a number of slow peers or just one or two very fast peers. The command line parameters that affect the download rate are: (see also the section (Xref) How do I change the command line parameters in Windows? )
    --min_peers n
    determines the minimum number of peers that the BT client should be connected to before it will stop asking the tracker for more. The default is 20.
    --max_initiate n
    determines when the client should stop initiating new peer connections. The default is 40. Note: I believe, but am not positive, that this only affects outgoing, i.e. initiated connections. In other words the client will still continue to accept new connections past the number specified here, but will not initiate any further outbound connections.
    --request_backlog n
    determines the number of download requests to keep queued, defaults to 5. Setting this to a lower value should decrease the overall download efficiency and speed.

    So, you might try --min_peers 5 --max_initiate 10 --request_backlog 3 (for example) and see if it helps alleviate the sporadic disconnects or other related problems.

Note: Please let me know of any successes or failures at using these methods to cure the disconnect issue. I have no personal experience with the issue so I don’t know what’s worth trying.


Have you considered that you may be subject to a denial-of-service (DOS) attack? Some groups seem to be running DOS attacks against BitTorrent sites.
Also, limiting download rate is easy, at least for TCP: you just read packets at the rate you want–no need to drop anything. Except for the buffer size, new packets will only be sent when you remove old packets.
[Append to This Answer] (Answer) Try the command “netstat -an” from a command prompt. This should work for Windows, Linux/Unix, and Mac OS X. It will give you a list of all the network connections on your machine. Generally, you are only interested in connections where the state is ESTABLISHED. Also, connections with the local address of “” are usually not interesting, as they indicate local-only connections.

For Windows, there is a much better tool for this that gives a more informative output with a GUI instead of a command line interface. Download TCPView, a free program. It will show an output similar to the netstat command, but it will also list the program name and PID (process ID) of which program “owns” each connection. Try the Show Unconnected Endpoints button to hide connections that are not in a state of ESTABLISHED. The Resolve Addresses command will perform a reverse-DNS lookup, which will display the hostname of the machines to which you are connected (if available), instead of their numeric IP addresses. TCPView even has an option to close a specific connection, if you right click on the desired row and choose Close Connection.

Using either netstat or TCPView, you can figure out which connections are inbound and which are outbound. Those with a Local Address ending in “:6881” through “:6999” (or any port number in the port range that you have specified) are inbound connections. The rest are probably outbound, especially if it has a Remote Address that ends in “:6881” through “:6999”.

In the latest build of the experimental client (3.2.1b-2), if you click on the Advanced button you will get a screen showing details about each of the machines you are connected to for the current torrent.


[Append to This Answer] (Category) Answers in this category:
(Answer) How do I create a new torrent (share a file I have with others)?
(Answer) How do I change the command line parameters in Windows?
(Answer) How can I make Internet Explorer ask me if I want to save the torrent link rather than automatically opening the download GUI?
(Answer) What are the command line parameters for the BitTorrent client?
(Answer) What are the command line parameters of the BitTorrent Python tracker?
(Category) How do I run a tracker?
(Answer) How do I configure a web server for .torrent files?
(Answer) Is there a way to download or seed a number of files at once without launching a bunch of copies of the client?
[New Answer in “Advanced Topics”] (Answer) Sharing files that you have with others is relatively easy with BitTorrent, but a little extra work is required compared to marking a directory as “shared” as with some other file sharing applications. There are essentially three elements necessary to sharing a file with BitTorrent:

  1. The tracker, which coordinates connections among the peers. Bandwidth required is very moderate compared to the size of the files being shared.
  2. The web server, which stores and serves the .torrent file. This is usually a quite small file, and is only requested once by each peer before initiating the transfer. The web server also serves to index and organize the torrents, since there is no built-in search capability in the BitTorrent protocol — existing web techniques are instead used.
  3. At least one seeder. This is the only element of the three that contains any of the file’s actual contents. The seeder is almost always an end-user’s desktop machine, rather than a dedicated server machine.

In earlier periods of BitTorrent, the process was somewhat more difficult because frequently you had to run your own tracker (and possibly web server) in addition to the seeder. Recently, however, torrent communities have sprouted which take care of many of the details of running a tracker and distributing the .torrent metadata file. For most purposes, using one of these communities is the quickest and easiest way to share data.

For the purposes of this part of the FAQ, we will assume you already have a tracker and web server, or access to them. Most of the sites in the links section ((Xref) Links to Popular BitTorrent Sites) run trackers and web servers that you are welcome to use. The rule of thumb here is to never create a torrent for a tracker which you do not have permission to use. In most cases that simply means that if you intend to use a tracker, you should also post your .torrent file to the website associated with the tracker, so that the whole community can benefit.

If you still desire to run a tracker or web server, see (Xref) How do I run a tracker? and (Xref) How do I configure a web server for .torrent files? .

Below are the steps to create and distribute the .torrent file, and begin the seeding.

  1. Decide what you want to share. A torrent can contain either a single file, or a directory of many files. This is often quite convenient, since it avoids the step of creating an archive (.zip, .rar, etc.) if you need to store multiple files. For example, if you are sharing a 2-CD movie, put both of the files in a directory and create a torrent for that, rather than zipping the files and then creating a torrent for the single archive file.
[Append to This Answer] (Answer) The command line that Windows sends to the BitTorrent program is stored in the registry, with the file-type association for TORRENT files. It can be changed as follows:

  1. Go to Folder Options in the Control Panel.
  2. Select the File Types tab at the top of the dialog.
  3. Wait a moment for Windows to load the list, then scroll down and select the TORRENT extension. Tip: press the ‘t’ key to jump to entries starting with t. Note: The file extension column might be truncated to just TORR...
  4. Click the Advanced button.
  5. In the list of Actions, select open, probably at the top of the list, then click the Edit button.
  6. The contents of Application used to perform action is the command line. By default it should be:"C:Program FilesBitTorrentbtdownloadgui.exe" --responsefile "%1"Note the double-quotes around %1, and your Program Files directory might be different. To add more command line parameters, simply change this string. For example, to change the port range, you might use:"C:Program FilesBitTorrentbtdownloadgui.exe" --minport 10000 --maxport 10100 --responsefile "%1"See (Xref) What are the command line parameters for the BitTorrent client? for a list of all the available command line arguments and their defaults.
  7. Finish by clicking OK to close all the dialogs.

Also note that if you are using TorrentSpy to launch BitTorrent, the command line used is contained in the TorrentSpy configuration. Use the System tab in TorrentSpy to modify the command line parameters used in this case.


[Append to This Answer] (Answer) Some people like to save the .TORRENT files to disk, so that it’s easy to restart transfers without finding the original link. It’s possible to make Internet Explorer ask you if you want to save the file or open it in place, rather than automatically running the GUI. To do this, follow steps 1 through 4 under (Xref) How do I change the command line parameters in Windows? . On the dialog now on your screen you should see a check box labeled Confirm open after download. Put a check in this box and IE will ask you what you want to do when you click on a torrent link. Use this as an alternative if you find yourself always right clicking and choosing Save As….


[Append to This Answer] (Answer) The command line arguments accepted by the Python client (and its derivatives) are as follows:

--max_uploads <arg>
the maximum number of uploads to allow at once. (defaults to 4) Note that this does not affect the number of connections, only the number of simultaneous unchoked uploads.
--keepalive_interval <arg>
number of seconds to pause between sending keepalives (defaults to 120.0)
--download_slice_size <arg>
How many bytes to query for per request. (defaults to 16384)
--request_backlog <arg>
how many requests to keep in a single pipe at once. (defaults to 5)
--max_message_length <arg>
maximum length prefix encoding you’ll accept over the wire – larger values get the connection dropped. (defaults to 8388608)
--ip/-i <arg>
ip to report you have to the tracker. (defaults to ”)
--minport <arg>
minimum port to listen on, counts up if unavailable (defaults to 6881)
--maxport <arg>
maximum port to listen on (defaults to 6999)
--responsefile <arg>
file the server response was stored in, alternative to url (defaults to ”)
--url <arg>
url to get file from, alternative to responsefile (defaults to ”)
--saveas <arg>
local file name to save the file as, null indicates query user (defaults to ”)
--timeout <arg>
time to wait between closing sockets which nothing has been received on (defaults to 300.0)
--timeout_check_interval <arg>
time to wait between checking if any connections have timed out (defaults to 60.0)
--max_slice_length <arg>
maximum length slice to send to peers, larger requests are ignored (defaults to 131072)
--max_rate_period <arg>
maximum amount of time to guess the current rate estimate represents (defaults to 20.0)
--bind <arg>
ip to bind to locally (defaults to ”)
--upload_rate_fudge <arg>
time equivalent of writing to kernel-level TCP buffer, for rate adjustment (defaults to 5.0)
--display_interval <arg>
time between updates of displayed information (defaults to 0.5)
--rerequest_interval <arg>
time to wait between requesting more peers (defaults to 300)
--min_peers <arg>
minimum number of peers to not do rerequesting (defaults to 20)
--http_timeout <arg>
number of seconds to wait before assuming that an http connection has timed out (defaults to 60)
--max_initiate <arg>
number of peers at which to stop initiating new connections (defaults to 40)
--check_hashes <arg>
whether to check hashes on disk (defaults to 1)
--max_upload_rate <arg>
maximum kB/s to upload at, 0 means no limit (defaults to 0)
--alloc_pause <arg>
seconds to wait before displaying allocation feedback (defaults to 3.0)
--snub_time <arg>
seconds to wait for data to come in over a connection before assuming it’s semi-permanently choked (defaults to 60.0)
--spew <arg>
whether to display diagnostic info to stdout (defaults to 0)


[Append to This Answer] (Answer) The available arguments for the Python tracker ( are:

--port <arg>
port to listen on. (defaults to 80)
--dfile <arg>
file to store recent downloader info in (this is a REQUIRED parameter)
--bind <arg>
ip to bind to locally (defaults to ”)
--socket_timeout <arg>
timeout for closing connections (defaults to 15)
--save_dfile_interval <arg>
seconds between saving dfile (defaults to 300)
--timeout_downloaders_interval <arg>
seconds between expiring downloaders (defaults to 2700)
--reannounce_interval <arg>
seconds downloaders should wait between reannouncements (defaults to 1800)
--response_size <arg>
number of peers to send in an info message (defaults to 50)
--timeout_check_interval <arg>
time to wait between checking if any connections have timed out (defaults to 5)
--nat_check <arg>
whether to check back and ban downloaders behind NAT (defaults to 1)
--min_time_between_log_flushes <arg>
minimum time it must have been since the last flush to do another one (defaults to 3.0)
--allowed_dir <arg>
only allow downloads for .torrents in this dir (defaults to ”)
--parse_allowed_interval <arg>
minutes between reloading of allowed_dir (defaults to 15)
--show_names <arg>
whether to display names from allowed dir (defaults to 1)
--favicon <arg>
file containing x-icon data to return when browser requests favicon.ico (defaults to ”)
--only_local_override_ip <arg>
ignore the ip GET parameter from machines which aren’t on local network IPs (defaults to 1)
--logfile <arg>
file to write the tracker logs, use – for stdout (default) (defaults to ”)
--allow_get <arg>
use with allowed_dir; adds a /file?hash={hash} url that allows users to download the torrent file (defaults to 0)
--keep_dead <arg>
keep dead torrents after they expire (so they still show up on your /scrape and web page) (defaults to 0)
--max_give <arg>
maximum number of peers to give with any one request (defaults to 200)


[Append to This Answer] (Category) There are several options for running a tracker, as explained below. However before going to the trouble of installing and running your own tracker, you should first consider whether you actually need to run a tracker in the first place. There are many public BitTorrent trackers out there at the moment, see (Xref) Links to Popular BitTorrent Sites for a good list. Unless you have some compelling reason why you want to run your own tracker, it’s probably best to use someone else’s. Hosting a tracker on a workstation-type machine with a dynamic IP address is possible but can be very tricky. In short, if you’re not sure whether you need to run a tracker or not, then you don’t need to.

Before starting on your tracker, make sure you’ve read and understand (Xref) How do I create a new torrent (share a file I have with others)?, especially the part about the need for the --ip parameter for seeding machines on the same side of a NAT gateway as the tracker.

Below are the common ways to run a tracker:


(Answer) Using the standard Python tracker
(Answer) Using BNBT
(Answer) Using PHP / MySQL trackers
[New Answer in “How do I run a tracker?”] (Answer) Here are the general steps you should follow to use the standard (“reference”) Python tracker from Bram Cohen.

  1. Install Python if you don’t already have it on your system. Windows users should follow this link to download the Python 2.2.3 installer from If you use Linux (or BSD, OS X) you will want to consult your distribution’s package management system. There are some details on this at (Xref) Linux/Unix .
  2. Get the Python source code of BitTorrent. Note: A lot of changes have been made to the source since 3.2.1 was released, I strongly recommend that you get the latest sources from CVS if you want to run the tracker. To check out the source from CVS, issue the following command, assuming that you have a CVS client installed:cvs co BitTorrentThis will create a BitTorrent directory under the current working directory. Note: Sourceforge’s CVS server has been very flaky recently, presumably due to overload. If you find that you cannot get the above command to work, i.e. you get “Connection reset by peer” or some sort of timeout error, you can try this alternative server:cvs co BitTorrentIf you need help installing a CVS client on your system, consult the Sourceforge documentation for Windows users here as well as the general CVS documentation here. Note that you can also access the sources through WebCVS.
  3. Page through the README.txt file for general instructions on how the tracker works. Essentially, you change to the directory that contains the file and issue a command such as:python --port 6969 --dfile dstate --logfile tracker.logNote that if this command is successful you won’t see anything on the screen at all — the tracker will remain open until you kill it, so you may want to put the command in a batch file for easy startup. To check your tracker’s operation, connect to the machine running the tracker, i.e. by loading “http://machine-name:6969/” into your browser. If successfull you should see a status page in your browser.Your tracker’s announce URL will be “http://machine-name:6969/announce“. This is what should be entered in the appropriate field when creating a .torrent for your tracker.
  4. You should review the command line parameters and make any changes as appropriate. Note that the “--logfile” parameter is new in CVS and not present in 3.2.1. If you must use the 3.2.1 sources, you will want to redirect the log messages on stdout to a file, e.g. by appending “>> tracker.log” to your command line. You can also run “python to get a list of command line parameters. Some parameters that might be of interest are:
    --nat_check n
    If 1 (default), don’t allow users behind NAT gateways use the tracker. You probably want to set this to 0 for a general-access site.
    --allowed_dir dir
    Use this to restrict the files which your tracker will track. This parameter specifies a directory name, and it will only track torrents that exist in this directory. If this parameter is present you must somehow place the .torrent file in the specified directory before the tracker will accept it.
    --show_names n
    If set to 1, the tracker will show filenames of torrents that it knows about in its allowed_dir, instead of just showing info_hash’s on its status page.

    See (Xref) What are the command line parameters of the BitTorrent Python tracker? for a complete list of command line parameters.


[Append to This Answer] (Answer) As an alternative to the Python tracker, you can try BNBT which is a tracker written in C++. It is slightly easier to install since it comes with precompiled binaries for Windows, and is relatively easy to build with g++ under Linux/OS X. BNBT has more advanced stats-pages, but its configuration is very similar to the Python tracker. Refer to the home page for downloads and manuals.


[Append to This Answer] (Answer) If you have a web server capable of PHP and MySQL, there are a couple of free (GPL) tracker implementations. One is PHPBTTracker, another is Both of these solutions run integrate the tracker with the web server, and offer quite extensive stats. Refer to the PHP source for installation details.

Note: this section is out of date, there are now a handful of PHP trackers.

[Append to This Answer] (Answer) You must associate files ending in .torrent with the Content-Type application/x-bittorrent. For Apache, you should add the line:

AddType application/x-bittorrent .torrent

to your httpd.conf configuration file. If you cannot modify the main httpd.conf file (such as in the case of a shared or virtual hosting scenario), you can also put the above AddType directive in a .htaccess file. This presumes that the server’s administrator has enabled this ability with the AllowOverride FileInfo directive. Also note that settings in a .htaccess file only apply to the directory containing the file, so make sure this is the directory that will contain the .torrent files.

Alternatively, you can add the line:

application/x-bittorrent .torrent

to your mime.types file, which is used if the TypesConfig directive is present in httpd.conf.


To add MIME types with Microsoft’s IIS web server:

  1. Right-click the Web site and choose Properties.
  2. Select the HTTP Headers tab.
  3. In the MIME Map box, click File Types, and then click New Type.
  4. Enter the extension “.torrent” and the MIME type “application/x-bittorrent” in the appropriate boxes.
  5. Select OK to close all the dialogs.

If you cannot configure the application/x-bittorrent type, you could place the .torrent files in an archive (.zip, .rar, etc.) and serve that instead. Doing so will forfeit the ability to click on a torrent link and automatically launch the BitTorrent client, however. The user must manually unpack the .torrent file and then launch it to start the transfer.


[Append to This Answer] (Answer) You can use the or the version of the client. Both of these are found in the official source distribution. The first parameter on the command line specifies a directory which holds a number of .torrents and their corresponding files/folders; the rest of the command line follws the same form as the normal clients (see (Xref) What are the command line parameters for the BitTorrent client? )

(more here later)


[Append to This Answer] (Category) Below are some good resources for BitTorrent information and support. Note: If you are simply looking for places to download files, try this section instead: (Xref) Links to Popular BitTorrent Sites


(Answer) Web Sites
(Answer) Mailing Lists
(Answer) Forums
(Answer) Newsgroups
(Answer) IRC
[New Answer in “Getting Help and Support”] (Answer)


[Append to This Answer] (Answer) There are a handful of BitTorrent-related mailing lists maintained on Yahoo Groups. To join these lists, either click on the link and use the web interface, or send an email message to where group is the name of the group. Please ensure that your post is on-topic and sent to the correct list.

  • BitTorrentTalk – A general list for anything related to BitTorrent, such as finding sites or help with converting/viewing/burning downloaded files, etc.
  • BitTorrent – This list is strictly for development of the BitTorrent software. Post bug reports and questions on the BitTorrent protocol, etc. Do NOT ask about where to find files or how to open them, convert movies, play multimedia, etc. Note: I have assembled an archive of all posts to this Yahoo-group in mbox fomat, click here to download it. This file is approx 1.4MB in size (compressed with bzip2) and contains approx. 3300 emails. The messages are in standard mbox format which can be imported by most all email applications, and the Yahoo-groups advertisements and other clutter has been removed. Use this archive if you wish to search or browse the messages offline. (This archive made with the yahoo2mbox tool and some perl scripts to clean up the Subject lines.)
  • BitTorrent_help – Post requests for technical support for using the BitTorrent software.
  • btports – A group for the technical discussion of the development of BitTorrent clients in other languages or platforms.
  • torrent-talk – General discussion area for users of BitTorrent software. Post here if you are looking for links, specific files, reseed requests, help opening/converting a file, etc.
  • Bittorrentfiles – For exchanging links to files, etc.


[Append to This Answer] (Answer) If you prefer the forum type of community, here are some links to BitTorrent-related forums: (a more complete list can be found at this page.)


[Append to This Answer] (Answer)


[Append to This Answer] (Answer)

A more complete list of torrent-related channels can be found on this page as well as this page. Additionally you can search for torrent channels using and


[Append to This Answer] (Answer) Please note: These links change often. This site is not meant as a comprehensive list, so I will just list a few good “links sites”. Sites with extensive link collections / portals:,, Torrent search engines:,,, Web sites offering legitimate BitTorrent files: BitTorrent Files for Slashdot Effect Victims, TradeFriendly torrents at, Colorado Tapers community site, Phishhook, Musicfreaks Bittorrent Search Engine: Full automatic BitTorrent search engine: <a href=””>BTbot</a> [Append to This Answer]

This document is: /cgi-bin/fom?file=1

[Search] [Appearance] [Show Top Category Only]
This is a Faq-O-Matic 2.721.
scriptsell.neteDataStyle - Best Wordpress Services