27 Янв
Автор: ras Рубрики: Программное обеспечение
Есть у меня домашний Linux-сервер под CentOS, выполняющий роль шлюза в сеть Интернет, файлового хранилища с FTP и Samba, и другие функции, необходимые системному администратору, которые проблематично реализовать на базе аппаратного маршрутизатора. Вот появилась идея установить и демон torrent-клиент на данный сервер, чтобы качал себе и раздавал необходимые мне файлы.
Раньше у меня был опыт работы с MLDonkey, но вспоминая его ужасный web-интерфейс и монстроидальность – отказался сразу. Далее взгляд пал на rTorrent, знакомый его использовал на маршрутизаторе D-Link DIR-320 с модифицированной прошивкой от Олега. Очень порадовал красивый web-интерфейс, похожий на µTorrent. Но, т. к. это всё-таки не демон, а консольное приложение, глянув на метод его запуска и связывания с web-интерфейсом – решено было отказаться и от него.
В итоге выбор пал на Transmission, опять же, тот же знакомый уже его успешно использовал, так же выяснилось, что данный клиент имеет демон для запуска без GUI. Сначала была установлена и настроена старая версия из репозитария EPEL transmission-1.34-1.el5.x86_64, но работать с данной версией было крайне неприятно, многое не поддерживалось, GUI-клиент не совсем корректно работал с данной версией, не была доступна часть функций. Собрать новую версию обычным способом не получалось из-за того, что в CentOS используются более старые версии нужных для сборки transmission библиотек. Ещё одним фактором использования новой версии является поддержка ей списка трекеров. На этом заканчивается лирическое отступление, опишу сборку и настройку.
Сборка
Установка необходимых для сборки пакетов:
Подготовка каталога, получение исходного кода:
Сборка:
Настройка web-интерфейса для httpd, файл /etc/httpd/conf/httpd.conf:
В “Allow from” укажите IP, с которого вы хотите получить доступ, в своём случае, я использовал “Authtype Basic”, т. е. захожу по паролю. Перезапуск httpd (если возникли ошибки, смотрим каких модулей не хватает, подправляем файл конфигурации):
Далее я столкнулся с тем, что не нашёл нормального init-скрипта, написал свой. Он ещё находится в стадии тестирования, но как показала практика работает нормально, запуск демона будет от пользователя root. Да, знаю что это не правильно, но пока так /etc/rc.d/init.d/transmission:
Установка прав на запуск:
Добавление в автозапуск:
Запуск:
Если всё выполнено правильно, демон запущен и работает.
Настройка
Теперь нужно настроить демон, основные настройки доступны с web-интерфейса. Нужно открыть в браузере http://ваш-web-сервер/transmission, слева внизу есть кнопка настроек, выбрать Preferences. Указать путь куда будут сохраняться файлы, номер порта и не забыть открыть его в фаерволле для входящих соединений. На второй вкладке указать ограничение скорости. Всё, можно работать, добавлять torrent-файлы, наблюдать процесс скачивания.
Все настройки сохраняются в каталоге /root/.config/transmission-daemon. Там же хранятся torrent-файлы и информация о текущих загрузках.
Ещё я столкнулся с тем, что со временем демон начинает отъедать много ресурсов процессора, ест память, перезапуск помогает. Поэтому небольшой костыль в /etc/crontab:
GUI
Есть неплохой GUI-интерфейс для transmission-daemon кроме родного – Transmission Remote GUI. Данный клиент является кроссплатформенным, есть сборки как под Linux, так и под Windows, написан на Lazarus. Для того, чтобы данный клиент мог подключиться к демону – я добавил в скрипт запуска, строку параметров после 127.0.0.1, через запятую – IP-адрес домашнего компьютера.
Итог
В результате проделанной работы я получил довольно удобную систему: демон качает, по самбе получаю доступ к скачанным файлам. При работе с загрузками используется довольно удобный GUI.
Готов выслушать замечания, ваши рекомендации по улучшению скрипта запуска, дополнения, уточнения материала данной статьи.
Ссылки
gordonsh
09|Фев|2010 1спасибо за качественный мануал.
возникла проблема на этапе запуска сервиса (в автозагрузке его вижу, добавилось норм)
# service transmission start
transmission: unrecognized service
как его запустить?
Думаю, я забыл упомянуть, что нужно выставить права на запуск для скрипта, поэтому:
chmod 755 /etc/rc.d/init.d/transmission
Проверил, и таки да. Спасибо за найденную ошибку, завтра исправлю документацию.
Подправил статью.