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

Transmission
— це легкий BitTorrent клієнт, що працює на багатьох платформах.
Встановлення
Встановити
Transmission можна в декількох пакетах:
transmission-cli
– демон, з консольним, та
Веб інтерфейсом
.
transmission-gtk
– графічний інтерфейс на
GTK
3.
transmission-qt
– графічний інтерфейс на
Qt
5.
tremc
AUR
or
tremc-git
AUR
– псевдографічний консольний інтерфейс для демона.
stig
AUR
or
stig-git
AUR
– псевдографічний консольний інтерфейс для демона.
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-git
AUR
) запускає текстовий інтерфейс написаний на
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