VPS 還能怎玩?! 裝Proxy,裝VPN,這還不夠,我還用來掛種子夠狠吧 ? 反正頻寬閒也是閒者,不過安裝前最好事先問問主機商是否允許,合法的文件大多都是OK的。偶用YUM裝了幾個軟體總覺都怪怪的,畢竟不是該軟體最新的版本,再加上CentOS [1]是一套強調安全的系統,當然對P2P這玩意不會太支援,我裝過了純網頁介面的Torrentflux [2],很多人推薦的rTorrent [3],但是最後還是選擇了Transmission [4] ?
Transmission [4]是一套Linux底下的BT Client,除了有繁體中文介面、支援UTF-8、介面簡潔又漂亮、佔用資源少之外也有很多熱心人士寫方便的外掛加強他的方便性,程式本身支援DHT、PEX,也能加密以及線上更新黑名單功能,可以在桌面運行也可以在console下跑,並且內建了網頁管理模組,完全不需要架設伺服器,裝好Transmission [4]就可以遠端控制了! ?
這邊簡單滴把安裝過程做個紀錄,環境是CentOS 5.5的系統,開始自己編譯吧! ?
安裝方法
*********更新歷史*********
2009/12/04 – 首次發表
2010/09/22 – 更新版本為1.93
2010/10/17 – 更新版本為2.10(已增加CentOS專用的啟動腳本)
2010/11/12 – 更新版本為2.11(好像跑的快一點)
2010/11/22 – 更新版本為2.12(主要應該是修正了偶而程式會突然耍冷當掉,其他更新了什麼看這吧→官網維基 [5])
2011/10/20 – 更新版本為2.41
2019/11/16 – 更新版本為2.94 for CentOS 7
Step.1 首先新增EPEL、SCL官方Repo
1 2 3 |
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安裝必備套件,指令就下面這串啦 ?
1 |
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 |
Step.2 下載Transmission以及必備套件然後開始安裝
1 2 3 4 |
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 |
這邊開始要按照順序安裝唷!
1 2 3 4 |
cd /opt tar zxf libiconv-*.tar.gz tar zxf libevent-*-stable.tar.gz xz -d transmission-*.tar.xz && tar xf transmission-*.tar |
1 2 3 4 5 |
cd /opt cd libiconv-* ./configure --prefix=/usr --sysconfdir=/etc make && make install /sbin/ldconfig |
1 2 3 4 5 6 |
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 |
1 2 3 4 |
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 |
PS. 主程式configure失敗時可切換成此指令再試一次./configure --prefix=/usr --enable-lightweight --enable-utp --enable-nls
Step.3 建立Transmission的相關目錄
1 2 3 4 5 6 |
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 |
Step.4 啟動Transmission產生Transmission的設定檔 ***此步驟要執行2次***
1 2 3 4 |
/usr/bin/transmission-daemon -g /usr/local/transmission killall transmission-daemon /usr/bin/transmission-daemon -g /usr/local/transmission killall transmission-daemon |
Step.5 編輯Transmission設定檔,這邊我有把遠控的port改成5566。
cp /usr/local/transmission/settings.json /usr/local/transmission/settings.json.bak
vi /usr/local/transmission/settings.json
比較重要的設定如下:
"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連接使用的port
"ratio-limit": 2.0000, // 上下傳比例達到多少停止做種
"ratio-limit-enabled": false, // 啟用可限制上下傳比例
"rpc-enabled":true, // 啟用網頁管理模組
"rpc-bind-address": "0.0.0.0", // 指定IP位置
"rpc-port":5566, // 指定網頁管理模組的port
"rpc-authentication-required": true, // 啟用使用者認證方式
"rpc-username": "username, // 登入的使用者名稱
"rpc-password": "password, // 登入的使用者密碼
"rpc-whitelist-enabled": false, // 啟用IP認證模式,這個模式是認IP的唷! 有需要再啟動
"rpc-whitelist": "127.0.0.1,其他可以連的IP, // 指定認可的IP位置,以,做為區隔
"speed-limit-down-enabled": false, // 啟用可限制下載速度
"speed-limit-down": 100, // 限制下載速度,以KB/Sec計算
"speed-limit-up-enabled": false, // 啟用可限制上傳速度
"speed-limit-up": 100, // 限制上傳速度,以KB/Sec計算
"upload-slots-per-torrent": 30 // 每個Torrent的上傳連接數量,過於跛腳的網路請設10
如果是用在動物機上開啟檔案數量和連接數就不可以調太高,免得負載太高而罷工,除了以上的設定值之外其他參數也可以參考官網的維基 [6]都有說明
Step.6 新增一個Transmission啟動腳本
1 2 3 4 5 6 |
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 |
Transmission啟動腳本內容如下
1 2 3 4 5 6 7 8 9 10 11 12 |
[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 |
Step.7 新增Transmission啟動腳本要用到的使用者
***密碼部分要輸入兩次***
useradd transmission && passwd transmission
# 設定權限
1 2 |
chown -R transmission:transmission /opt/transmission chown -R transmission:transmission /usr/local/transmission |
Step.8 編輯iptables規則,加入Transmission使用的port
1 2 3 4 5 |
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 |
然後啟動服務之後打開瀏覽器輸入http://IP或域名:5566/就能遠控Transmission了。 ?
1 2 |
systemctl enable transmission && systemctl start transmission && systemctl status transmission -l ps ax | grep transmission-daemon && netstat -tulpn | grep transmission* |
ref.