內容目錄
🚀 【CentOS 教學】VPS 還能怎麼玩?化身 24 小時 BT 下載神器:Transmission 完整編譯安裝攻略
🔥 一句話總結:既然都花錢租了伺服器,頻寬放著也是浪費!本篇手把手帶你在 CentOS 系統上安裝輕量、高效的 Transmission,將伺服器變成一台永遠不關機的專屬下載機。
很多玩家租用 VPS(虛擬專屬主機)後,除了架設個人部落格、裝個 Proxy 或 VPN 翻牆之外,往往會發現:🚨 伺服器的頻寬根本閒置太多啦! 為了把月租費的價值榨乾,我決定在上面掛 BT 種子進行下載!
💡 白話文教室:為什麼要用 VPS 掛 BT?
租用 VPS 就像是在網路上租了一間 💙 24 小時不斷水不斷電的雲端小套房。如果你只拿來放一個沒什麼人看的網頁,就像是每個月繳了水電費卻從來不洗澡一樣浪費。把 BT 軟體裝上去,它就成了一個不用佔用你家電腦資源、全天候幫你跑腿抓檔案的「專屬數位管家」。
不過在動手之前,⚠️ 溫馨提醒: 安裝前最好事先詢問你的主機商是否允許進行 P2P 下載,只要下載的是合法的開源文件通常都是沒問題的。
🤔 為什麼選擇 Transmission?
由於 CentOS 是一套極度強調「企業級安全」的作業系統,天生對 P2P 這類應用並不友善。我曾嘗試過純網頁介面的 Torrentflux [8],也試過許多老司機推薦的 rTorrent [9],但最後我還是選擇了 Transmission [10]!原因如下:
- 💯 輕量不卡頓:佔用系統資源極少,不會拖垮你 VPS 上的其他網站服務。
- 🎁 功能超齊全:程式本身支援 DHT、PEX,同時支援傳輸加密與線上更新黑名單功能。
- 🌐 完美網頁管理:內建超直覺的 Web UI 網頁管理模組,完全不需要另外架設伺服器,裝好就能直接透過瀏覽器遠端控制!
- 支援繁體中文介面與 UTF-8 編碼,介面簡潔漂亮,且社群有超多熱心人士開發好用的外掛程式。
📜 Transmission 歷代更新歷史 (CentOS 適用)
為了確保穩定度,以下是我一路走來測試過的版本演進(目前環境以 CentOS 7 為主):
| 📅 更新日期 | ⚙️ 版本與說明 |
|---|---|
| 2009/12/04 | 首次發表文章與安裝紀錄 |
| 2010/09/22 | 更新版本為 v1.93 |
| 2010/10/17 | 更新版本為 v2.10 (正式增加 CentOS 專用啟動腳本) |
| 2010/11/12 | 更新版本為 v2.11 (效能最佳化,跑得更快了) |
| 2010/11/22 | 更新版本為 v2.12 (修正程式偶發性耍冷當機問題) |
| 2011/10/20 | 更新版本為 v2.41 |
| ⭐ 2019/11/16 | 更新版本為 v2.94 for CentOS 7 (本次教學核心) |
🛠️ 手把手安裝教學 (CentOS 7 環境)
因為 CentOS 預設套件庫 (YUM) 提供的 Transmission 版本往往不是最新版,用起來「總覺得怪怪的」,所以我們這次要捲起袖子,親自下載原始碼來編譯!
💡 白話文教室:什麼是「編譯」?
利用 YUM 安裝那些落落長的相依套件,就像是你準備組裝一套 IKEA 高級衣櫃前,先跑去「特力屋」把螺絲起子、電鑽、安全帽(基礎環境)通通買齊。準備好工具後,我們才能把官方提供的木板原料(原始碼)親手組裝(編譯)成完美的衣櫃(執行檔)。
-
❶ 新增 EPEL、SCL 官方套件庫 (Repo)
首先要匯入擴充資源庫,讓系統找得到我們需要的工具。yum install -y epel-release centos-release-scl-rh centos-release-scl yum-utils sudo yum-config-manager --enable epel centos-sclo-rh centos-sclo-sclo sudo update -y
-
❷ 安裝必備的編譯套件
把組裝程式需要的編譯器與函式庫一次裝齊:yum install -y gcc gcc-c++ m4 make automake libtool gettext openssl-devel pkgconfig perl-libwww-perl perl-XML-Parser curl curl-devel libidn-devel zlib-devel which python-devel sqlite-devel xz
-
❸ 下載核心套件與 Transmission 原始碼
前往 /opt 目錄,下載 libevent、libiconv 以及 Transmission 2.94 的安裝包。cd /opt wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz wget https://github.com/transmission/transmission-releases/raw/master/transmission-2.94.tar.xz
-
❹ 依序解壓縮並編譯安裝
🚨 注意事項: 這裡必須「嚴格按照順序」安裝,否則後面的主程式會找不到相依函式庫而報錯喔!A. 解壓縮:
cd /opt tar zxf libiconv-*.tar.gz tar zxf libevent-*-stable.tar.gz xz -d transmission-*.tar.xz && tar xf transmission-*.tar
B. 安裝 libiconv:
cd /opt cd libiconv-* ./configure --prefix=/usr --sysconfdir=/etc make && make install /sbin/ldconfig
C. 安裝 libevent:
cd /opt cd libevent-*-stable ./configure --prefix=/usr --sysconfdir=/etc make && make install export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH /sbin/ldconfig
D. 安裝 Transmission 主程式:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH cd /opt/transmission-* ./configure --prefix=/usr CFLAGS=-liconv --enable-lightweight --enable-utp --enable-nls make -s && make -s install
💡 隱藏密技: 如果主程式 configure 失敗,可以切換成下方這個精簡指令再試一次:
./configure --prefix=/usr --enable-lightweight --enable-utp --enable-nls
-
❺ 建立專屬工作目錄
清理剛才編譯產生的垃圾檔,並建立 Transmission 專用的資料夾存放下載檔案與種子。cd /opt rm -rf intltool-* libiconv-* libevent-* transmission-* mkdir -p /usr/local/transmission mkdir -p /opt/transmission/incomplete mkdir -p /opt/transmission/complete mkdir -p /opt/transmission/torrent
⚙️ 核心設定:打造專屬管家規則
-
❻ 產生初始設定檔(🚨 必考重點)
必須啟動背景服務來自動產生 settings.json 檔案。🚦 這個步驟一定要執行兩次! 先啟動、殺掉程序,再啟動、再殺掉程序,確保檔案完整寫入。/usr/bin/transmission-daemon -g /usr/local/transmission killall transmission-daemon /usr/bin/transmission-daemon -g /usr/local/transmission killall transmission-daemon
-
❼ 編輯設定檔 (settings.json)
備份並修改配置:
cp /usr/local/transmission/settings.json /usr/local/transmission/settings.json.bak vi /usr/local/transmission/settings.json💡 白話文教室:解讀設定檔
修改 settings.json 就像是你在規定這位「數位管家」的行為守則:東西抓好要放在哪個房間 (download-dir)、遇到大任務最多能開幾個包裹通道 (peer-limit-global),以及你從遠端下達指令時,要對哪組暗號密碼 (rpc-password)。以下是幾個最核心必改的參數(將遠端控制的 Port 改為 5566):
"download-dir": "/opt/transmission/complete", // 下載完成儲存的位置 "incomplete-dir": "/opt/transmission/incomplete", // 尚未下載完成儲存的位置 "script-torrent-done-enabled": true, // 下載完成後呼叫script "script-torrent-done-filename": "/var/lib/scripts/posttorrent.sh", // 呼叫的script所在位置 "open-file-limit": 128, // 最大開啟檔案數量 "peer-limit-global": 480, // 最大連接數 "peer-limit-per-torrent": 60, // 單一任務連接數 "peer-port": 59999, // Transmission P2P 連接使用的port "ratio-limit": 2.0000, // 上下傳比例達到多少停止做種 "ratio-limit-enabled": false, // 啟用可限制上下傳比例 "rpc-enabled": true, // 啟用網頁管理模組 "rpc-bind-address": "0.0.0.0", // 指定IP位置 (0.0.0.0 代表皆可) "rpc-port": 5566, // 指定網頁管理模組的port "rpc-authentication-required": true, // 啟用使用者認證方式 "rpc-username": "您的帳號", // 登入的使用者名稱 "rpc-password": "您的密碼", // 登入的使用者密碼 "upload-slots-per-torrent": 30 // 每個Torrent的上傳連接數量
⚠️ 溫馨警告: 如果你的 VPS 效能比較弱(俗稱的動物機),「開啟檔案數量」和「連接數」千萬不能調太高,免得系統負載過重直接罷工!(過於跛腳的網路,上傳連接數建議設為 10)
🛡️ 系統整合與防火牆放行
-
❽ 建立 Systemd 啟動腳本
讓 Transmission 可以隨系統開機自動啟動,並指定 Log 紀錄檔位置。touch /var/log/transmission.log chmod 777 /var/log/transmission.log rm -f /etc/systemd/system/transmission.service wget -O /etc/systemd/system/transmission.service http://520.be/wp-upload/transmission.service.TXT chmod +x /etc/systemd/system/transmission.service systemctl daemon-reload
[Unit] Description=Transmission BT Daemon After=network.target [Service] User=transmission LimitNPROC=500000 LimitNOFILE=500000 ExecStart=/usr/bin/transmission-daemon -f --log-error -g /usr/local/transmission --logfile /var/log/transmission.log [Install] WantedBy=multi-user.target
-
❾ 新增專屬使用者並賦予權限
基於資安考量,我們不使用 Root,而是新建一個 transmission 帳號來跑服務。
🚨 執行後會要求輸入密碼兩次,請務必記好!useradd transmission && passwd transmission
設定資料夾擁有者權限:
chown -R transmission:transmission /opt/transmission chown -R transmission:transmission /usr/local/transmission
-
❿ 防火牆 (iptables) 開放連接埠
💡 白話文教室:防火牆打洞
Linux 的防火牆就像是大樓的保全系統。如果你不跟保全說一聲,即便你的網頁介面已經跑起來了,你在外面也是連不進去的。我們必須新增規則,讓 Port 5566 (控制介面) 和 Port 59999 (檔案傳輸通道) 能夠順利通行。service iptables stop iptables -A INPUT -p tcp --dport 5566 -j ACCEPT iptables -A INPUT -p tcp --dport 59999:61000 -j ACCEPT iptables-save | tee /etc/sysconfig/iptables systemctl restart iptables
最後,啟動服務並檢查運行狀態:
systemctl enable transmission && systemctl start transmission && systemctl status transmission -l ps ax | grep transmission-daemon && netstat -tulpn | grep transmission*
🎉 大功告成! 現在,只要打開瀏覽器,輸入 http://你的IP或域名:5566,並輸入剛剛在設定檔填寫的帳號密碼,就能馬上透過漂亮的介面遠端遙控你的 BT 下載機了! 🏎️
🖇️ 延伸閱讀與引用來源
- 搭配 FlexGet 來實現讀取 RSS 自動下載功能 [11]
- 在 VPS 上安裝 BT 軟體 qBittorrent [12]
- Transmission Remote GUI [13]
- 圖解 Transmission 入門 [14]
- Transmission 2.92 ~2.94 編譯 for Centos 7 – 消失的亞特蘭提斯 [15]
- 編譯安裝 transmission 報錯的解決辦法-嗟嗟嗟 [16]
