Настройка transmission-daemon

Начнем настройку торрент-сервера
У меня том для файлов монтируется в точку /ftp
Для доступа к файлам торрент сервера я использую протокол nfs.
создадим папку для шар
mkdir /ftp
установим разрешения
chmod 777 /ftp
Устанвим сервис nfs
yum install nfs-utils-1.2.3-26.el6.i686 nfs4-acl-tools-0.3.3-6.el6.i686  rpcbind-0.2.0-9.el6.i686
отредактируем файл конфигурации /etc/exports добавим в конец следующую строчку.
/ftp/files  192.168.254.0/24(rw,sync,no_subtree_check)

Теперь установим сам торрент клиент.
Я выбрал для себя transmission-daemon, начнем .

1. Установим недостающие пакеты
yum install gcc gcc-c++ m4 make automake libtool gettext openssl-devel wget
Подготовка каталога, получение исходного кода:
cd /usr/local/src
mkdir transmission
cd transmission

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
wget http://curl.haxx.se/download/curl-7.19.7.tar.gz
wget http://mirrors.m0k.org/transmission/files/transmission-1.80.tar.bz2

tar -xzfv pkg-config-0.23.tar.gz
tar -xzfv intltool-0.40.6.tar.gz
tar -xzfv curl-7.19.7.tar.gz
tar -xjfv transmission-1.80.tar.bz2

Сборка:
cd pkg-config-0.23
./configure
make
make install

cd ../intltool-0.40.6
./configure
make
make install
Если при конфигурировании вылетит с ошибкой про модуль perl  XML::Parser нужн установить этот пакет следующей командой
ставим пакет
yum install perl-CPAN.i686
#perl -MCPAN -e "shell"
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.

cpan[1]> install XML::Parser

make
make install

cd ../curl-7.19.7
./configure
make
make install

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
cd ../transmission-1.80
./configure --enable-daemon
make
make install

Настройка web-интерфейса для httpd, файл /etc/httpd/conf/httpd.conf:
Alias /transmission/web /usr/local/share/transmission/web
RewriteEngine on
RewriteRule /transmission[/]?$ /transmission/web [R=permanent]
ProxyPass /transmission http://127.0.0.1:9091/transmission
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
<Location /transmission>
  Options None
    Order allow,deny
    Allow from 127.0.0.1
    <IfModule expires_module>
    ExpiresActive On
    ExpiresByType image/gif A43200
    ExpiresByType image/png A43200
    ExpiresByType application/javascript A43200
    ExpiresByType text/css A43200
  </IfModule>
 </Location>
Если доступа у web панели не будет надо выплнить след команду
#usr/sbin/setsebool httpd_can_network_connect true
Создадим рабочие каталоги для transmission-daemon
#cd /ftp
#mkdir .config
# mkdir /ftp/.config/ blacklist torrent resume

Примерный файл конфигурации transmission-daemon
settings.json который находиться в /ftp/.config/ в моем случае.

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "dht-enabled": true,
    "download-dir": "\/ftp\/files",
    "encryption": 1,
    "incomplete-dir": "\/ftp\/.config\/transmission-daemon\/Incomplete",
    "incomplete-dir-enabled": false,
    "lazy-bitfield-enabled": true,
    "message-level": 2,
    "open-file-limit": 32,
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 60,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": 0,
    "pex-enabled": true,
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "proxy": "",
    "proxy-auth-enabled": false,
    "proxy-auth-password": "",
    "proxy-auth-username": "",
    "proxy-enabled": false,
    "proxy-port": 80,
    "proxy-type": 0,
    "ratio-limit": 2.0000,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "{89bc527e52f4ef97c9c0bb18d5db84708dddcf73V1zBlrAm",
    "rpc-port": 19091,
    "rpc-username": "ntimmy",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": true,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "umask": 18,
    "upload-slots-per-torrent": 14,
    "watch-dir": "\/ftp\/files\/torrents\/",
    "watch-dir-enabled": true
}

Скрипт запуска transmission-daemon
Переменная home указывает на домшнюю папку где находятся файлы конфигурации transmission-daemon

#!/bin/sh
#
# transmission Start/Stop the transmission-daemon daemon.
#
# chkconfig: 2345 99 01
# description: transmission-daemon is a daemon-based Transmission session
#              that can be controlled via RPC commands from
#              transmission’s web interface or transmission-remote
# processname: transmission-daemon
# pidfile: /var/run/transmission.pid

# Source function library.
. /etc/init.d/functions

options='--allowed 127.0.0.1 --no-auth'

processname='/usr/local/bin/transmission-daemon'
lockfile='/var/lock/subsys/transmission'
pidfile='/var/run/transmission.pid'
user='root'
home='/ftp'

start() {
  export HOME=$home
  echo -n $"Starting $processname: "
  if [ -e $lockfile ]; then
    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
  fi
  daemon $processname $options
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $lockfile
  [ $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: "
  if [ ! -e $lockfile ]; then
    echo -n $"cannot stop $processname: $processname is not running."
    failure $"cannot stop $processname: $processname is not running."
    echo
    return 1;
  fi
  killproc $processname
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $lockfile
  [ $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
Отключим SELinux
/usr/sbin/setsebool -P httpd_can_network_connect 1

Комментариев нет:

Отправить комментарий