Очень часто домашний сервер удобно использовать для закачивания каких-либо файлов, фильмов, музыки. Сервер работает круглосуточно, поэтому можно ставить задачи в очередь. Для закачки торрентов я буду использовать торрент-клиент transmission-daemon, он примечателен тем что не имеет веб-интерфейс для управления закачками.
Суенарий работы торрент-клиента
Сценарий будет такой — создаем публичный каталог, куда будем складывать торрент-файлы, периодически торрет-клиент будет сканировать этот каталог (TorrenFile) и при обнаружении торрент файла будет пытаться скачать с помощью него файлы, не докачанные файлы складываются в каталог incomplete, после того как файл докачался он перемещается в каталог Download, а торрент-файл удаляется, параллельно с этим торрент файл можно будет открывать через веб-интерфейс торрент клиента и контролировать процесс закачивания файлов.
Установка пакетов торрент-клиента
Первым делом установим торрент-клиент
1 | apt install transmission-daemon -y |
Останавливаем клиент
1 | service transmission-daemon stop |
И переходим к файлу с настройками
1 | nano /etc/transmission-daemon/settings.json |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | { "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, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/var/lib/transmission-daemon/downloads", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/var/lib/transmission-daemon/Downloads", "incomplete-dir-enabled": false, "lpd-enabled": false, "max-peers-global": 200, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": false, "preallocation": 1, "prefetch-enabled": true, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "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-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "{01b6a44e54397d3504447702ff4434a58fd6cec6TOoCuBAQ", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": true, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true } |
Пользователь под которым будет работать transmission
1 | "transmission_user": "samba", |
Использую пользователя samba, чтобы у закаченных файлов были такие-же права доступа как и остальных файлов в публичном каталоге
Указываю каталог для скачанных файлов:
1 | "download-dir": "/home/samba/Pubcli/Downloads", |
Указываем каталог для файлов которые еще не завершили закачку:
1 | "incomplete-dir": "/home/samba/Public/Downloads/incomplete", |
Настраиваем удаленный доступ через web-интерфейс:
1 2 3 4 5 6 7 8 | "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "123456", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, |
«rpc-password»: «123456», — после перезапуска службы поменяется на хеш пароля, менять его не надо.
Еще отключил белый список для удаленного доступа: «rpc-whitelist-enabled»: false
Указываем каталог для автозагрузки торрент-файлов:
1 2 | "watch-dir": "/home/samba/Public/TorrentFiles", "watch-dir-enabled": true, |
Удаляем торрент файл после добавления:
1 | "trash-original-torrent-files": true, |
Сохраняем конфигурационный файл и запускаем transmission-daemon
Назначаем права доступа в каталог /home/samba/Public/Downloads
1 2 3 4 | chown samba:debian-transmission /home/samba/Public/Downloads chown samba:debian-transmission /home/samba/Public/TorrenFiles chmod 775 /home/samba/Public/Downloads chmod 775 /home/samba/Public/TorrentFiles |
1 | service trnsmission-daemon start |
Открываем браузер и переходим по адресу http://192.168.2.1:9091
Помещаем торрент файл в каталог TorrentFiles, в веб-интерфейсе должен появиться процесс закачки.
Закачка будет вестись в каталог /home/samba/Public/Downloads/incomplete и в конце переместит файл в /home/samba/Public/Downloads/
Заметил что перемещение происходит не сразу, а через несколько секунд после того как скачалось, видимо идет проверка целостности после закачки.