コンテンツにスキップ

Transmission BitTorrent Seedbox

Temporary Hold

transmission-daemon is currently missing from the EPEL. It will probably be built. The Docs Team will continue to test availability in the EPEL as time allows. For now, your only option is to build the transmission package from source, and the instructions for doing that are currently missing here.

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-daemon

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 or 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:

Our Transmission downloading 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