🚀 【CentOS 教學】VPS 還能怎麼玩?化身 24 小時 BT 下載神器:Transmission 完整編譯安裝攻略
🔥 一句話總結:既然都花錢租了伺服器,頻寬放著也是浪費!本篇手把手帶你在 CentOS 系統上安裝輕量、高效的 Transmission,將伺服器變成一台永遠不關機的專屬下載機。
很多玩家租用 VPS(虛擬專屬主機)後,除了架設個人部落格、裝個 Proxy 或 VPN 翻牆之外,往往會發現:🚨 伺服器的頻寬根本閒置太多啦! 為了把月租費的價值榨乾,我決定在上面掛 BT 種子進行下載!
💡 白話文教室:為什麼要用 VPS 掛 BT?
租用 VPS 就像是在網路上租了一間 💙 24 小時不斷水不斷電的雲端小套房。如果你只拿來放一個沒什麼人看的網頁,就像是每個月繳了水電費卻從來不洗澡一樣浪費。把 BT 軟體裝上去,它就成了一個不用佔用你家電腦資源、全天候幫你跑腿抓檔案的「專屬數位管家」。
不過在動手之前,⚠️ 溫馨提醒: 安裝前最好事先詢問你的主機商是否允許進行 P2P 下載,只要下載的是合法的開源文件通常都是沒問題的。
🤔 為什麼選擇 Transmission?
由於 CentOS 是一套極度強調「企業級安全」的作業系統,天生對 P2P 這類應用並不友善。我曾嘗試過純網頁介面的 Torrentflux,也試過許多老司機推薦的 rTorrent,但最後我還是選擇了 Transmission!原因如下:
- 💯 輕量不卡頓:佔用系統資源極少,不會拖垮你 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 下載機了! 🏎️
🖇️ 延伸閱讀與引用來源
列印本文
逆向行駛 最愛的最殘酷、最美的最虛無
[root@ns1 transmission-2.42]# make -s
make: *** No targets specified and no makefile found. Stop.
[root@ns1 transmission-2.42]# tar xjf transmission-*.tar.bz2
tar: transmission-*.tar.bz2: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
[root@ns1 transmission-2.42]# make -s
make: *** No targets specified and no makefile found. Stop.
[root@ns1 transmission-2.42]# make -s install
make: *** No rule to make target `install’. Stop.
[root@ns1 transmission-2.42]#
collect2: ld returned 1 exit status
make[1]: *** [blocklist-test] Error 1
make[1]: Leaving directory `/tmp/transmission-2.42/libtransmission’
make: *** [all-recursive] Error 1
[root@houtai transmission-2.42]#
在make以後出現這樣的錯誤,怎麼辦
大哥你訊息貼的超長的…幫你縮短 = =…
檢查一下你的libevent版本吧~ 最常見的問題了。
:kao 我又不像你是哀踢業的XD
有得用就好了 ?
呆呆,libevent那摸好用的東西當然要裝啊~ ? 下面這PART夾去配 ?
cd /usr/srcwget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.15-stable.tar.gz
tar zxf libevent-*-stable.tar.gz
cd libevent-*-stable
./configure
make && make install
cd ..
/sbin/ldconfig
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
rm -rf libevent-*
噗~~ 我要哭了 :kao
checking for LIBEVENT… configure: error: Package requirements (libevent >= 2.0.10) were not met:
No package ‘libevent’ found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBEVENT_CFLAGS
and LIBEVENT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
:kao 也是久違的更新 ?
最近火力全開喔XD ? ?
裝個libevent吧 :er
这个怎么弄啊 到这里卡住了 请教
transmisson-remote-gui 不能用 UTF-8 ??
http://code.google.com/p/transmisson-remote-gui/source/detail?r=139
上週五買了那個1個月free的promotion,最後也是要£1.00GBP,約48NTD ? ? .
但是最不爽的是等等等…等不到服務開通,ticket也不回
聽說是Service delivery 要 24-72 business hours,我哩咧.
上次買也沒那麼久,難道便宜沒好貨? :kao :kao
算了,看在純粹刷上傳量的份上,忍耐一點
啟動腳本範本抓回去試試。
第二個訊息是告訴你沒有該www使用者,如果你跟我一樣想用www控制的話就自己建囉~ 或是替換成
chown -R transmission:transmission /web/www/transmission/
Linux的檔案權限限制比較安全,這點是比較麻煩一點。
[root@vps ~]# chkconfig –level 345 transmission on
service transmission does not support chkconfig
what caused that?
and
[root@vps ~]# chown -R www:www /web/www/transmission/
chown: `www:www’: invalid user
thx!
我的意思是說Transmission有重新configure在make嗎
iconv是重新编译的,按照你写的。
有重新configure再鞭譯嗎?
echo "/usr/local/lib" >> /etc/ld.so.conf/sbin/ldconfig
這個也很重要喔! ?
安装过libiconv也是出现此错误不知道什么原因了。。。
# find -name libiconv
./usr/local/share/doc/libiconv
./usr/local/libiconv
./usr/local/libiconv/share/doc/libiconv
我有这个,是不是说明已经安装过了啊
你少裝iconv,安裝一下再重新鞭就可以了。 ?
wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.13.1.tar.gztar zxf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
rm -fr libiconv-*
echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig
老大,makeinstall transmission的时候出现以下错误这怎么解决啊
./libtransmission.a(utils.o): In function
to_utf8':libiconv_open’/tmp/transmission-2.12/libtransmission/utils.c:1263: undefined reference to
/tmp/transmission-2.12/libtransmission/utils.c:1265: undefined reference to
libiconv'libiconv_close’/tmp/transmission-2.12/libtransmission/utils.c:1267: undefined reference to
collect2: ld returned 1 exit status
make[1]: *** [blocklist-test] Error 1
make: *** [install-recursive] Error 1
你被詛咒了 0.0 給了777怎可能會不能讀寫 :er :er :er
= = 可是我用777就是寫不進去啊
PS.憂ちゃん的照片 = =
我只用777就好了 0.0 因為我想用網頁直接去管理就好,反正nginx預設列表是列不出來的,群組給transmission當老大或是用777都是可以的啦! 青菜蘿蔔各有喜好 ?
你少寫一個東西 會造成無法下載
chown -R transmission:transmission /web/www/transmission/
少了這 因為權限的不同
變成指定存在地卻沒有權限可以存
:-# 不會動的種子,只能告訴你檢查看看檔案/目錄權限設定看看。


速度方面的問題我也沒辦法幫你什麼,不知道你的慢是有多慢呢? VPS是哪家的你也沒說,我也不太知道你的問題在哪。這邊簡單提供你一個數據昨天我抓2個CHD的種子,2天的上傳量有78GB,昨天均速8.47 Mbit/s、今天為止6.69 Mbit/s,自己看圖吧。
謝謝版大~
已完成安裝~~不過我用來跑pt上傳很慢耶!!!
還有些torrent都靜如止水~~(用utorrent很多上傳和seed)
這是甚麼原因?
錯誤訊息已經告訴你安裝transmission沒成功 ? 而且看起來你啟動腳本沒複製完整,下載腳本回去放在機器上吧! 並且提醒你這篇只適用CentOS的系統喔~!
版大救命阿!!
輸入完# service transmission start
就出現!!!
# service transmission start
/etc/init.d/transmission: line 1: kconfig:: command not found
/etc/init.d/transmission: line 2: 4.#: command not found
/etc/init.d/transmission: line 3: 5.#: command not found
/etc/init.d/transmission: line 4: 6.#: command not found
/etc/init.d/transmission: line 5: 7.#: command not found
/etc/init.d/transmission: line 6: 8.: command not found
/etc/init.d/transmission: line 7: 9.#: command not found
/etc/init.d/transmission: line 8: 10..: command not found
/etc/init.d/transmission: line 9: 11.: command not found
/etc/init.d/transmission: line 10: 12.#: command not found
/etc/init.d/transmission: line 11: 13..: command not found
/etc/init.d/transmission: line 12: 14.: command not found
/etc/init.d/transmission: line 13: 15.[: command not found
/etc/init.d/transmission: line 14: 16.: command not found
/etc/init.d/transmission: line 15: 17.#: command not found
/etc/init.d/transmission: line 16: 18.TRANSMISSION_HOME=/usr/bin/transmission-daemon: No such file or directory
/etc/init.d/transmission: line 17: 19.: command not found
/etc/init.d/transmission: line 18: 20.DAEMON_USER=transmission: command not found
/etc/init.d/transmission: line 19: 21.DAEMON_ARGS=-g /usr/local/transmission: No such file or directory
/etc/init.d/transmission: line 20: 22.: command not found
/etc/init.d/transmission: line 21: 23.#: command not found
/etc/init.d/transmission: line 22: 24.NAME=transmission-daemon: command not found
/etc/init.d/transmission: line 23: 25.: command not found
Usage: which [options] [--] programname [...]
Options: --version, -[vV] Print version and exit successfully.
--help, Print this help and exit successfully.
--skip-dot Skip directories in PATH that start with a dot.
--skip-tilde Skip directories in PATH that start with a tilde.
--show-dot Don't expand a dot to current directory in output.
--show-tilde Output a tilde for HOME directory for non-root.
--tty-only Stop processing options on the right if not on tty.
--all, -a Print all matches in PATH, not just the first
--read-alias, -i Read list of aliases from stdin.
--skip-alias Ignore option --read-alias; don't read stdin.
--read-functions Read shell functions from stdin.
--skip-functions Ignore option --read-functions; don't read stdin.
/etc/init.d/transmission: line 24: 26.DAEMON=: command not found
/etc/init.d/transmission: line 25: 27.DAEMON_PIDFILE=/var/run/.pid: No such file or directory
/etc/init.d/transmission: line 26: 28.DAEMON_LOCKFILE=/var/lock/subsys/: No such file or directory
/etc/init.d/transmission: line 27: 29.DAEMON_SCRIPTNAME=/etc/init.d/: No such file or directory
/etc/init.d/transmission: line 28: 30.DAEMON_LOGFILE=/var/log/.log: No such file or directory
/etc/init.d/transmission: line 29: 31.: command not found
/etc/init.d/transmission: line 30: 32.[: command not found
一連串
音樂方面就無損的吧! 這對我很重要 ⭐ 影片部分大多都是720P的,電影/熱門影集大多都有1080P,但卡通不多 @@ 偶而拉拉日劇看高畫質也滿開心的 ?
那些PT上面有什麼好康資源嗎???
怎麼大家都在拼PT?
這這這…叫PT站升級 =.= 不過我小盒子在CHDbits跟HDC都OK ?
有些PT只接受到2.04
鞭太快也不行
用VPN或是SSH翻牆囉! 這還要教嗎 ? btw 2.10我也裝起來了,不過沒啥特別感覺 :er
2.10 也鞭進去了
那看樣子就是按你的做
先裝1.93再往上鞭到2.x版
PS 我現在在CN 網路管制真是太無言了 冏
恩 你知道 就是會哼哼哈哈的那個XD
PS 有一堆下載的IP都是小日本…哈
剛剛無聊google到有一篇裝2.04的,方法簡單好多,不過我還沒試過,似乎好像是裝在BurstNET的VPS上,50GB空間/1TB流量應該算還滿划算的! 不過玩PT的話沒兩下就暴了 ?
Tutorial: Start Your Own Headless Torrent Seedbox Server For Less Than $9 Per Month!
除了PT,說實在話的我不太喜歡搞BT,種子不完種,檔案東缺西缺的很討厭 =.= 總之健康度破萬的還沒碰過 ? 可以MSN傳過來看看是啥貨色嗎? 😉
瞬間吞吐量是網路的極限 +
那種健康度破W的XD
很容易死掉
PS 我剛剛鞭2.10b1完全沒問題 直接鞭了過去@@
你的吞吐量是多大啊? 我的還沒碰過什麼問題說 @@

1.93在 吞吐量大時很容易噴掉….
來想辦法弄成2.04好了 = =
懶的鳥他 = = 順順跑就好了 ?
我跟你說
那是因為 llibvent
我們之前用的1.93他有把那東西當成3rd party收進去
可是2.0開始就沒收了
所以就會出問題
今天無聊鞭了一下還真奇怪,最新的transmission-2.04.tar.bz2打死都鞭不起來,看Changes也不太了解更新了啥,乾脆跟你一樣用1.93反而順順的鞭到好~ 真奇怪 ?
不過就算是那個鞭進去 還是會有error 我抓不到問題 冏
用回1.93
補充一下 2.01開始
libevent 也要自己編進去
他不接受CENTOS內建的東西
至少要1.4.9板以上
就先停止Transmission,然後抓新的下來在鞭1次囉 ?
最近TRANSMISSION昇到1.91了
不過我那時是用TRABALL方式自己COMPILE的
要升級是要怎麼升@@
問一下 如果要讓TRANSMISSION 開機執行要下啥指令呢
官網維基這邊有一篇init.d Script是給Debian、Ubuntu用的,runscript是給Gentoo,Google了一下還有Fedora社群的init script for transmission bitTorrent client,你也是帽子系列的Linux話這篇文章可以參考看看Init script for transmission-daemon,我是沒用 @@ 反正很少重開機 ?