Захотелось мне выделить под торрент-клиент отдельную Linux-машинку под Debian, благо есть старый системный блок на котором это можно сделать.
Начал я с обзора торрент-клиентов под Linux:
Torrent клиенты в Linux
Я со своей идеей оказался не одинок, многим другим людям пришла в голову та же мысль. Вариантов программ без GUI оказалось немного - rtorrent c ncurses-интерфейсом, мультипротокольный p2p-демон mldonkey, transmission-daemon и btpd.
rtorrent можно запустить в screen-сессии, а можно, в добавок к этому, ещё и прикрутить к нему web-интерфейс:
- config rtorrent
- Скачал и настроил rtorrent
- rtorrent - первые шаги
- Torrent сервер для раздач файлов на платформе Gentoo Linux
В процессе дальнейших копаний материалов на эту тему решил, что mldonkey также мне не подходит, поскольку он, судя по отзывам, часто падает.
Есть ещё некий btpd, копать в направлении которого мне не захотелось, поскольку я уже подобрал подходящий вариант, о котором ниже. Если кому-то будет интересно узнать что-либо о btpd, прошу рассказать о результатах копания мне :)
Наконец был найден подходящий вариант, основанный на transmission-daemon и AJAX веб-интерфейсе Clutch:
Clutch
Вот, кстати, краткое описание консольного клиента, демона и утилиты управления демоном torrent:
Торрент-клиент Transmission
Этот вариант и был выбран в качестве наиболее перспективного, для дальнейшего изучения были скачаны руководства по установке связки transmission и Clutch:
В Debian Etch поставить transmission без GTK оказалось непросто, т.к. пакета без GTK-интерфейса в репозитарии не было. Я написал инструкцию по сборке пакета без GTK-клиента, но теперь она не нужна, т.к. в Lenny пакет transmission был разделён на три части:
- transmission-common - содержит различные README, информацию о лицензии и т.п.,
- transmission-cli - содержит демон, утилиту для правления демоном, прокси и простой консольный клиент, который может работать отдельно от демона,
- transmission-gtk - графическая утилита для управления демоном, использующая GTK.
# aptitude install transmission-cliОднако, как и в Etch, в Lenny нет скрипта для запуска и остановки демона и нет конфигурационного файла для его настройки. Я написал, как мне кажется, довольно гибко настраиваемый скрипт для запуска transmission-daemon. Скачать его можно здесь: transmission.sh
Помещаем скрипт в каталог /etc/init.d/.
Для настройки опций запуска демона используется специальный конфигурационный файл, шаблон которого можно взять здесь: transmission.conf
По-умолчанию я выставил те настройки, которые, как мне показалось, будут подходящими большинству пользователей.
Для себя же я поменял настройки так:
TORRENT_DIR=/home/torrents/ PORT_MAPPING=disable USER=www-data GROUP=www-dataЗапускаем демон вручную:
# /etc/init.d/transmission.sh startОсталось добавить этот скрипт в автозагрузку и автовыгрузку.
# update-rc.d transmission.sh defaultsВсё, на этом первая статья завершена. В следующей статье расскажу, как я настраивал веб-интерфейс Clutch к transmission-daemon.
Последнее обновление 26 февраля 2009 года.
Дополнение от 8 октября 2009 года:
Transmission всех версий выше 1.22 имеет новый способ управления. Теперь для управления демоном используется не сокет-файл, а HTTP-сервер, работающий по умолчанию на TCP-порту 9091. Сервер поддерживает digest-авторизацию, управление осуществляется с помощью какой-то разновидности протокола RPC. Также на этом HTTP-сервере имеется встроенный Web-клиент для управления Transission, старый знакомый Clutch, который доступен при подключении браузером к серверу. Никаких особых настроек не требуется, в squeeze демон снабжён init-сценарием для запуска.
9 комментариев:
а как же transmissioncli без интерфейса!?
Ну что я могу ответить?
transmissioncli можно использовать для создания новых торрент-файлов, просмотра доп. информации о торрент-файле (трекер, личеры, сидеры), проверки целостности данных.
Можно конечно запускать его в сеансе screen для скачивания и раздачи торрентов, но вот после запуска изменить настройки не получится. Придётся прервать его работу, а затем запустить с новыми опциями.
Ещё есть transmission-remote для управления демоном через консоль. То есть прерывать работу не придётся. Хотя конечно rtorrent в качестве консольного клиента удобнее.
Я использую transmission-remote в скрипте запуска transmission-daemon. В скрипте практически все настройки передаются демону с помощью transmission-remote.
Как ни крути, но контролировать работу демона, добавлять новые торренты и приостанавливать и запускть уже добаленные по моему проще через web-интерфейс.
Насчёт удобства rtorrent как консольного клиента пожалуй соглашусь.
Не умеет работать с файлами кириллицей (проверял CP1251 и UTF-8), сидить отказывается: не видит имеющийся файл.
transmission-remote -l показывает:
4 0% Unknown 0.0 0.0 0.0 Downloading пїїffc3пїїffb4пїїffc3пїїffa0пїїffc3пїїffa9пїїffc3пїїffab.txt
в торрент-файле имя прописано нормально [файл.txt].
Кто-нибудь решил эту проблему? Вообще штука удобная, может порекомендуете аналоги, нормально работающие с кодировками?
Мне вообще не удалось создать torrent с файлами, в имени которых есть русские символы. transmissioncli засегфолтился.
Вообще-то в стандарте bencode, который применяется для кодирования информации в torrent-файлах, предусмотрена только кодировка ASCIIZ. Различные torrent-клиенты пытаются прописывать туда строки в UTF-8 нестандартными способами.
В общем, в протоколе предусмотрена только латиница, как это ни прискорбно.
Заюзали на сервере BTPD (http://www.murmeldjur.se/btpd/) расшарили контент в UTF-8. Возможности перекодировать файлы из CP1251 не было, перекодировали симлинки :)
BTPD торренты генерить вроде не умеет, генерим через transmissoncli. Управляется аналогично transmission-daemon, но вроде по функционалу послабее, лимиты скорости не настраиваются.
aleksandr:
В README сказано, что ограничения на скорость скачивани/раздачи есть.
Есть пакеты Debian - это плюс.
Минусы:
1. нет страниц руководства,
2. проект уже почти год не обновлялся,
3. поддержка UPnP и NAT-PMP отсутствует,
4. нет (похоже) обмена peer'ами,
5. нет веб-интерфейса (или есть, но я не знаю).
есть еще красивые кроссплатформенные клиенты
http://code.google.com/p/transmission-remote-dotnet/
http://code.google.com/p/transmisson-remote-gui/
http://code.google.com/p/transmission-remote-java/
Отправить комментарий