As you might know, when you download a file from a browser, it is limited by the speed limit per stream imposed by the download server. Refer to my previous post on using a Download Manager to bypass this limitation: Why you should use Internet Download Manager. But sometimes, using IDM is not an option since the file server is so slow (maybe because of unexpected amount of download requests) that even IDM can’t help you gain full speed. In such case, downloading using BitTorrent client can give you full speed, as the file that you want to download is retrieved in small chunks from hundreds of peers and seeders. ¹
BitTorrent is a very powerful distribution tool for those who share files with several people at once. See how and why Twitter and Facebook, two major technology companies rely on BitTorrent technology to distribute files across their networks – Facebook and Twitter uses BitTorrent and they love it.
For example, when a new version of Ubuntu OS is released, the download might be a bit slow for a few hours because everyone tries to download the file at the same time. At such times, because Ubuntu provides an alternative download via BitTorrent protocol, you can download Ubuntu OS using BitTorrent client faster. But most of the firewalls in company networks block BitTorrent traffic. You can bypass this restriction by setting up and using SSH proxy if you are willing to pay for it. Here is a link to such a guide: Bypass any Firewall or Throttling ISP with SSH. But the guide here will help you use BitTorrent even if the firewall has blocked torrent downloads and it involves no setup and costs nothing.
Let’s go through the steps how BiTorrent download actually works. When you download a .torrent file, there are a few things such as – list of trackers, file name, file size, etc are stored in it. Refer to this link for accurate structure of torrent file. You can open it in notepad and examine it yourself. This information is used by BitTorrent client. The client first asks the trackers to provide a list of participants’ (peers and seeders) IP addresses and port numbers. The trackers reply with such list. The client then sends download request to these IP addresses on respective port numbers and the machines behind these IP addresses sends chunks of the file back to the BitTorrent Client.
Now when the firewall blocks torrent downloads, it can either block the specific port numbers and/or web URLs of trackers (blacklisting), or it can detect unencrypted BitTorrent connection to trackers by way of Deep Packet Inspection (DPI). In any case, the BitTorrent is unable to get the list of IP addresses which are serving the file. Now imagine, if you obtain such a list, then there is no way for the firewall to block the BitTorrent traffic as long as it is encrypted as you are communicating to the individual IP addresses and the firewall can’t have all these IP addresses in it’s blacklist.
My solution uses this logic. You can easily get a list of peers serving the file (explained below) and add them as peers for your torrent. Then by way of Local Peer Discovery and Peer Exchange, BitTorrent client can discover other peers automatically. Follow these steps to download torrents from a firewalled network. The following guide uses a free BitTorrent client, µTorrent
- Get a list of Peers (Pair of IP addresse and Port numbers). ²
- First start the torrent download for a few seconds (or until you see some entries in Peers tab) on a different network (e.g. Home network, use Mobile Hotspot, ask a friend to start the torrent for a few seconds)
- Go into the “Peers” tab, Observe the list of peers, focus, in specific, on the “down speed” column, this shows you how fast you are downloading data from that specific peer/seed.
- Select a few peers which are giving you faster speeds
- Right-click , Click on the “Copy selected hosts” option.
- Open Notepad and paste it.
- Add Peers manually.
- When you are in company network, start the torrent. You will notice that the firewall refuses connection to trackers and your peer list will remain empty.
- Go into the “Peers” tab
- Right-click on an empty portion of the space below
- Click on the “Add peer” option.
- Copy and paste the IP address and port no. of the high-speed peer (paste it as it is, don’t make any modifications to it)
- Click on OK
- Set proxy server settings according to the image below if your network uses a proxy server.
- Enable BitTorrent Protocol Encryption, EnableDHT, Local Peer Exchange and Peer Discovery.
Your torrent download should start now.
If not, add some more peers as it is possible that the peers that you noted previously and added to peer-list have gone offline when you are actually trying to download.
Happy torrenting 🙂
P.S. Downloading a file (especially pirated files) using BitTorrent client from a office network can put you in a lot of trouble. Follow this guide at your own risk.