Transmission (Українська)
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
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 щоб мати веб інтерфейс, демон теж його має. Ви можете відкрити його не докладаючи ніяких додаткових зусиль. Прочитайте розділ #Запуск і зупинка демона
Та все ж, ви можете задати все згадане в попередньому розділі:
$ 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.