Transmission+WebUI安装及配置
最近把MLDonkey换成了Transmission,虽然没有了Emule的下载(用的很少)和多用户支持(用不到),但是 Transmission的WebUI比Mldonkey要好很多,加上BT支持PEX(Peer Exchange)和DHT(MLDonkey只有CVS版才支持),果断转向Transmission。
平台是CentOS 5.6,Transmission 2.33从源码编译。
首先把能用yum装的用yum装上:
yum -y install gcc gcc-c++ make openssl-devel pkgconfig curl-devel perl-XML-Parser perl-libwww-perl gettext
libevent和intltool因为版本太老需要从源码安装。
libevent需要2.0.10以上的版本:http://monkey.org/~provos/libevent/
intltool很久没更新了,最新的是0.40.6:http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/
编译安装这两个包之后执行下ldconfig,然后添加如下的环境变量,否则编译transmission的时候会提示找不到libevent:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然后编译Transmisson:
./configure --disable-mac --disable-cli --enable-utp && make && make install
添加用户:
useradd -m transmission
假设把设置放在/home/transmission/config,对应的init脚本:
#!/bin/bash
#
# Startup script for Transmission
#
# Laurent Culioli
# Derived from MLDonkey script
# Modified to work for Transmission on CentOS + compling version, by Tony Zhou
#
# chkconfig: 2345 90 15
# description: Transmission is a bittorrent client
# processname: transmission-daemon
# Source function library.
. /etc/init.d/functions
RETVAL=0
fullpath=/usr/local/bin/transmission-daemon
DIRECTORY=/home/transmission/config
pid=${DIRECTORY}/transmission-daemon.pid
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[${NETWORKING} = "no"] && exit 0
start() {
if [-e ${pid}]; then
echo -n "Transmission is already running..."
echo
exit 0
fi
echo -n "Starting Transmission: "
cd $DIRECTORY
daemon --check transmission --user transmission "$fullpath -g ${DIRECTORY} -x ${pid} > /dev/null 2>&1 &"
touch /var/lock/subsys/transmission
echo
}
stop() {
echo -n "Stopping Transmission:"
killproc ${fullpath}
rm -fr /var/lock/subsys/transmission
rm -fr ${pid}
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status transmission
;;
*)
echo -n "Usage: transmission {start|stop|restart|reload|status}
"
RETVAL=1
esac
exit $RETVAL
给启动脚本执行权限并放到开机启动里面:
chmod 755 /etc/init.d/transmission && chkconfig transmission on
然后启动/停止一次以产生settings.json。
打开/home/transmission/settings.json
,把blocklist-enabled
的值和rpc- authentication-required
的值改为true,rpc-username
和password
自己设,password
在 transmission启动后会自动转码,不会以明文方式储存。rpc-bind-address
设为127.0.0.1,这样通过web服务器作为反 向代理来访问,不直接把transmission的端口对外。downloads
改为相应的目录。
IP Blocklist我用的是Emule-Fans(http://ed2k.im/ipfilter.dat)的版本,但是不知为何transmission死活无法通过WebUI读取更新,只能手动下载之后解压放到transmission/blocklist里面。
我用的是nginx,反向代理的设置如下:
location /transmission {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:9091/transmission;
proxy_redirect default;
}
transmission可改为任意的值,但是必须与settings.json
中rpc-url
的值一致,否则无法访问。