From fcceeda41838b3767abfb62249c7cac46a54fd63 Mon Sep 17 00:00:00 2001 From: Neel Chauhan Date: Wed, 5 Jun 2024 14:15:56 -0400 Subject: [PATCH] New Guide: Transmission BitTorrent Seedbox --- .../file_sharing/transmission_daemon.md | 123 ++++++++++++++++++ docs/guides/images/transmission.png | Bin 0 -> 29505 bytes 2 files changed, 123 insertions(+) create mode 100644 docs/guides/file_sharing/transmission_daemon.md create mode 100644 docs/guides/images/transmission.png diff --git a/docs/guides/file_sharing/transmission_daemon.md b/docs/guides/file_sharing/transmission_daemon.md new file mode 100644 index 0000000000..6a5fd2e574 --- /dev/null +++ b/docs/guides/file_sharing/transmission_daemon.md @@ -0,0 +1,123 @@ +--- +title: Transmission BitTorrent Seedbox +author: Neel Chauhan +contributors: +tested_with: 9.4 +tags: + - file transfer +--- +# Transmission BitTorrent Seedbox + +## Introduction + +BitTorrent needs no introduction at this point but if you're unaware, BitTorrent is a peer-to-peer file sharing protocol. BitTorrent relies on multiple peers sededing (uploading) the requested file to you but you also seed back to future downloaders. + +Transmission is an popular open source BitTorrent client which has multiple frontends and backends. We will be installing 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 even a desktop. This way we can seed files 24/7 while not consuming battery life on a mobile device if used for downloading. + +## Installation + +To install Transmission we first need to install EPEL: + +```bash +dnf install -y epel-release +``` + +Then we will install Transmission: + +```bash +dnf install -y transmission +``` + +## First Setup + +Unlike most Linux daemons Transmision sets up the configuration upon first startup. Let's start up and stop Transmission: + +```bash +systemctl start transmission-daemon +systemctl stop transmission-daemon +``` + +After these steps, we will have a configuration file. You will need to stop Transmission as you cannot edit the configuration file while Transmission is running. + +## Configuration + +Now, we will configure Transmission: + +```bash +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: + +```bash + "peer-port": 51413, +``` + +I'll change it to `12345`: + +```bash + "peer-port": 12345, +``` + +Subsequently, navigate to the `"rpc-password"` JSON entry and change the password: + +```bash + "rpc-password": "{9cfaaade11d56c8e82bfc23b696fa373fb20c10e4U2NXY3.", +``` + +Enter your plaintext password here. If you are worried about security, fortunately Transmission will encrypt the password upon the next restart + +If you want to allow access from other IP addresses, navigagte to the `"rpc-whitelist"` entry: + +```bash + "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` we can add it to the comma separated value: + +```bash + "rpc-whitelist": "127.0.0.1,::1,192.168.1.100", +``` + +Alternatively if you don't desire an IP whitelist we can disable it by setting `"rpc-whitelist-enable"` to `false`: + +```bash + "rpc-whitelist-enabled": false, +``` + +When you're done configuring we will start and enable Transmission: + +```bash +systemctl enable --now transmission-daemon +``` + +## Firewall and Network Configuration + +Subsequently, we will need to allow the respective ports `12345` (for BitTorrent) and `9091` (for Transmission's control panel) in our firewall: + +```bash +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 we will need to forward the BitTorrent port (`12345` in our example). Each router is different but as an example on the author's MikroTik router: + +```bash +/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 we can download the torrent of a Linux distribution such as Ubuntu: + +![Our Transmission downloading Ubuntu](../images/transmission.png) + +## Conclusion + +BitTorrent was designed in the early 2000s when most people connected to the internet via a desktop PC. And while it's impractical to run BitTorrent on a laptop or phone it's perfect to run it on a headless server via Transmission. This way we can seed files 24/7 and yet our downloads will always be available to us. diff --git a/docs/guides/images/transmission.png b/docs/guides/images/transmission.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1a2fdf4e808101ea23b1a97c582a9adb85792e GIT binary patch literal 29505 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

*Pc_4k~K_|MY`*3=-AVHm5|&srPzcc=zH3 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