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!
  • +5
  • 27 февраля 2010, 12:35
  • Mihael

Комментарии (3)

RSS свернуть / развернуть
+
+1
Отлично ))))
avatar

Sergei_T

  • 27 февраля 2010, 12:44
+
0
Спасибо
ПЫСЫ: 2й день — полёт нормальный
avatar

Mihael

  • 27 февраля 2010, 12:45
+
0
Классное решение!
avatar

yababay

  • 27 февраля 2010, 16:27

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.