🚀 【CentOS 教學】VPS 變身 24 小時 BT 下載神器:qBittorrent 手把手編譯安裝全攻略
🔥 一句話總結: 以前大家都愛用 Transmission 來抓檔,但隨著它爆出安全漏洞,我們需要更強大的替代品!這篇文章將帶你從零開始,在 CentOS 上把風靡全球的 qBittorrent 架設起來,讓你的伺服器化身為效能破表的雲端下載機!📥
以前我曾經向大家介紹過功能強大的 BT 軟體 Transmission,甚至還教過怎麼搭配 FlexGet 變身成全自動追劇下載機 🤖🤓🤖。
可是瑞凡,科技的進步是不等人的啊!🤓 ⚠️ 自從 Transmission 2.92 版本爆出重大漏洞後,官方的更新速度就變得非常緩慢。身為熱愛榨乾 VPS(虛擬專屬主機)效能的玩家,怎麼能容忍這種事?所以我決定換一套全新的武器來玩耍!🗡
💡 白話文教室:為什麼要用 VPS 掛 BT 呢?
你可以把租來的 VPS 想像成一間 💙 24 小時不斷水不斷電的雲端小套房。
如果你只拿來放一個沒什麼人看的網頁,那真的太浪費月租費了。把 BT 軟體裝上去,它就成了一個「專屬數位管家」,無論你在吃飯還是睡覺,它都在雲端默默幫你把大檔案搬回家,完全不佔用你自己電腦的網路頻寬跟硬碟空間!🛜
尋尋覓覓後,我看上了採用 libtorrent-rasterbar 作為底層核心引擎的 qBittorrent。它同樣內建了超好用的網頁管理介面,而且各版本的支援性非常高。經過實測,在 CentOS 📊 6.10 (Final) 與 📊 7.6.1810 上都能順利成功運行,這邊就把完整的編譯與安裝過程紀錄下來,跟著做保證不踩雷!💣
🛠️ 準備動手!手把手編譯安裝教學
為什麼我們不直接用指令安裝,而是要大費周章地「編譯」呢?
✅ 白話文神級比喻:直接從 CentOS 內建軟體庫下載,就像是去大賣場買「組裝好的舊款廉價衣櫃」,雖然快,但效能跟功能都很過時。而「編譯安裝」,就像是我們自己去特力屋買頂級木材(原始碼)跟工具箱,親手打造一個量身訂做、最新款的無敵系統櫃!🗄️
-
❶ 買齊工具箱:安裝依賴套件
第一步,我們要先幫 CentOS 準備好各種編譯用的工具與函式庫。
12yum groupinstall -y "Development Tools"yum install -y qt-devel boost-devel openssl-devel qt5-qtbase-devel qt5-linguist GeoIP-update -
❷ 打造 V8 引擎:手動編譯安裝 libtorrent-rasterbar
qBittorrent 只是漂亮的車殼,它真正強大的抓檔效能來自於底層的 🚨 libtorrent-rasterbar 引擎。我們先來組裝這顆引擎(此處使用 ⚙️ 1.1.12 版本)。🏎️
💡 隱藏細節: 最後兩行 ln -s 是在建立「捷徑」,確保 64 位元系統能正確找到我們剛裝好的引擎。12345678cd /usr/srcwget https://github.com/arvidn/libtorrent/releases/download/libtorrent_1_1_12/libtorrent-rasterbar-1.1.12.tar.gztar -zxf libtorrent-rasterbar-*.tar.gzcd libtorrent-rasterbar-*./configure --prefix=/usr CXXFLAGS=-std=c++11make && make installln -s /usr/lib/pkgconfig/libtorrent-rasterbar.pc /usr/lib64/pkgconfig/libtorrent-rasterbar.pcln -s /usr/lib/libtorrent-rasterbar.so.9 /usr/lib64/libtorrent-rasterbar.so.9 -
❸ 安裝漂亮車殼:手動編譯安裝 qBittorrent
引擎搞定了,接著就是安裝主程式(此處使用 ⚙️ 3.3.16 版本)。因為我們裝在沒有螢幕的伺服器上,所以記得加上 –disable-gui 參數,告訴它「不需要安裝桌面視窗,只要網頁後台就好」。👻
123456cd /usr/srcwget -O qBittorrent-release-3.3.16.tar.gz https://github.com/qbittorrent/qBittorrent/archive/release-3.3.16.tar.gztar -zxf qBittorrent-release-*.tar.gzcd qBittorrent-release-*./configure --prefix=/usr --disable-gui CPPFLAGS=-I/usr/include/qt5make && make install -
❹ 規定機器人的守則:建立設定檔
我們需要寫一張小紙條,告訴 qBittorrent 要把「網頁管理介面」打開。
12345mkdir -p ~/.config/qBittorrentcat > ~/.config/qBittorrent/qBittorrent.conf <<- EOF[Preferences]WebUI\Enabled=trueEOF -
❺ 招募專屬保全:新增服務使用者
基於資安考量,我們絕對不能用最高權限 (root) 來跑下載軟體。我們幫它建一個專屬員工帳號。🔒
🚨 注意:密碼部分要輸入兩次,請務必牢記!
12useradd qBittorrentpasswd qBittorrent -
❻ 設定自動打卡機:建立啟動腳本 (Systemd)
讓軟體在 VPS 重新開機時可以自動啟動。這裡我把網頁介面的 Port 改成了 ⚙️ 8998 (預設原本是 8080,容易跟別人衝突)。
12345678910cat > /etc/systemd/system/qbittorrent.service <<- EOF[Unit]Description=qBittorrent torrent server[Service]User=qBittorrentExecStart=/usr/bin/qbittorrent-nox --webui-port=8998Restart=on-abort[Install]WantedBy=multi-user.targetEOF
🛡️ 打通任督二脈:防火牆與啟動服務
💡 白話文教室:什麼是防火牆打洞?
Linux 的防火牆 (iptables/firewalld) 就像是超嚴格的大樓保全。
即使你的數位管家 (qBittorrent) 已經在裡面準備好收發包裹了,如果保全不放行,你還是無法從外面連線進來。我們現在要跟保全說:「只要是走 🚪 8998 號門 的網頁控制,以及走 🚪 8999 號門 傳輸檔案的,通通放行!」🔑
-
❼ 設定防火牆白名單
將自訂的 8998 (WebUI) 與 8999 (P2P通訊埠) 加入放行清單。🛡️
12345678910service iptables stopiptables -A INPUT -p tcp --dport 8998 -j ACCEPTiptables -A INPUT -p udp --dport 8999 -j ACCEPTservice iptables savesystemctl restart iptables### 如果你的系統是用 firewalld,請改成下列指令:firewall-cmd --permanent --add-port=8998/tcpfirewall-cmd --permanent --add-port=8999/udpfirewall-cmd --reload -
❽ 正式啟動 qBittorrent 服務
賦予腳本執行權限,並讓它開機自動啟動。
1234chmod +x /etc/systemd/system/qbittorrent.servicesystemctl enable qbittorrentsystemctl daemon-reloadsystemctl start qbittorrent -
❾ 進入專屬網頁後台 🌐
打開瀏覽器,網址輸入 🔗 http://你的IP:8998 即可進入畫面!⚙️ 設定項目 📝 詳細內容 預設帳號 admin 預設密碼 adminadmin 修改繁體中文 點選上方選單:Tools >> Options >> Web UI >> User Interface Language 選擇正體中文 ⚠️ 絕對要做的第一件事 🚨 Authentication >> 立刻修改預設密碼! 否則全世界都能進你的伺服器亂搞!🐛 -
❿ 打完收工,清潔溜溜 🧹
回到 SSH 畫面,把剛剛編譯時下載的一大堆安裝包與垃圾檔清乾淨,釋放空間 🤓。
12cd /usr/srcrm -fr libtorrent-rasterbar-* qBittorrent-release-*
🩺 額外加碼:疑難排解與終極最佳化指南
架設好之後,如果你想要監控它的運作狀態,或是進一步解開 VPS 系統的枷鎖(讓水管變得更粗,吞吐量更大),可以使用以下的高階指令!
🔎 檢查 qBittorrent 啟動狀態
這三個指令就像是幫系統照 X 光,可以確認服務有沒有乖乖在背景執行:
|
1 2 3 |
systemctl status qbittorrent -l ps ax | grep qbittorrent-* netstat -atunp | grep qbittorrent-* |
🚀 (可選) 系統吞吐量極限最佳化 (Kernel Tuning)
🚨 老司機警告:
以下是針對 Linux 核心 sysctl 參數的魔改指令。它的原理是強制拓寬系統的網路連線數量與記憶體緩衝區(就像把一般公路升級成八線道高速公路)。如果你的 VPS 規格太差(例如記憶體不到 1GB),請斟酌使用,以免系統負載過重當機喔!😈
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
ulimit -n 51200 sysctl -w net.core.default_qdisc=fq sysctl -w net.core.rmem_default=65536 sysctl -w net.core.wmem_default=65536 sysctl -w net.core.rmem_max=67108864 sysctl -w net.core.wmem_max=67108864 sysctl -w net.core.netdev_max_backlog=4096 sysctl -w net.ipv4.tcp_congestion_control=htcp sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_rmem='4096 87380 33554432' sysctl -w net.ipv4.tcp_wmem='4096 65536 33554432' ### 個人常用的最佳化指令開始 sysctl -w net.core.optmem_max=25165824 sysctl -w net.core.somaxconn=4096 sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.route.flush=1 sysctl -w net.ipv4.tcp_fastopen=3 sysctl -w net.ipv4.tcp_fin_timeout=30 sysctl -w net.ipv4.tcp_keepalive_time=1200 sysctl -w net.ipv4.tcp_max_syn_backlog=4096 sysctl -w net.ipv4.tcp_max_tw_buckets=1440000 sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.ipv4.tcp_tw_recycle=0 sysctl -w net.ipv4.tcp_tw_reuse=1 sysctl -w fs.file-max=2097152 ### 個人常用的最佳化指令結束 sysctl --system |
執行完畢後,你的 CentOS 網路體質就徹底脫胎換骨啦 🏎️
逆向行駛 最愛的最殘酷、最美的最虛無