Transmission BitTorrent Seedbox
Introduction¶
BitTorrent needs no introduction, but if you are unaware, BitTorrent is a peer-to-peer file-sharing protocol. BitTorrent relies on multiple peers seeding (uploading) the requested file to you, but you also seed back to future downloaders.
Transmission is a popular open-source BitTorrent client with multiple frontends and backends. Here, you will install the headless "daemon" backend.
In today's mobile-centric world, it makes more sense to run Transmission as a headless server than directly on a laptop or a desktop. This way, you can seed files 24/7 while a mobile device's battery life is not consumed when downloading.
Installation¶
To install Transmission, you first need to install EPEL:
dnf install -y epel-release
Then install Transmission:
dnf install -y transmission
First setup¶
Unlike most Linux daemons, Transmission sets up the configuration upon first startup, so start and stop Transmission with:
systemctl start transmission-daemon
systemctl stop transmission-daemon
After these steps, you will have a configuration file. It would be best to stop Transmission, as you cannot edit the configuration file while running.
Configuration¶
Configure Transmission:
cd /var/lib/transmission/.config/transmission-daemon
vi settings.json
Navigate down to the "peer-port"
JSON entry, and if desired, replace the stock port with the desired port:
"peer-port": 51413,
Here, the author is changing it to 12345
:
"peer-port": 12345,
Subsequently, navigate to the "rpc-password"
JSON entry and change the password:
"rpc-password": "{9cfaaade11d56c8e82bfc23b696fa373fb20c10e4U2NXY3.",
Enter your plain text password here. If security is a worry, note that Transmission will encrypt the password upon the next restart.
If you want to allow access from other IP addresses, navigate to the "rpc-whitelist"
entry:
"rpc-whitelist": "127.0.0.1,::1",
For instance, if you want to allow access to your desktop on IP address 192.168.1.100
, you can add it to the comma-separated value:
"rpc-whitelist": "127.0.0.1,::1,192.168.1.100",
If you do not want an IP whitelist, you can disable it by setting "rpc-whitelist-enable"
to false
:
"rpc-whitelist-enabled": false,
When finished configuring, start and enable Transmission:
systemctl enable --now transmission-daemon
Firewall and network configuration¶
Subsequently, you will need to allow the respective ports 12345
(for BitTorrent) and 9091
(for Transmission's control panel) in our firewall:
firewall-cmd --permanent --zone=public --add-port=12345/tcp
firewall-cmd --permanent --zone=public --add-port=9091/tcp
firewall-cmd --runtime-to-permanent
If you are not behind a NAT-PMP, uPNP-enabled router, or connected without NAT, you must forward the BitTorrent port (12345
in our example). Each router is different, but as an example on the author's MikroTik router:
/ip firewall nat add action=dst-nat chain=dstnat dst-port=12345 in-interface=ether1 protocol=tcp to-addresses=SERVER_IP to-ports=12345
Replace SERVER_IP
with the IP address of the server running Transmission.
Testing Transmission¶
Navigate to the IP address running our Transmission server. As an example, you can download the torrent of a Linux distribution such as Ubuntu:
Conclusion¶
BitTorrent was designed in the early 2000s when most people connected to the internet via a desktop PC. While running BitTorrent on a laptop or phone is impractical, running it on a headless server via Transmission is perfect. In this way, you can seed files 24/7, yet our downloads will always be available.
Author: Neel Chauhan
Contributors: Steven Spencer, Ganna Zhyrnova