在VPS上安裝BT軟體Transmission

 
作者: 窮苦人家的小孩 | 2009-12-04
 

VPS 還能怎玩?! 裝Proxy,裝VPN,這還不夠,我還用來掛種子夠狠吧  反正頻寬閒也是閒者,不過安裝前最好事先問問主機商是否允許,合法的文件大多都是OK的。偶用YUM裝了幾個軟體總覺都怪怪的,畢竟不是該軟體最新的版本,再加上CentOS是一套強調安全的系統,當然對P2P這玩意不會太支援,我裝過了純網頁介面的Torrentflux,很多人推薦的rTorrent,但是最後還是選擇了Transmission 

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位元

rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-5
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ihv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

x84_64 / 64位元

rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-5
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ihv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

然後開始利用YUM做簡便安裝,指令就下面這串啦 

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以及必備套件然後開始安裝

cd /usr/src
wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
wget http://download.transmissionbt.com/files/transmission-2.41.tar.bz2

這邊開始要按照順序安裝唷!

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": , // 指定網頁管理模組的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

 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
#
# chkconfig: - 16 84
# description: Start up transmission-daemon
#
# processname: transmission-daemon
# config: /etc/sysconfig/transmission
 
# source function library
. /etc/rc.d/init.d/functions
 
# Get network config
. /etc/sysconfig/network
 
[ "${NETWORKING}" = "no" ] && exit 0
 
# Defaults
TRANSMISSION_HOME=/usr/bin/transmission-daemon
 
DAEMON_USER="transmission"
DAEMON_ARGS="-g /usr/local/transmission"
 
# Daemon
NAME=transmission-daemon
 
DAEMON=$(which $NAME)
DAEMON_PIDFILE=/var/run/$NAME.pid
DAEMON_LOCKFILE=/var/lock/subsys/$NAME
DAEMON_SCRIPTNAME=/etc/init.d/$NAME
DAEMON_LOGFILE=/var/log/$NAME.log
 
[ -x "$DAEMON" ] || exit 0
 
start() {
    echo -n $"Starting ${NAME}: "
 
    if [ -n "$TRANSMISSION_HOME" ]; then
        export TRANSMISSION_HOME
    fi
 
    su - $DAEMON_USER -c "$DAEMON $DAEMON_ARGS"
 
    sleep 2
 
    status $NAME &> /dev/null && echo_success || echo_failure
    RETVAL=$?
 
    if [ $RETVAL -eq 0 ]; then
        touch $DAEMON_LOCKFILE
        pidof -o %PPID -x $NAME > $DAEMON_PIDFILE
    fi
 
    echo
}
 
stop() {
    echo -n $"Shutting down ${NAME}: "
 
    killproc $NAME
    RETVAL=$?
 
    [ $RETVAL -eq 0 ] && /bin/rm -f $DAEMON_LOCKFILE $DAEMON_PIDFILE
 
    echo
}
 
case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    status)
        status $NAME
    ;;
 
    *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|status}" >&2
        exit 3
    ;;
esac

然後給權限,啟動之後打開瀏覽器輸入http://IP或域名:5566/就能遠控Transmission了。 

chmod +x /etc/init.d/transmission
chkconfig --level 345 transmission on
chown -R transmission:transmission /usr/local/transmission/
service transmission start

測試完畢,打包收工啦! 

cd /usr/src
rm -rf libiconv-*
rm -rf intltool-*
rm -rf transmission-*

--------------

下載Transmission啟動腳本範本檔
搭配FlexGet來實現讀取RSS自動下載功能

Transmission除了網頁介面之外還有非常好用的遠控軟體,我現在就是在用transmission-remote-dotnet(需要加裝 Microsoft .NET Framework 2.0)來搭配使用,transmission-remote-dotnet這套雖然只有支援Win系列的OS,但是有支援UTF-8,就算是簡體中文的檔名也能正確的顯示,而且掛10幾個種子也只吃20多MB記憶體。 

另外transmisson-remote-gui這套提供了Mac OS、Windows、Linux-i386 binary、Source code,不過這套沒有中文介面,不支援UTF-8,我使用時中文都會變亂碼。 

其他的Transmission使用教學

圖解 Transmission 入門
Transmission安裝方法
推薦好用的多平台BT工具

最新文章

  1. Storm构建分布式实时处理应用初探
  2. 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
  3. 阶段一:AsyncTask的三个属性值和四个步骤
  4. HTML5学习笔记三 HTML元素、属性、标题、段落简介
  5. POJ 1511 Invitation Cards (spfa的邻接表)
  6. ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明
  7. poj1961 Period
  8. FileUtils类应该有哪些内容
  9. Windows查看进程taskList,终止进程tskill
  10. Java虚拟机之Java内存区域
  11. Spring中获取request的几种方法,及其线程安全性分析
  12. Django中的templates(你的HTML页面放哪里)
  13. Redis高可用方案----Redis主从+Sentinel+Haproxy
  14. NABCD(团队项目)
  15. 新特技软件(Analyzer)添加新用户
  16. SQL模糊查询排序问题
  17. js模拟浏览器加载效果 pace.js 中文官方文档
  18. iOS UIViewController生命周期控制
  19. 如何访问cxGrid控件过滤后的数据集
  20. 20155331 2016-2017-2《Java程序设计》课程总结

热门文章

  1. VlanTrunk
  2. 初识eclipse及配置相关
  3. CentOS6.3下安装配置SVN(Subversion)
  4. python定制类(以Fib类为例)
  5. php-fpm 开启错误日志
  6. 在CentOS 7 / Gnome 3 双屏时设置主屏
  7. python使用mysql的三个模块:mysql.connector、sqlalchemy、MySQLdb
  8. 简单测试运行时类信息(RTTI),附详细例子
  9. MySQL Binlog的介绍
  10. 在python中编写socket服务端模块(二):使用poll或epoll