用 Docker 讓 Transmission 自動補上公開 Tracker
有時候 BT 下載速度卡卡,不一定是種子本身的問題,也可能只是 Tracker 太少。最近剛好看到一個小工具,可以自動幫 Transmission 補上公開 Tracker,對於一些老種子或來源比較分散的任務來說,多少還是有幫助。
這篇就簡單記一下怎麼快速掛上去,順便補一下 Docker 環境下比較容易踩到的設定點。
工具來源
這次用到的是這個專案:
實際拿來自動補 Tracker 的容器是:
如果你本來就是用 Docker 版 Transmission,也可以一起搭配這個映像檔參考:
快速啟動
先直接看最短可以跑起來的指令:
|
|
這個容器會定期連到你的 Transmission RPC,然後把公開 Tracker 補進現有任務裡。
參數簡單看一下
--net=host:直接使用主機網路,適合 Transmission 跑在實體主機上的情境。HOSTPORT=localhost:9091:Transmission 的 RPC 位址,預設常見是9091。TR_AUTH=user:password:Transmission Web UI / RPC 的帳號密碼。--name=transmission-tracker-add:方便後續查 Log 或重新啟動。
Docker 環境要注意什麼
這邊最容易搞錯的是 HOSTPORT。
如果你的 Transmission 是安裝在真實系統上,或是容器本身使用 host network,那寫 localhost:9091 通常沒有問題。
但如果 Transmission 也是跑在 Docker 裡,而且兩個容器是掛在同一個 Docker Network,那這時候就不要再寫 localhost 了,應該改成 Transmission 容器名稱或服務名稱。
例如:
|
|
原因很單純,容器內的 localhost 指的是它自己,不是另一個 Transmission 容器。
如果你是用 Docker Compose,概念也一樣,HOSTPORT 改成 Compose service name 即可。
我自己的理解
我自己看下來,大多數人的 Transmission 還是會架在 NAS、Linux 主機,或是獨立容器裡,所以第一種 localhost:9091 的寫法常常會看到。
不過只要一搬到多容器環境,這個設定就很容易忘記改,結果容器明明啟動了,卻一直連不到 RPC。這種情況第一時間可以先去看容器 Log,通常很快就能確認是不是連線目標寫錯。
驗證有沒有成功
容器跑起來後,可以先檢查是否正常執行:
|
|
如果設定正確,通常會看到它成功連上 Transmission,並開始處理種子 Tracker 的相關訊息。
如果完全沒有反應,優先檢查下面幾項:
HOSTPORT是否真的能從容器內連到 Transmission。TR_AUTH帳密是否正確。- Transmission 是否有啟用 RPC。
- Docker Network 是否相通。
彩蛋
如果你平常不只用 Transmission,也順便整理幾個下載工具相關資料:
- aria2 設定教學 – 強大又輕巧的下載工具,支援 BT、斷點續傳 | Then Notes 隨筆
- Motrix/README-CN.md at master · agalwood/Motrix
- Aria2 Pro - 更好用的 Aria2 Docker 容器镜像 - P3TERX ZONE
- Gopeed - 免費現代化開源下載器 | 支援HTTP、BT種子、磁力和ed2k連結
小結
如果你只是想省事,這個做法其實滿適合直接掛上去就用。重點不是指令多複雜,而是要先想清楚 Transmission 到底跑在哪裡,這樣 HOSTPORT 才不會設錯。
尤其 Docker 環境裡,localhost 這種細節最常讓人白查半天。先把網路拓樸想清楚,再下指令,會省很多時間。