Transmission — это легкий и кроссплатформенный BitTorrent-клиент.
Установка
Существует несколько пакетов для установки Transmission:
- transmission-cli – демон для CLI и #Web интерфейс.
- transmission-gtk – графический интерфейс на базе GTK 3.
- transmission-qt – графический интерфейс на базе Qt 5.
- tremcAUR или tremc-gitAUR – Curses-интерфейс для демона.
- stigAUR или stig-gitAUR – Curses-интерфейс для демона.
- transmission-remote-gtk – интерфейс на базе GTK 3 для демона.
Настройка GUI версий
Обе версии GUI, transmission-gtk и transmission-qt, могут функционировать автономно без отдельно запущенного демона.
Версии с графическим интерфейсом настроены для работы из коробки, но пользователь может захотеть изменить некоторые настройки. По умолчанию путь к файлам конфигурации GUI - ~/.config/transmission.
Руководство по параметрам конфигурации можно найти в Github-репозитории Transmission.
Transmission демон и CLI
Команды transmission-cli:
- transmission-daemon: запускает демон.
- transmission-remote: вызывает интерфейс командной строки для демона, локального или удаленного, а затем команду, которую вы хотите, чтобы демон выполнил.
- transmission-show: возвращает информацию о заданном торрент-файле.
- transmission-create: создает новый торрент.
- transmission-edit: добавление, удаление или замена announce URL трекера.
- transmission-cli: (объявлена устаревшей в пользу transmission-remote) запускает локальный экземпляр transmission для ручной загрузки торрента.
- tremc: (требует tremc-gitAUR) запускает curses-интерфейс для демона, локального или удаленного.
Запуск и остановка демона
Демон Transmission может быть запущен:
- Как пользователь transmission, путем запуска/включения службы
transmission.service. Пользователь может быть изменен, как описано в разделе #Выбор пользователя. - Как ваш собственный пользователь, запустив программу под своим именем:
$ transmission-daemon
При запуске демона будет создан файл начальной конфигурации. Смотрите раздел #Настройка демона.
Затем демон может быть остановлен с помощью:
$ pkill -3 transmission-daemon
Альтернативным вариантом остановки Transmission является использование команды transmission-remote:
$ transmission-remote --exit
Сокращение спама журнала
Запуск transmission-daemon может привести к появлению большого количества нежелательных записей в журнале. Вывод можно отфильтровать, запустив его с помощью небольшого скрипта-обертки. Следующий пример также предоставляет некоторые уведомления:
transwrap.sh
#!/bin/zsh
killall transmission-daemon 2> /dev/null
transmission-daemon --foreground --log-info 2>&1 | while read line; do
echo $line |
grep -v "announcer.c:\|platform.c:\|announce done (tr-dht.c:" |
grep -v "Saved.*variant.c:" |
while read line; do
echo $line | grep -q "Queued for verification (verify.c:" &&
notify-send --app-name="Transmission Started" "${line#* * }"
echo $line | grep -q "changed from .Incomplete. to .Complete." &&
notify-send --app-name="Transmission Complete" "${line#* * }"
echo $line | systemd-cat --identifier="TransWrap" --priority=5
done 2>&1 > /dev/null
done&disown
Запуск только при подключении к сети
Netctl
Может быть желательно запускать передачу только в определенных сетях. Следующий скрипт проверяет, что соединение установлено со списком разрешенных сетей, а затем запускает transmission-daemon.
/etc/netctl/hooks/90-transmission.sh
#!/bin/bash
# The SSIDs for which we enable this.
declare -A ssids=(
["network_1"]=y
["network_2"]=y
)
if [[ ${ssids[$SSID]} ]]; then
case $ACTION in
CONNECT|REESTABLISHED)
# Need to wait, otherwise doesn't seem to bind to 9091.
sleep 30
systemctl start transmission
;;
*)
systemctl stop transmission
;;
esac
fi
Wicd
Создайте скрипт запуска в папке /etc/wicd/scripts/postconnect и скрипт остановки в папке /etc/wicd/scripts/predisconnect. Не забудьте сделать их исполняемыми. Например:
/etc/wicd/scripts/postconnect/transmission
#!/bin/bash systemctl start transmission
/etc/wicd/scripts/predisconnect/transmission
#!/bin/bash systemctl stop transmission
Выбор пользователя
Выберите способ запуска transmission:
- В качестве отдельного пользователя, по умолчанию
transmission(рекомендуется для повышения безопасности).
По умолчанию transmission создает пользователя и группу transmission, со своими домашними файлами по адресу /var/lib/transmission/, и запускается от имени этого "пользователя". Это мера предосторожности, благодаря которой transmission и его загрузки не имеют доступа к файлам вне /var/lib/transmission/. Настройка, работа и доступ к загрузкам должны выполняться с привилегиями "root" (например, с помощью sudo).
- Под своим собственным пользователем.
Чтобы настроить это, создайте drop-in файл для службы и укажите в нем свое имя пользователя:
/etc/systemd/system/transmission.service.d/username.conf
[Service] User=имя_пользователя
Настройка демона
Создайте файл начальной конфигурации путём запуска демона.
- Если Transmission запущен под именем пользователя
transmission, файл конфигурации будет расположен по адресу/var/lib/transmission/.config/transmission-daemon/settings.json.
- Если вы запускаете Transmission под своим именем пользователя, файл конфигурации будет расположен по адресу
~/.config/transmission-daemon/settings.json.
Настроить демон можно с помощью клиента Transmission или через веб-интерфейс, доступный через http://localhost:9091 в поддерживаемом браузере.
Руководство по параметрам конфигурации можно найти на веб-сайте Transmission: https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md
kill -s SIGHUP $(pidof transmission-daemon).
Для тех, кто работает под именем пользователя transmission, рекомендуется создать общий каталог загрузки с правильными разрешениями, чтобы разрешить доступ как пользователю transmission, так и системным пользователям, а затем соответствующим образом обновить конфигурационный файл. Например:
# mkdir /mnt/data/torrents # chown -R facade:transmission /mnt/data/torrents # chmod -R 775 /mnt/data/torrents
Теперь /mnt/data/torrents будет доступен для системного пользователя facade и для группы transmission, в которую входит пользователь transmission. Крайне не рекомендуется делать целевой каталог доступным для чтения/записи любым пользователям (т.е. не делайте chmod каталога на 777). Вместо этого дайте отдельным пользователям/группам соответствующие разрешения на соответствующие каталоги.
/mnt/data/torrents расположен на съемном устройстве, например, с записью /etc/fstab с опцией nofail, Transmission будет жаловаться, что не может найти ваши файлы. Чтобы исправить это, вы можете добавить RequiresMountsFor=/mnt/data/torrents в /etc/systemd/system/transmission.service.d/transmission.conf в разделе [Unit].В качестве альтернативы можно добавить пользователя в группу transmission (#usermod -a -G transmission yourusername) и затем изменить разрешения на каталоги /var/lib/transmission и /var/lib/transmission/Downloads, чтобы разрешить доступ rwx членам группы transmission.
Белый список хостов
Если вы планируете обращаться к демону Transmission по сети, используя имя хоста сервера, вам необходимо добавить это имя хоста в rpc-host-whitelist в settings.json.
В противном случае при обращении к серверу вы получите ошибку "421 Misdirected Request".
Если вы подключаетесь к демону, используя IP-адрес сервера, это не требуется.
Watch dir
Если вы хотите Автоматически добавлять .torrent файлы из папки, но обнаружите, что опции watch-dir и watch-dir-enabled, установленные в конфигурационном файле, не работают, вы можете запустить демон передачи с флагом -c /path/to/watch/dir.
Если вы используете systemd, отредактируйте блок transmission.service, как описано в разделе systemd (Русский)#Редактирование файлов юнитов.
Включение IPv6
По умолчанию демон прослушивает только соединения IPv4. Чтобы также прослушивать соединения IPv6, измените опцию rpc-bind-address на "::" в settings.json.
CLI примеры
Если вы хотите удалить все готовые торренты, вы можете использовать следующую команду с собственным именем пользователя и паролем:
# transmission-remote -n 'username:password' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r
Seed a torrent which has already been downloaded:
# transmission-remote [HOST] --torrent=example.torrent -a example.torrent --verify --download-dir=/dir/to/folder --start
Web интерфейс
GUI способ
После установки Transmission вы можете легко настроить веб-интерфейс. Все, что вам нужно сделать, это щелкнуть меню Правка и выбрать Параметры. Перейдите на вкладку Удалённое управление и включите Разрешить удаленный доступ.
Здесь у вас есть возможность изменить порт прослушивания по умолчанию с 9091.
Установите флажок Использовать аутентификацию и введите имя пользователя и пароль, чтобы можно было использовать аутентификацию.
Для повышения безопасности вы можете ограничить доступ с любого IP-адреса, включив опцию Разрешить доступ только данным IP-адресам.
Теперь вы готовы запустить веб-интерфейс, нажав на Открыть веб-клиент, что заставит ваш веб-браузер по умолчанию открыть его, или вручную достигнув http://TARGET_IP_ADDRESS:PORT с помощью любого поддерживаемого веб-браузера.
Если вы не изменили порт прослушивания, по умолчанию используется порт 9091. В этом случае ссылка http://localhost:9091
CLI способ
Вам не нужен графический интерфейс для настройки веб-интерфейса, демон предлагает те же самые опции. Вы можете получить доступ к веб-интерфейсу, не указывая никаких флагов. Смотрите раздел #Запуск и остановка демона
Тем не менее, вы можете указать все то, что вы видите в предыдущем разделе:
$ transmission-daemon --auth --username arch --password linux --port 9091 --allowed "127.0.0.1"
эквивалентно
$ transmission-daemon -t -u arch -v linux -p 9091 -a "127.0.0.1"
Дополнительная тема Web-интерфейса
Если пользовательский интерфейс веб-приложения по умолчанию кажется устаревшим и менее навороченным, чем ожидалось, попробуйте использовать https://git.eigenlab.org/sbiego/transmission-web-soft-theme для создания простой темы CSS.
https://github.com/ronggang/transmission-web-control также предоставляет полную замену, которая может сосуществовать с пользовательским интерфейсом по умолчанию.
Использование в качестве makepkg DLAGENT
Transmission можно использовать в качестве агента загрузки magnet для makepkg с помощью агента загрузки transmission-dlagentAUR.
Для Magnet URI необходимо изменить их префикс с magnet:? на magnet://.
Решение проблем
Невозможно получить доступ к демону по сети
Демон запускается после инициализации network.service. Однако, если вы включите службу dhcpcd, а не службу для конкретного устройства, например, dhcpcd@enp1s0.service, может случиться так, что Transmission будет запущен слишком рано и не сможет привязаться к сетевому интерфейсу. Таким образом, веб-интерфейс окажется недоступен. Возможным решением является добавление строки Requires в файл юнита:
/etc/systemd/system/transmission.service.d/fixdep.conf
[Unit] Requires=network.target
Web-интерфейс недоступен
404: Not Found Couldn't find Transmission's web interface files! Users: to tell Transmission where to look, set the TRANSMISSION_WEB_HOME environment variable to the folder where the web interface's index.html is located. Package Builders: to set a custom default at compile time, #define PACKAGE_DATA_DIR in libtransmission/platform.c or tweak tr_getClutchDir () by hand.
Даже если вы используете графический интерфейс, вам все равно необходимо установить transmission-cli, чтобы веб-интерфейс работал.
Failed to set send/receive buffer
Transmission может отобразить любое из этих сообщений в журнале при запуске:
UDP Failed to set receive buffer: requested 4194304, got 425984 UDP Failed to set send buffer: requested 1048576, got 425984
Это можно исправить, установив net.core.rmem_max=4194304 и net.core.wmem_max=1048576 с помощью sysctl.