Transmission (Українська) - ArchWiki

Jump to content
From ArchWiki

Transmission — це легкий BitTorrent клієнт, що працює на багатьох платформах.

## Встановлення

Встановити Transmission можна в декількох пакетах:

- transmission-cli – демон, з консольним, та Веб інтерфейсом.
- transmission-gtk – графічний інтерфейс на GTK 3.
- transmission-qt – графічний інтерфейс на Qt 5.
- tremcAUR or tremc-gitAUR – псевдографічний консольний інтерфейс для демона.
- stigAUR or stig-gitAUR – псевдографічний консольний інтерфейс для демона.
- transmission-remote-gtk – графічний інтерфейс для демона на GTK.

## Налагодження графічного варіанту

Обидва графічних варіанти: transmission-gtk та transmission-qt, можуть працювати самостійно, без запущеного демона. Ці програми налаштовані так, щоб нормально працювати з самого початку, але користувачі мають змогу змінити деякі характеристики. В нормі, файли налаштувань знаходяться в `~/.config/transmission`.

Дізнатись як правильно редагувати файл налаштувань можна на сторінці Transmission в Github.

## Демон Transmission та текстовий інтерфейс

transmission-cli складається з команд:

  transmission-daemon: запускає демона.
  transmission-remote: викликає командний рядок для локального або віддаленого демона. Тут ви можете вказати, яку команду повинен виконати демон.
  transmission-show: виводить опис обраного торент файлу.
  transmission-create: створює новий торент.
  transmission-edit: додає, видаляє або заміняє a адресу оголошення трекера (Tracker Announce URL).
  transmission-cli: (Застарілий. Користуйтесь transmission-remote) запускає transmission без демона, для ручного завантаження торентів.
  tremc: (Потребує tremc-gitAUR) запускає текстовий інтерфейс написаний на curses. Працює як з локальними, так і з віддаленими демонами.

### Запуск і зупинка демона

Демона transmission можна запустити:

- Як користувача під ім'ям transmission, увімкнувши `transmission.service`. Користувача можна замінити, як сказано у розділі #Вибір користувача.
- Від вашого імені, запустивши команду:

      $ transmission-daemon

Почавши роботу, демон створить початковий файл налаштувань. Дивіться #Налагодження демона.

Демона можна зупинити командою:

    $ pkill -3 transmission-daemon

Зупинити Transmission можна також командою:

    $ 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 лише в деяких мережах. Наведений код перевіряє чи комп'ютер підключений до мережі з дозволеного списку і лише тоді запускає transmission-daemon.

    /etc/netctl/hooks/90-transmission.sh

    #!/bin/bash

    # SSID дозволених мереж.
    declare -A ssids=(
        ["network_1"]=y
        ["network_2"]=y
    )

    if [[ ${ssids[$SSID]} ]]; then
        case $ACTION in
            CONNECT|REESTABLISHED)
                # Потрібно почекати, інакше не займає 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).

- Від вашого власного імені.

Щоб це зробити, перезапишіть файл сервісу, та вкажіть ваше власне ім'я:

    /etc/systemd/system/transmission.service.d/username.conf

    [Service]
    User=ім'я вашого користувача

### Налагодження демона

Створіть початковий файл налаштувань запустивши демона.

- Якщо запустили як користувача `transmission`: файлом налаштувань буде `/var/lib/transmission/.config/transmission-daemon/settings.json`.

- Якщо запустили від власного імені: файл матиме назву `~/.config/transmission-daemon/settings.json`.

Налагодити демона можна або використовуючи клієнта Transmission, або веб інтерфейс, що доступний за адресою http://localhost:9091 в браузері.

На сайті Transmission є стаття про його налагодження: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files

Примітка: Якщо вам хочеться редагувати файл вручну, спершу зупиніть демона. Бо він перезаписує файл, коли зупиняється.
Примітка: Або ж, можна заставити демона перепрочитати свої налаштування з 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). Натомість, дайте окремим користувачам/групам правильні дозволи до правильних директорій.

Примітка: Якщо така `/mnt/data/torrents` знаходиться на зовнішньому диску, тобто, на диску зі списку `/etc/fstab` з параметром `nofail`, Transmission поскаржиться, що не може знайти файл. Щоб виправити це, додайте `RequiresMountsFor=/mnt/data/torrents` до розділу `[Unit]` файлу `/etc/systemd/system/transmission.service.d/transmission.conf`.

Або ж, додайте користувача до групи `transmission` (`#usermod -a -G transmission ваше_ім'я`) та змініть дозволи до тек `/var/lib/transmission` та `/var/lib/transmission/Downloads` так, щоб члени групи `transmission` мали повний доступ до них.

#### Довірені хости

Якщо ви бажаєте звертатись до демона Transmission по мережі використовуючи назву хоста сервера, то вам варто додати цю назву до `rpc-host-whitelist` у `settings.json`. Без цього, ви отримаєте помилку "421 Misdirected Request" коли спробуєте підключитись до сервера.

Цього не потрібно робити, якщо ви підключаєтесь до сервера демона по IP адресі.

#### Тека під наглядом

Якщо ви хочете Щоб .torrent файли із теки додавались автоматично, але параметри `watch-dir` `watch-dir-enabled` не працюють, то спробуйте запустити transmission з ключем `-c /шлях/до/бажаної/теки`.

Якщо ви користуєтесь systemd, поправте `transmission.service` як описано у статті systemd#Editing provided units.

#### Увімкнути IPv6

В нормі, до демона можна підключитись лише через IPv4. Щоб він слухав і IPv6, відкрийте файл `settings.json` та замініть значення параметра `rpc-bind-address` на `"::"`.

#### Приклади команд

Якщо вам потрібно прибрати всі завершені торенти, скористайтесь цією командою з вашими ім'ям і паролем:

    # transmission-remote -n 'ім'я:пароль' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r

Роздавати вже скачані торенти:

    # transmission-remote [HOST] --torrent=example.torrent -a example.torrent --verify --download-dir=/шлях/до/теки --start

## Доступ до веб інтерфейсу

### Через графічний інтерфейс

Як тільки ви встановите Transmission , то зможете з легкістю відкрити веб інтерфейс. Просто клацніть по меню edit та виберіть preferences. Перейдіть на вкладку Remote та увімкніть Allow remote access.

Тут же ви можете змінити порт, який займає Transission з 9091 на інший.

Перевірте Use authentication введіть ім'я й пароль щоб мати змогу авторизуватись.

Буде безпечніше, якщо ви забороните доступ з більшости IP адрес, увімкнувши Only allow these IP addresses.

Тепер, ви маєте змогу відкрити веб інтерфейс. Клацніть на Open web client щоб відкрити браузер. Або, самотужки, напишіть в браузері адресу `http://IP_АДРЕСА:ПОРТ`

Якщо ви не міняли порт, то він буде 9091: вам треба буде перейти за посиланням `http://localhost:9091`

Примітка: Не забувайте, що вам потрібно встановити transmission-cli

### Через командний рядок

Ви не зобов'язані мати графічний варіант Transmission щоб мати веб інтерфейс, демон теж його має. Ви можете відкрити його не докладаючи ніяких додаткових зусиль. Прочитайте розділ #Запуск і зупинка демона

Та все ж, ви можете задати все згадане в попередньому розділі:

    $ 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"

### Теми

Якщо веб інтерфейс здається вам застарілим та негарним, спробуйте цю простеньку тему.

А https://github.com/ronggang/transmission-web-control — це повна заміна стандартного інтерфейсу, яку можна використовувати обабіч із ним.

## Вирішення проблем

### Cannot access the daemon over the network

The daemon is started after `network.service` was initialised. However, if you enable the service `dhcpcd` as opposed to the device-specific service, such as `dhcpcd@enp1s0.service` for example, it may happen that Transmission is started too early and cannot bind to the network interface. Thus, the web interface is unreachable. A possible solution is to add the `Requires` line to the unit's configuration file:

    /etc/systemd/system/transmission.service.d/fixdep.conf

    [Unit]
    Requires=network.target

### Не відкривається веб інтерфейс

    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.

### Не виходить встановити буфер прийому/відправки

Іноді, 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 вікі
- Використання без інтерфейсу
- Transmission вікі на GitHub

Category:

- BitTorrent (Українська)