CentOS. Ретрекер с использованием XBTT
Ретрекер (retracker, также встречается термин псевдотрекер) — bittorrent трекер, как правило, анонимный, работающий внутри адресного пространства локальной сети интернет провайдера. Использование ретрекера позволяет пирам обмениваться трафиком на повышенной скорости, используя внутреннюю адресацию локальной сети провайдера, так как доступ к локальной сети у многих российских интернет провайдеров разрешен на более высокой скорости, нежели доступ в интернет. Кроме того, использование ретрекера снижает нагрузку на магистральные каналы связи за счет того, что абонентам не нужно скачивать по отдельности одни и те же данные...[W]
Устанавливаем необходимые пакеты:
yum install boost-devel gcc-c++ mysql-devel subversion
Выкачиваем исходники из svn и собираем их:
svn co https://xbtt.svn.sourceforge.net/svnroot/xbtt/trunk/xbt/misc xbt/misc
svn co https://xbtt.svn.sourceforge.net/svnroot/xbtt/trunk/xbt/Tracker xbt/Tracker
cd xbt/Tracker
./make.sh
Если собралось нормально, то копируем бинарник и конфиг в нужные папки:
# cp xbt/Tracker/xbt_tracker /usr/local/sbin/xbt_tracker
# cp xbt/Tracker/xbt_tracker.conf.default /etc/xbt_tracker.conf
Создаём пользователя в mysql и базу для него:
# mysql -u root -p
>CREATE USER 'xbt'@'localhost' IDENTIFIED BY 'YOU_PASSWORD';
>GRANT USAGE ON *.* TO 'xbt'@'localhost' IDENTIFIED BY 'YOU_PASSWORD';
>CREATE DATABASE IF NOT EXISTS `xbt`;
>GRANT ALL PRIVILEGES ON `xbt`.* TO 'xbt'@'localhost';
>exit;
Заливаем дамп базы данных:
mysql -u xbt -p xbt < xbt_tracker.sql
Правим конфиг:
# nano /etc/xbt_tracker.conf
mysql_host = 127.0.0.1
mysql_user = xbt
mysql_password = YOU_PASSWORD
mysql_database = xbt
pid_file = /var/run/xbt_tracker.pid
announce_interval = 1800
anonymous_connect = 1
anonymous_announce = 1
anonymous_scrape = 1
auto_register = 1
full_scrape = 0
gzip_debug = 1
gzip_scrape = 1
Создаём стартовый скрипт:
# nano /etc/init.d/xbt
#!/bin/sh
#
# xbt Start/Stop the xbt daemon.
#
# chkconfig: 2345 99 01
# description: XBT Tracker
# processname: xbt_tracker
# pidfile: /var/run/xbt_tracker.pid
# Source function library.
. /etc/init.d/functions
options='--conf_file /etc/xbt_tracker.conf'
processname='/usr/local/sbin/xbt_tracker'
pidfile='/var/run/xbt_tracker.pid'
user='root'
home=`/bin/grep -E "^$user:" /etc/passwd | /bin/cut -d : -f 6`
start() {
export HOME=$home
echo -n $"Starting $processname: "
if [ -e $pidfile ] && [ -e /proc/`cat $pidfile` ]; then
echo -n $"cannot start $processname: $processname is already running."
failure $"cannot start $processname: $processname already running."
echo
return 1
fi
daemon $processname $options
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && ps ax | grep -w $processname | grep -v grep | awk '{print($1)}' > $pidfile
return $RETVAL
}
stop() {
export HOME=$home
echo -n $"Stopping $processname: "
killproc $processname
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $pidfile
return $RETVAL
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status $processname
;;
*)
echo "Usage: $0 start|stop|restart|status"
;;
esac
Сделаем его исполняемым и поставим в автозапуск:
# chmod +x /etc/init.d/xbt
# chkconfig xbt on
Запускаем:
# /etc/init.d/xbt start
Проверяем работу пройдя по ссылке http://127.0.0.1:2710/st
Если всё нормально, продолжаем.
P.S.: На этом этапе у вас должна быть настроена запись retracker.local на ДНС сервере и правильно сконфигурированный веб-сервер (в примере используется Apache 2).
В папке виртуального хоста правим .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^st/?$ http://retracker.local:2710/st [P]
RewriteRule ^announce/?$ http://retracker.local:2710/announce [P]
RewriteRule ^scrape/?$ http://retracker.local:2710/scrape [P]
P.S.: Атрибут P — проксирует запросы. retracker.local можно/нужно заменить на 127.0.0.1
Сейчас проверяем работу пройдя по ссылке http://retracker.local/st
Проверяем как клиенты подхватывают ретрекер.
???
PROFIT!
Комментарии (3)
RSS свернуть / развернутьSergei_T
ПЫСЫ: 2й день — полёт нормальный
Mihael
yababay
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.