家裡有一台無螢幕的 Linux 伺服器,手上又有不少 BT 站的帳號,於是想把這台伺服器變成專門的下載機。Transmission 是很合適的選擇。本文說明 transmission 的安裝方式,以及如何用 transmission-cli 操作。

1. 安裝 Docker

Docker 不是必要條件,但可以大幅簡化設定步驟。

2. 用 Docker 執行 Transmission

啟動腳本如下:

#! /bin/bash
TRANSMISSION_BASE=your_path
docker run --name "transmission" -d \
--env USER="hello" \
--env PASS="world" \
--publish 8084:9091 \
--publish 51413:51413 \
--publish 51413:51413/udp \
--volume ${TRANSMISSION_BASE}/config:/config \
--volume ${TRANSMISSION_BASE}/watch:/watch \
--volume ${TRANSMISSION_BASE}/downloads:/downloads \
--restart always \
linuxserver/transmission

記得先在腳本裡設定 TRANSMISSION_BASE,這是儲存空間的路徑,例如可以設成 TRANSMISSION_BASE=/data

如果要從外部連線,需要打開防火牆。以 firewall-cmd 為例:

sudo firewall-cmd --add-port 8084/tcp --zone=public --permanent

之後就能透過 http://your_ip:8084 連上伺服器,帳號密碼就是啟動腳本裡 USERPASS 的值。

3. 用 transmission-cli 存取

不一定隨時都有瀏覽器可用,有時候用終端機反而更方便,這時候就輪到 transmission-cli 上場:

sudo dnf install transmission-cli

實際操作時會用到 transmission-remote 指令。

# 列出 transmission 目前的任務
transmission-remote 8084 -n hello:world -l
# 新增一個 torrent 檔案
transmission-remote 8084 -n hello:world -a path-to-torrent-file

4. 小結

本文說明如何用 Docker 安裝 BT 客戶端 Transmission,把 Linux 伺服器變成下載機,並用 transmission-cli 在終端機裡操作下載任務。