Install Transmission on the Raspberry Pi For An “Always-on” Torrent Client
Transmission is a Torrent client software. It makes use of a web interface, making it particularly well-suited for headless setups to handle the downloading of torrents in the background. There are many articles on the web about Transmission on the Raspberry Pi. Unfortunately, many of them are either way too complicated or simply wrong. However, it’s actually relatively simple to install and configure Transmission when you follow our detailed instruction.
Today, after discussing the advantages of using a VPN when torrenting, we’ll introduce you to torrents and to Transmission. We’ll then discuss what makes the Raspberry Pi such a good platform for running Transmission. Jumping to the core of the matter, we’ll give you detailed instructions on how to install, configure and use Transmission on your Raspberry Pi. We’ve tried to keep our guide simple. We’ve eliminated the fluff and have kept only what is really required. This helps make the process as simple as it can.
For Better Privacy When Downloading Torrents, Use A VPN
There’s nothing wrong with downloading torrents per se. In fact, lots of open-source software are distributed that way. However, torrents are also used to distribute copyrighted material. For that reason, some Internet Service Providers might be led to think someone is violating their terms and conditions just because they use torrents. And when they do, they can react by throttling down the speed, sending infringement notices or even interrupting the service. To hide your online activity from the scrutiny of your ISP, use a VPN.
A VPN works its magic by encrypting your data using strong algorithms that make it almost impossible to crack. Your IPS–or anyone, for that matter–won’t see where you’re going or what you’re doing online. As a bonus, a VPN allows bypassing geographic restrictions by letting you masquerade your location and appear like you’re located somewhere else.
With so many providers available, choosing a VPN can be a daunting task. Here are a few important factors to consider. A fast connection speed will reduce buffering, a no-logging policy will further protect your privacy, no usage restrictions will let you access any content at full speed and software for multiple platforms will ensure the VPN works on your devices.
NordVPN – Essential for Fast, Secure Torrenting
You’ve heard the warnings before, but we’ll echo them again: Never use torrenting clients like Transmission on an unencrypted Internet connection! Doing so opens you up to scrutiny from ISPs, government agencies, copyright trolls, and hackers besides. But thankfully, NordVPN exists; it’s affordable, easy to use, and utterly effective at hiding your torrent traffic.
The secret sauce is NordLynx, a bleeding-edge tunneling protocol which uses a 256-bit AES encryption cipher to completely lock out any third-part intrusion into your traffic. It works to dodge surveillance and censorship, shielding you from cyber-attacks, and stopping ISP throttling cold. It’s an indispensable tool for securing fast torrent downloads.
NordVPN also features specially optimized P2P servers amongst its gargantuan network of over 5,800 servers in 59 countries total. These auto-configure the optimal settings to balance security and performance, ensuring that your massive downloads don’t stall out–nor invite the attention of anyone with an undue interest in your activity. What’s more, NordVPN never tracks your activity itself, either–enshrining your right to privacy in one of the industry’s best no-logging policies.
Read our full NordVPN review.
- Works with Netflix, BBC iPlayer without breaking a sweat
- GooglePlay users rating: 4.3/5.0
- 2,048-bit SSL keys and DNS leak protection
- Strict zero logs policy on both traffic and metadata
- Money back guarantee policy.
- Some servers can be unreliable
- They can take 30 days to process refunds.
A Quick Introduction To Torrents
Torrent, or more precisely BitTorrent, is a communication protocol used to share files between users. Contrary to other methods of obtaining files off the Internet–such as downloading from websites or FTP, it does not rely on servers to hold its content. It is rather distributed among all users. BitTorrent was created in 2002 primarily as a way of distributing the open-source Linux operating system. Today, BitTorrent has become the most-used method for downloading files. More than half of all the file transfers on the Internet are done through torrents.
BitTorrent is a peer-to-peer protocol where every user not only gets but also shares content. BitTorrent Trackers–a special kind of server–keep track of all the file segments that are available from each of the connected peers. When you start your torrent software, it connects automatically to nearby peers and trackers and automatically shares all local file segments information, making them available to other users. This is central to torrent’s operation. Files are hosted and shared on each user’s computer.
To find and download a specific file, torrent users use indexing websites. Among the better-known ones are websites like The Pirate Bay or KickassTorrents. Those torrent indexing sites offer search capabilities. Their search results return .torrent files that you download and that are used by the torrent client software to download the actual files. Some software publishers also offer .torrent files to download their software.
What Is Transmission?
Transmission is a torrent client software for the Linux operating system. It will take .torrent files, connect to the peers and trackers and handle the downloading and sharing of files. Where Transmission differs from other torrent clients is in that it doesn’t have a user interface. It is meant to run on a server and to be accessed and used through a web interface.
The web interface is where you open .torrent files–or paste web links to .torrent files, see the progress of your ongoing and completed downloads and manage all aspects of torrenting.
Why Choose The Raspberry Pi?
Combined with Transmission, a Raspberry Pi makes for one of the cheapest torrent downloading server one can imagine. Why spend several hundreds of dollars–if not a thousand or more–on hardware when the Raspberry Pi has all that’s required. Hardware-wise, all you’ll need is a Raspberry Pi and some external storage–which you may already have–and you could have a machine dedicated to handling torrents in minutes, You’ll no longer need to leave your computer running because of ongoing downloads.
The Raspberry Pi In A Nutshell
Developed in the UK by a non-profit organization called the Raspberry Pi Foundation to teach basic computer science in schools and in developing countries, The Raspberry Pi’s feature set, adaptability, size and affordability (you can get it for around 35 US dollars) have made it immensely popular outside of its intended audience with more than 11 million units sold worldwide since its release in 2012.
The most current model–and the one we recommend using, the Raspberry Pi 3 model B, offers a wide range of features and interfacing capabilities. With a 1.2 GHz, 64-bit, quad-core ARM Cortex-A53 processor, a high-performance Broadcom VideoCore IV graphic processor, 1 GB of RAM, video, audio, and USB interfaces, it really is a powerful and versatile device. Although it has a video interface, it’s not required for its operation and the Raspberry Pi makes a great headless device.
Before We Begin
Although installing and configuring Transmission on a Raspberry Pi is not particularly complicated, there are a few things we need to verify before we start. It would be a shame to be unable to complete the setup because we’re missing something.
A Few Assumptions
We’re assuming that you’ve got your Raspberry Pi up and running the latest version of the Raspbian operating system.
We’re also assuming that you’ve connected some external storage to your Raspberry Pi. It could be an external USB hard disk or it could be some form of Network Attached Storage. We’re also assuming that you’ve tested your storage setup and that it is operating correctly.
Finally, we’re assuming that you have your Raspberry Pi connected to your network–either via Ethernet or WiFi, that you’ve tested that the network is working and that you know how to remotely connect to your Raspberry Pi using SSH.
What You’ll Need
Essentially, you need three things to get this done.
- A Raspberry Pi. We strongly suggest a Raspberry Pi 3. Also, it should run the Raspbian Operating System. You’ll also need, of course, the required accessories such as a power adapter, a microSD card and perhaps a case.
- Some form of external storage. As we mentioned in the previous section, a USB hard disk would be perfectly suited for this purpose and so would some Network Attached Storage. You could even use a USB key. Some of them are quite large these days. It all depends on how much data you intend to store.
- Last but not least, you’ll also need a computer to do all the installation and configuration and to use the Transmission software once it is installed. It could be pretty much any computer Windows, Macintosh or Linux, as long as it’s connected to the same network as the Raspberry Pi. To be able to remotely connect to the Raspberry Pi for the setup, it should have an SSH client software. On Windows, we recommend Putty. It should also have a web browser to connect to Transmission after installation.
Installing And Configuring Transmission On The Raspberry Pi
There are quite a few steps involved in setting up Transmission on the Raspberry Pi but none is particularly complicated. If you execute each one as specified, you should have a working installation within minutes,
Step 1: Making sure Raspbian is up to date and the latest version.
Before installing any new software, it’s always better to first make sure you have the latest version of the Operating System and that all the patches are installed.
The following steps all assume that you’re connected remotely to the Raspberry Pi using an SSH client running on a computer of your choice.
Enter the following two command, waiting for the first one to finish before launching the second:
sudo apt-get update sudo apt-get upgrade
You may be prompted to accept some changes when these commands run. If you are, make sure you type “y” to confirm.
Step 2: Installing Transmission
The actual installation is possibly the simplest part of this whole process.
Just type in this command:
sudo apt-get install transmission-daemon
Step 3: Creating Directories
Next, we need to create a few directories where Transmission will store the files being downloaded and the completed files. Let’s assume that your external storage path is /media/storage.
To create the directories, enter these two commands:
mkdir -p /media/storage/Torrent_inprogress mkdir -p /media/storage/Torrent_complete
Step 4: Setting Permissions
Transmission runs by default as user “debian-transmission“. It is highly recommended not to change this due to security reasons. However, we need Transmission to have the right to write to the Torrent_inprogress and Torrent_complete directories. These directories, created in the previous step, have their permission set by default as 770 for user pi and group pi. We simply need, therefore, to add the”debian-transmission” user to the “pi” group.
This is accomplished by entering the following command:
sudo usermod -a -G pi debian-transmission
If you’re comfortable with it and know what you’re doing, you may modify this step as per your security requirement. Just make sure your torrent download directories have rw access for “debian-transmission” user.
Step 5: Configuring Transmission
All of the Transmission configuration is stored in a text file named settings.json locate in the /etc/transmission-daemon directory.
Here’s what a typical setting.json file looks like:
{ "alt-speed-down": 15, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 15, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": true, "blocklist-url": "https://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/media/storage/Torrent_complete", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/media/storage/Torrent_inprogress", "incomplete-dir-enabled": true, "lpd-enabled": false, "max-peers-global": 200, "message-level": 2, "peer-congestion-algorithm": "", "peer-limit-global": 240, "peer-limit-per-torrent": 60, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": 1, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "{46949fbf39bfeec6dc9d4bff9f40c3f52219a4260yk9yGNo", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 7, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true }
Most of the parameters in the settings.json are somewhat self-explanatory. And normally, you shouldn’t have to change any of them except a few: download-dir, incomplete-dir, rpc-username, rpc-password. They are highlighted in bold in the sample file above.
The first two will need to be replaced by the correct paths to the directories created in step 3. rpc-username can be anything you choose and so can rpc-password. Note that although the rpc-password parameter will appear in clear text as you edit the file, it will be converted to an encrypted hash when you save it.
We’re going to use the nano editor to modify the settings.json file. It can be launched with this command:
sudo nano /etc/transmission-daemon/settings.json
Once the editor is launched, changes the parameters that require changing. After you’re done editing the file, type CTRL-X to exit the nano editor and then type Y when prompted to save the modified file.
Step 6: Reloading Transmission
At this point, you should certainly not restart. This is where several Transmission tutorials screw thing up. Restarting overwrites the configuration file and this certainly not what you want.
What you need is to restart the transmission daemon. You do that with this command:
sudo service transmission-daemon reload
Voila! We’re done. You should not have the Transmission software running headlessly on your Raspberry Pi.
Step 7: Verifying Your Installation
To make sure Transmission is working fine, open a web browser and go to https://Pi-IP-Address:9091, where Pi-IP-Address should be replaced by the actual IP address of your Raspberry Pi. Alternately, you could also use its hostname instead of it’s IP address.
You’ll be prompted for a user id and password. Enter those you’ve configured and you should get a page similar to this:
Using Transmission On The Raspberry Pi
Now that we’ve installed Transmission, how do we use it, you may ask? Well, it’s about as easy as installing it. Just remember that Transmission is just a torrent client and just like with any other similar software, you’ll need to do your searches for content somewhere else, like one of the numerous torrent indexing sites that exist.
Once you find a suitable .torrent file, instead of downloading it, right-click the link (or button) and select Copy Link Location from the drop-down context menu.
Now head back to the Transmission page and click the folder icon at the top left of the window. In the Upload Torrent File box, right-click the field under “Or enter a URL:” and paste the URL you just copied.
Click the Upload button and your download will start momentarily. You will then be able to monitor the download progress in the Transmission window.
Conclusion
For just the price of a Raspberry Pi and some external storage, both of which you may already own, you can have your own media server complete with a Torrent client that you can leave running at all times. Although it has the reputation of being a complicated endeavour, it’s actually not that ard of you have the right set of instructions. And once it is installed, using Transmission is as easy as any other torrent client.
Give Transmission a try and then share your experience with us. We’d love to know how it went, what issues–if any–you had and how you solved them. Use the comments below to share your thoughts with us.
There is one more change that needs to be added in the STEP 5.
“RPC-Whitelist” needs to list the IP address of the PC/Mac that you will access the torrent UI from (instead of the 127.0.0.0 default IP). Alternative to this, you can switch “rpc-whitelist-enabled” to false. Otherwise you will not be able to access the UI of your Torrent install in the RPi.
I hope this helps.
Great guide, but how do you use Transmission with magnetic links? You can’t download a magnetic link