Качаем торренты удаленно

Transmission logoРаз уж меня потянуло на минимизацию, то продолжим эту тему. В этот раз коснемся торрентов. Не секрет, что эта технология очень развита, особенно не территории бывшего СССР. Причин этого касаться не будем, так как это не наше дело. А посмотрим на инструментарий и попробуем сделать процесс управления вашими закачками дистанционным.

Итак, стандартный клиент Transmission вполне удобен и достаточно конфигурабелен. Но есть один недостаток: не умеет запускаться как демон. Допустим ситуацию: ваш ПК перегрузился и вам приходится заново его запускать. Да и постоянно присутствующее окно «напрягает».

Я перепробовал много клиентов, в том числе и deluge, который с помощью некоторых усилий стал запускаться как демон, однако везде возникали те или инные проблемы. И, примерно, год назад я наткнулся в Synaptic на пакет transmission-daemon. Как вы понимаете, само название уже говорит о многом. Порывшись в сети я получил некоторую информацию о нем, однако вразумительной и краткой инструкции по его установке я не обнаружил. Пришлось идти опытным путем. И вот сейчас я готов поделиться с вами алгоритмом простой установки в ubuntu transmission daemon.

Цель установки: получить работающий в фоне клиент для загрузки торрентов и иметь возможность удаленно управлять им.

1. Установим этот замечательный пакет:

sudo apt-get install transmission-daemon

2. Выберем папку, в которой будут находиться опции демона, а также загружаемый файлы. Также перенесем начальную конфигурацию поставляемую с пакетом. Откроем терминал и перейдем в домашний каталог, дальше:

mkdir torrents
sudo cp -r /var/lib/transmission-daemon/* torrents
sudo chown -R roman:roman torrents

Последняя команда назначает всем файлам и папкам torrents пользователя roman. Вы же вместо «roman:roman» должны ввести свои, например, «lui:lui».

3. Правим файл настроек settings.json. Его формат ужасен, но раз настроив можно о нем забыть. Итак, приведу примерное содержимое этого файла. Помните, вы правите только значения параметров. Иначе рискуем получить неработающий демон.

{
    "alt-speed-down": 100, 
    "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": 16, 
    "bind-address-ipv4": "0.0.0.0", 
    "bind-address-ipv6": "::", 
    "blocklist-enabled": false, 
    "blocklist-url": "http://www.example.com/blocklist", 
    "cache-size-mb": 2, 
    "dht-enabled": true, 
    "download-dir": "/home/roman/torrents/downloads", 
    "download-limit": 100, 
    "download-limit-enabled": 0, 
    "encryption": 1, 
    "idle-seeding-limit": 30, 
    "idle-seeding-limit-enabled": false, 
    "incomplete-dir": "/home/roman/torrents/info/Incomplete", 
    "incomplete-dir-enabled": false, 
    "lazy-bitfield-enabled": true, 
    "lpd-enabled": false, 
    "max-peers-global": 200, 
    "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": false, 
    "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, 
    "ratio-limit-enabled": false, 
    "rename-partial-files": true, 
    "rpc-authentication-required": true, 
    "rpc-bind-address": "0.0.0.0", 
    "rpc-enabled": true, 
    "rpc-password": "My_Secret_Password", 
    "rpc-port": 6891, 
    "rpc-username": "roman", 
    "rpc-whitelist": "127.0.0.1", 
    "rpc-whitelist-enabled": false, 
    "script-torrent-done-enabled": false, 
    "script-torrent-done-filename": "", 
    "speed-limit-down": 100, 
    "speed-limit-down-enabled": false, 
    "speed-limit-up": 64, 
    "speed-limit-up-enabled": true, 
    "start-added-torrents": true, 
    "trash-original-torrent-files": false, 
    "umask": 18, 
    "upload-limit": 100, 
    "upload-limit-enabled": 0, 
    "upload-slots-per-torrent": 14
}

Остановлюсь на наиболее часто используемых параметрах:

  • download-dir - сюда собственно и будут загружаться файлы;
  • incomplete-dir - папка для еще незагруженных файлов;
  • peer-port - этот порт должен быть у вас открытым, по нему и будет происходить соединение с пирами;
  • rpc-authentication-required - требуем обязательную авторизацию при доступе через веб-интерфейс;
  • rpc-enabled - собственно и сам доступ должен быть разрешен;
  • rpc-username - логин для доступа через веб (может не совпадать с логином в систему, это у меня так нечаянно получилось);
  • rpc-password - пароль для доступа через веб (пишите открыто, после первого запуска его значение шифруется) (пароль который я там указал не подойдет ни к одному из моих сервисов, так что и не пытайтесь);
  • rpc-port - порт, по которому будет доступ к веб-интерфейсу (должен быть открытым для доступа из интернет, если вы хотите управлять своими торрентами с любой точки мира).

При желании вы можете изменить и остальные параметры, но они не критичные и в большинстве случаем менять их не надо. Параметры скорости не меняем, их потом можно более легко изменить через веб-интерфейс.

4. Правим файл /etc/init.d/transmission-daemon (потребуются административные права). Изменяем всего одну строчку:

USER=roman

roman - это логин в систему, а не логин для доступа к веб-интерфйсу.

Проведя эту операцию мы указываем демону работать от имени конкретного пользователя.

5.Правим файл /etc/default/transmission-daemon (потребуются административные права). Изменяем две строчки:

ENABLE_DAEMON=1
CONFIG_DIR="/home/roman/torrents/info"

Первая разрешает запуск демона, а вторая указывет где ему искать файлы конфигурации.

6. Запускаем демон. Для этого или перезагружаем машину или выполняем команду:

sudo service transmission-daemon start

Если вы нигде ничего не упустили или перепутали, то открыв браузер и перейдя по адресу http://localhost:6891 вы попадете после авторизации на страницу управления вашим демоном.

Если же вы все-таки что-то сделали не так, то алгоритм исправления ошибки прост:

  • останавливаем демон;
  • исправляем ошибку;
  • запускаем демон.

Если забудете остановить демон, то все исправления файла settings.json будут потеряны. Сам на эти грабли наступил не один раз.

Вот и вы получили свой фоновый клиент для торрентов. Примечательно то, что его можно установить и на сервере, т.е. на системе без графической оболочки. И работать такой может сервер круглосуточно. Необходимо только подумать о бесперебойном питании и охлаждении. Хороший UPS решит первую проблему, а монтаж кондиционеров – вторую.

Незабываем открыть нужные нам порты в фаерволе или пробросить их через роутер.

Понятно, что эта инструкция не из тех, где максимум два действия, и вряд ли подойдет для рядовых пользователей, но она явно пригодится для пользователей более искушенных.