Tuesday, February 14, 2012


VPS 還能怎玩?! 裝Proxy,裝VPN,這還不夠,我還用來掛種子夠狠吧 XD 反正頻寬閒也是閒者,不過安裝前最好事先問問主機商是否允許,合法的文件大多都是OK的。偶用YUM裝了幾個軟體總覺都怪怪的,畢竟不是該軟體最新的版本,再加上CentOS是一套強調安全的系統,當然對P2P這玩意不會太支援,我裝過了純網頁介面的Torrentflux,很多人推薦的rTorrent,但是最後還是選擇了Transmission (Y)
Transmission是一套Linux底下的BT Client,除了有繁體中文介面、支援UTF-8、介面簡潔又漂亮、佔用資源少之外也有很多熱心人士寫方便的外掛加強他的方便性,程式本身支援DHT、PEX,也能加密以及線上更新黑名單功能,可以在桌面運行也可以在console下跑,並且內建了網頁管理模組,完全不需要架設伺服器,裝好Transmission就可以遠端控制了! ;)
這邊簡單滴把安裝過程做個紀錄,環境是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(主要應該是修正了偶而程式會突然耍冷當掉,其他更新了什麼看這吧→官網維基)
2011/10/20 - 更新版本為2.41
Step.1 首先安裝基本套件
如果沒有安裝rpmforge跟EPEL這2個官方認可的第三方套件庫的話就要手動安裝perl-XML-Parser唷!所以要記得先安裝。
i386 / 32位元
x84_64 / 64位元
然後開始利用YUM做簡便安裝,指令就下面這串啦 :P
yum -y install gcc gcc-c++ m4 make automake libtool gettext openssl-devel pkgconfig perl-libwww-perl perl-XML-Parser curl curl-devel libevent-devel libevent libidn-devel zlib-devel which
Step.2 下載Transmission以及必備套件然後開始安裝
這邊開始要按照順序安裝唷!
tar zxf libiconv-*.tar.gz
cd libiconv-*
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
tar zxf intltool-*.tar.gz
cd intltool-*
./configure --prefix=/usr
make -s
make -s install
cd ..
tar xjf transmission-*.tar.bz2
cd transmission-*
/sbin/ldconfig
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr --enable-lightweight
make -s
make -s install
cd ..
Step.3 再來新增Transmission啟動腳本要用到的使用者,***密碼部分要輸入兩次!***
useradd transmission
passwd transmission
Step.4 建立 Transmission 的設定檔目錄以及下載目錄
mkdir -p /usr/local/transmission/
mkdir -p /web/www/transmission/incomplete/
chown -R www:www /web/www/transmission/
chmod 777 /web/www/transmission/
Step.5 啟動Transmission產生Transmission的設定檔 ***此步驟要執行2次***
/usr/bin/transmission-daemon -g /usr/local/transmission
killall transmission-daemon
Step.6 編輯Transmission設定檔,這邊我有把遠控的port改成5566。
cp /usr/local/transmission/settings.json /usr/local/transmission/settings.json.bak
vi /usr/local/transmission/settings.json
比較重要的設定如下:
"download-dir": "/web/www/transmission",, // 下載完成儲存的位置
"incomplete-dir": "/web/www/transmission/incomplete",, // 尚未下載完成儲存的位置
"blocklist-enabled": true, // 啟用黑名單
"dht-enabled": true, // 啟用DHT支援
"encryption": 1, // 傳輸加密
"open-file-limit": 64, // 最大開啟檔案數量
"peer-limit-global": 240, // 最大連接數
"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": "lulala", // 登入的使用者名稱
"rpc-password": "balala", // 登入的使用者密碼
"rpc-whitelist-enabled": false, // 啟用IP認證模式,這個模式是認IP的唷! 有安全需要再啟動
"rpc-whitelist": "127.0.0.1,其他可以連的IP", // 指定認可的IP位置,以,區隔
"speed-limit-down": 100, // 限制下載速度,以KB/Sec計算
"speed-limit-down-enabled": false, // 啟用限制下載速度
"speed-limit-up": 100, // 限制上傳速度,以KB/Sec計算
"speed-limit-up-enabled": false, // 啟用限制上傳速度
"upload-slots-per-torrent": 30 // 每個Torrent的上傳連接數量,台灣跛腳的網路請設10
如果是用在動物機上開啟檔案數量和連接數就不可以調太高,免得負載太高而罷工,除了以上的設定值之外其他參數也可以參考官網的維基都有說明
Step.7 最後在編輯一下iptables規則,加入Transmission使用的port
/etc/init.d/iptables stop
iptables -A INPUT -p tcp --dport 5566 -j ACCEPT
iptables -A INPUT -p tcp --dport 59999:61000 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
Step.8 全部搞定了,然後新增一個Transmission啟動腳本,內容如下
vi /etc/init.d/transmission
CODE:
  1. #!/bin/bash
  2. #
  3. # chkconfig: - 16 84
  4. # description: Start up transmission-daemon
  5. #
  6. # processname: transmission-daemon
  7. # config: /etc/sysconfig/transmission
  8.  
  9. # source function library
  10. . /etc/rc.d/init.d/functions
  11.  
  12. # Get network config
  13. . /etc/sysconfig/network
  14.  
  15. [ "${NETWORKING}" = "no" ] && exit 0
  16.  
  17. # Defaults
  18. TRANSMISSION_HOME=/usr/bin/transmission-daemon
  19.  
  20. DAEMON_USER="transmission"
  21. DAEMON_ARGS="-g /usr/local/transmission"
  22.  
  23. # Daemon
  24. NAME=transmission-daemon
  25.  
  26. DAEMON=$(which $NAME)
  27. DAEMON_PIDFILE=/var/run/$NAME.pid
  28. DAEMON_LOCKFILE=/var/lock/subsys/$NAME
  29. DAEMON_SCRIPTNAME=/etc/init.d/$NAME
  30. DAEMON_LOGFILE=/var/log/$NAME.log
  31.  
  32. [ -x "$DAEMON" ] || exit 0
  33.  
  34. start() {
  35.     echo -n $"Starting ${NAME}: "
  36.  
  37.     if [ -n "$TRANSMISSION_HOME" ]; then
  38.         export TRANSMISSION_HOME
  39.     fi
  40.  
  41.     su - $DAEMON_USER -c "$DAEMON $DAEMON_ARGS"
  42.  
  43.     sleep 2
  44.  
  45.     status $NAME &> /dev/null && echo_success || echo_failure
  46.     RETVAL=$?
  47.  
  48.     if [ $RETVAL -eq 0 ]; then
  49.         touch $DAEMON_LOCKFILE
  50.         pidof -o %PPID -x $NAME> $DAEMON_PIDFILE
  51.     fi
  52.  
  53.     echo
  54. }
  55.  
  56. stop() {
  57.     echo -n $"Shutting down ${NAME}: "
  58.  
  59.     killproc $NAME
  60.     RETVAL=$?
  61.  
  62.     [ $RETVAL -eq 0 ] && /bin/rm -f $DAEMON_LOCKFILE $DAEMON_PIDFILE
  63.  
  64.     echo
  65. }
  66.  
  67. case "$1" in
  68.     start)
  69.         start
  70.     ;;
  71.     stop)
  72.         stop
  73.     ;;
  74.     restart)
  75.         stop
  76.         start
  77.     ;;
  78.     status)
  79.         status $NAME
  80.     ;;
  81.  
  82.     *)
  83.         echo "Usage: $SCRIPTNAME {start|stop|restart|status}">&2
  84.         exit 3
  85.     ;;
  86. esac
然後給權限,啟動之後打開瀏覽器輸入http://IP或域名:5566/就能遠控Transmission了。 (H)
chmod +x /etc/init.d/transmission
chkconfig --level 345 transmission on
chown -R transmission:transmission /usr/local/transmission/
service transmission start
測試完畢,打包收工啦! (F)
cd /usr/src
rm -rf libiconv-*
rm -rf intltool-*
rm -rf transmission-*

No comments: