Rtorrent
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su -
для повышения уровня привелегий. Символы '$
' и '#
' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.
Установка[править]
Подготовка[править]
Ставить rtorrent не просто, но очень просто, как и всё что находится в Fedora Extras:
# yum -y install rtorrent
Также можно найти более новую версию в dag: rtorrent и libtorrent.
Настройка[править]
Создадим файл с настройками:
$ cat <<EOF >>~/.rtorrent.rc
port_range = 10000-10005
check_hash = yes
directory = /mnt/storage/torrent
session = /mnt/storage/torrent
tos = default
upload_rate = 95
download_rate = 0
EOF
В этом примере, в домашнем каталоге пользователя (не обязательно root, более того - желательно в каталоге пользователя отличного от root) создам файл со следующими настройками:
- проверять хеш торрентов после завершения закачки
- прослушивать свободный порт из диапазона 10000-10005
- использовать сессии, и сохранять торренты и закачки в /mnt/storage/torrent
- установить поле TOS исходящих IP пакетов по умолчанию для системы (но не по умолчанию для rtorrent). Если не определить эту настройку возможны задержки в комбинациями с некоторыми рутерами.
- ограничить отдачу скоростью 95 kb/s
- не ограничить закачку
В список правил iptables добавляем строки (мы же хотим быть подключаемыми):
# iptables -A INPUT -p tcp -m state --state NEW -m multiport --destination-ports 10000:10005 -i $EXTIF -j ACCEPT
# iptables -A INPUT -p udp -m state --state NEW -m multiport --destination-ports 10000:10005 -i $EXTIF -j ACCEPT
если наш клиент не имеет внешнего IP, тогда на рутере (а у нас там Linux, верно?) настраиваем DNAT
# iptables -t nat -A PREROUTING --dst $INET_IP -p tcp -m multiport --destination-ports 10000:10005 -j DNAT --to-destination $LANSERV_IP
# iptables -t nat -A PREROUTING --dst $INET_IP -p udp -m multiport --destination-ports 10000:10005 -j DNAT --to-destination $LANSERV_IP
В этих примерах: EXTIF - имя устройства "глядящего" наружу. например eth0 INET_IP - внешний IP адрес LANSERV_IP - IP адрес машины на которой запущен rtorrent клиент
Запуск[править]
Теперь можно запускать rtorrent:
$ rtorrent
Управляем клиентом стрелками и: backspace - для добавления torrent'a (работает автозаполнение по Tab) return - то же самое, но торрент остаётся неактивным Ctrl-O Указать иной каталог для торрента. Ctrl-s Запустить закачку (опционально проверив хеш) Ctrl-d Остановить активную закачку, или удалить неактивный торрент. Ctrl-r Перепроверить хеш.
Больше можно узнать в странице man rtorrent или Руководстве пользователя.
Внимание: скорее всего вы не сможете воспользоваться комбинациями клавиш Ctrl-s, Ctrl-q, так как они используются для управлением терминалом. Впрочем есть решение - перед запуском rtorrent (или screen) выполнить команды:
$ stty stop undef
$ stty start undef
Удаленное управление[править]
Усложняем задачу: имеем удаленный сервачок (конечно на нем запущен Fedora Core 6), без видеокарты, но с сетевухой и хорошим каналом в интернет - грех подобным не воспользоваться ;) Для организации отключаемых сессий можно воспользоваться dtach или screen (обе можно найти в репо Fedora Core). Мы воспользуемся последним.
$ yum install screen
Хотя предположительно наш сервер не перезагружается, неплохо бы обеспечить запуск rtorrent при запуске системы:
# cat <<EOF >/etc/init.d/rtorrent
#!/bin/bash
#
# Starting rtorrent in a screen session as daemon
# Author: Vasile Vsx
#
# chkconfig: 2345 50 01
#
# description: start rtorrent detached
# processname: rtorrent
# source function library
. /etc/rc.d/init.d/functions
# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that networking is up.
[ "\${NETWORKING}" = "no" ] && exit 0
if [ -f /etc/sysconfig/rtorrent ]; then
. /etc/sysconfig/rtorrent
fi
if [ -z \$RTORRENT_USER ]; then
exit 0
fi
RETVAL=0
start() {
echo -n "Starting rtorrent: "
daemon --user \$RTORRENT_USER /usr/bin/screen -dmS rtorrent /usr/bin/rtorrent \$OPTIONS
RETVAL=\$?
echo
}
stop() {
echo -n "Stopping rtorrent: "
killproc rtorrent -INT
RETVAL=\$?
echo
}
restart() {
stop
start
}
case "\$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status rtorrent
;;
*)
echo $"Usage: \$0 {start|stop|status|restart}"
exit 1
esac
exit $RETVAL
EOF
# chmod +x /etc/init.d/rtorrent
# chkconfig --add rtorrent
Определяем пользователя используемого для запуска rtorrent
# cat <<EOF >/etc/sysconfig/rtorrent
RTORRENT_USER=username
EOF
запускаем и останавливает rtorrent командами:
# /sbin/service rtorrent start
и
# /sbin/service rtorrent stop
Подключаемся к запущенной сессии:
$ screen -r
отключаемся сочетанием клавиш: Ctrl-a d
Также создаем простой скрипт (rt):
$ mkdir ~/bin && cat <<EOF >~/bin/rt
#!/bin/sh
stty stop undef
stty start undef
screen -rS rtorrent
EOF
chmod +x ~/bin/rt