Transmission (Русский)
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.