Jump to content

# Transmission (Русский)

6 languages

- Deutsch
- English
- Español
- 日本語
- Українська
- 中文（简体）

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Transmission. Дата последней синхронизации: 2 июля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Transmission — это легкий и кроссплатформенный BitTorrent-клиент.

## Установка

Существует несколько вариантов установки Transmission:

- transmission-cli – демон с управлением через консоль и #Web интерфейс;
- transmission-gtk – графический интерфейс на базе GTK 4;
- transmission-qt – графический интерфейс на базе Qt 6.

Также доступны сторонние программы для управления демоном:

- tremcAUR или tremc-gitAUR – Curses-интерфейс для демона;
- stigAUR или stig-gitAUR – Curses-интерфейс для демона;
- transmission-remote-gtk – графический интерфейс для демона на базе GTK 3;
- transgui-qtAUR или transgui-gtkAUR – графический интерфейс для демона, написанный в Lazarus;
- trgui-ngAUR, trgui-ng-gitAUR или trgui-ng-binAUR – форк transgui, написанный в Tauri.

## Настройка GUI версий

Обе версии GUI, transmission-gtk и transmission-qt, могут функционировать автономно без отдельно запущенного демона.

Версии с графическим интерфейсом не требуют дополнительной настройки, но при желании пользователь может их изменить. По умолчанию настройки GUI-клиента хранятся в `~/.config/transmission`.

Руководство по параметрам конфигурации можно найти в Github-репозитории Transmission.

## Демон и управление через консоль

Команды transmission-cli:

transmission-daemon
  Запускает демон.
transmission-remote
  Вызывает интерфейс командной строки для демона, локального или удаленного, а затем вашу команду, которую он должен выполнить.
transmission-show
  Показывает информацию о торрент-файле.
transmission-create
  Создает новый торрент.
transmission-edit
  Добавляет, удаляет или заменяет 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

Примечание: Если вы хотите отредактировать конфигурацию вручную с помощью текстового редактора, сперва остановите демон, иначе он перезапишет свой файл конфигурации при закрытии.
Примечание: В качестве альтернативы можно отправить демону команду перезагрузить свою конфигурацию с помощью SIGHUP, выполнив `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). Вместо этого дайте отдельным пользователям/группам соответствующие разрешения на соответствующие каталоги.

Note: Если `/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`

Примечание: transmission-cli должен быть установлен.

### 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.

## Смотрите также

- Transmission wiki
- Headless Usage
- Transmission wiki on GitHub

Category:

- BitTorrent (Русский)