Transmission-daemon
J.A.P. javier.debian.bb.ar@gmail.com
GNU/Linux Registered User # 389414 (http://counter.li.org)
Abstract
Este documento describe cómo configurar y poner en funcionamiento el demonio del cliente de torrents Transmission, como un usuario normal, y controlarlo a través de un navegadro WEB en forma local o remota - Plataforma: Debian GNU/Linux amd64 stretch "stable" - Fecha: 11/05/2018
Copyright (C) Javier A. Piendibene, 2005-2018. "Transmission" and this document are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For more details, on Debian GNU/Linux systems, see the file /usr/doc/copyright/GPL for the full license.
1. Introducción
Suelo instalar, reinstalar y cambiar de equipo en mi casa, y varias veces debí configurar Transmission para usarlo como un servicio, y suelo olvidarme de cómo lo hice, razón por la cual escribo esto.
Prefiero éste cliente de torrents a cualquier otro, porque, como dice Wikipedia, "Transmission es un cliente P2P liviano, gratuito y de código abierto para la red BitTorrent".
Liviano significa menos recursos, al poder utilizarse sin interfaz gráfica, y mayor control, dado que puede accederse al mismo en forma externa, sin necesidad de estar físicamente en la máquina donde estuviere corriendo.
2. El conjunto de aplicaciones Transmission
El conjunto de aplicaciones Transmission es variado, lo que nos permite utilizar más o menos características, según el entorno en que lo usemos.
Ellos son:
transmission-cli - Una colección de herramientas de línea de comando para transmission.
transmission-gtk - Un cliente BitTorrent que utiliza la interfaz GTK.
transmission-qt - Un cliente BitTorrent que utiliza la interfaz QT.
transmission-remote-cli - Un cliente BitTorrent que utiliza la interfaz curses para acceder al demonio.
transmission-daemon - Un demonio BitTorrent que utiliza una interfaz web.
Nos centraremos en este último.
Antes que me olvide, también hay una versión para MS-Windows.
3. Instalación, configuración y uso
3.1 Instalación
Para instalar el paquete transmission-daemon, haremos
~$ sudo apt-get install transmission-daemon --no-install-recommends
Debería instalar solamente los paquetes transmission-daemon, transmission-common y un par de librerías. Y puede que algún otro paquete marcado como dependencia.
Lo de no instalar la recomendación transmission-cli, obedece a que quiero mantenerlo "liviano". ¿Por qué esto es útil? Bueno, porque así puedo, por ejemplo, tener en el ático una computadora que algunos consideren obsoleta, encendida todo el día como servidor, dedicada a este tipo de tareas, sin entorno gráfico, administrada remotamente.
3.2. Configuración
3.2.1 Detener el demonio
La idea no es dejar corriendo transmission-daemon como viene de los repositorios, es personalizarlo para que funcione bajo un usuario específico.
¿Por qué esto?
Porque lo que se instala por defecto, lo hace con un usuario llamado "debian-transmission", y coloca todos sus archivos de configuración y descarga en /var/lib/transmission-daemon/.
~$ sudo cat /etc/passwd | grep transmission debian-transmission:x:103:105::/var/lib/transmission-daemon:/bin/false
Si tenemos una partición /home dedicada, y a la / (raíz) le hemos dejado una partición pequeña, sólo para el sistema, y dentro de ella se encuentra /var, nos damos cuenta que rápidamente se nos puede presentar el problema que /var crezca de tal manera que nos deje la partición sin espacio, debido a los archivos que se bajan.
Por lo que vamos a configurarlo con nuestro usuario, que lo voy a llamar "usd" (usuario del sistema Debian).
Para ello, debemos detener el demonio, dado que transmission sobre escribe las configuraciones cuando cierra; es decir, si tocamos algo mientras está corriendo, al cerrarlo, se pederán los cambios.
~$ sudo systemctl stop transmission-daemon
o el más prosaico
~$ sudo /etc/init.d/transmission-daemon stop
El primero es el más correcto para systemd, el segundo es el tradicional de sysvinit.
3.2.2. Crear las carpetas contenedoras
Vamos a crear un grupo de carpetas para guardar lo que se baje, y además, nos permita hacer otras cosas.
~$ mkdir ~/Transmission ~$ mkdir ~/Transmission/EnProceso ~$ mkdir ~/Transmission/Finalizado ~$ mkdir ~/Transmission/Torrents
~/Transmission/EnProceso contendrá los archivos incompletos, que el demonio esté descargando.
~/Transmission/Finalizado contendrá los archivos ya descargados por el demonio.
~/Transmission/Torrents nos permitirá tener una carpeta donde, con sólo copiar en ella un archivo xxx.torrent, se añadirá automáticamente a la cola de descarga.
3.2.3. Crear la carpeta de configuración
Vamos a crear la carpeta que contendrá la configuración de nuestro cliente.
~$ transmission-daemon ~$ killall -s 9 transmission-daemon
¿Qué hemos hecho? Hemos iniciado el demonio como usuario, no a nivel de sistema, y éste, al no tener su carpeta de configuración, la ha creado automáticamente en ~/.config/transmission-daemon, copiándola desde /etc/transmission-daemon. Con la segunda instrucción lo hemos detenido.
3.2.4. Modificar el archivo de configuración
Abrimos en nuestro editor de texto favorito el archivo ~/.config/transmission-daemon/settings.json, y modificamos los siguientes parámetros.
(...) "download-dir": "/home/usd/Transmission/Finalizado/", "incomplete-dir": "/home/usd/Transmission/EnProceso/", "incomplete-dir-enabled": true, "rpc-authentication-required": true, "rpc-host-whitelist-enabled": false, "rpc-password": "MiClaveMuySecreta", "rpc-username": "MIUsuarioTransmission", "rpc-whitelist-enabled": false, "watch-dir": "/home/usd/Transmission/Torrents/", "watch-dir-enabled": true, (...)
Nota 1: Si añadimos líneas, todas terminan con coma (,), excepto la última. Si no lo hacen, el demonio tendrá un "error de sintaxis" al arranque.
Nota 2: Utilizar una ruta absoluta para los directorios. Si se usa una ruta mediante enlaces, a veces, falla.
"download-dir", "incomplete-dir" y "watch-dir" se refieren a las carpetas creadas en el punto 3.2.2. Debe indicarse la ruta en forma explícita.
"rpc-authentication-required" habilita el uso de una clave de usuario para acceder al demonio. Este usuario por defecto es "transmission", el cual lo he cambiado por otro. La clave de acceso es la indicada en "rpc-password" como "?MiClaveMuySecreta", la cual, cuando corramos por primera vez el demonio, automáticamente la cifrará a una cadena similar a {82e9f1136512cf882904ce41845b7b9dde3b4213UAdxdG1F.
"watch-dir" y "watch-dir-enabled" deberá ser agregado, dado que no se configura por defecto.
"rpc-host-whitelist-enabled" y "rpc-whitelist-enabled" se colocan en "false" para permitir un acceso desde cualquier máquina, aún desde internet, si el enrutador tiene los puertos de acceso abiertos.
Si queremos acceder al demonio desde máquinas específica, deberemos configurar las estas líneas.
"rpc-host-whitelist": "*.foo.org,example.com", "rpc-host-whitelist-enabled": true, "rpc-whitelist": "127.0.0.1,192.168.0.*", "rpc-whitelist-enabled": true,
"rpc-host-whitelist" y "rpc-host-whitelist-enabled" permiten listar máquinas autorizadas por nombre de host.
"rpc-whitelist" y "rpc-whitelist-enabled" permiten listar máquinas autorizadas por dirección IP.
Si queremos acceder desde internet y tenemos un enrutador en casa, en el mismo debemos abrir el puerto 9091 y direccionarlo a la máquina correspondiente. Si por seguridad queremos cambiar el puerto, debemos modificar la línea "rpc-port" por el que corresponda.
"rpc-port" también debe modificarse si en un mismo equipo hay más de un usuario corriendo distintas instancias de transmission-daemon, asignando uno distinto para cada cual.
3.2.4. Modificar los archivos de control
Por defecto, al iniciar el sistema, el demonio utiliza el usuario debian-transmission.
Para ello, como root, modificaremos dos archivos:
/etc/init.d/transmission-daemon: Reemplazar
USER=debian-transmission por USER=usd
https://forum.transmissionbt.com/viewtopic.php?t=12555
/lib/systemd/system/transmission-daemon.service: Reemplazar
User=debian-transmission por User=usd
Luego, para que el sistema tome los cambios, ejecutar:
~$ sudo systemctl daemon-reload
NOTA IMPORTANTE: La modificación de /lib/systemd/system/transmission-daemon.service debe haerse CADA VEZ que transmission se actualiza.
3.2.5. Iniciar el demonio
Hay tres formas:
La correcta: $ sudo systemctl start transmission-daemon
La antigua: $ sudo /etc/init.d/transmission-daemon start
La del "bestia": Apagar y prender el equipo.
3.2.6. Acceder desde un navegador
Recuerda cuál era ?MiUsuarioTransmission y ?MiClaveMuySecreta, pues el navegador te la pedirá.
En modo local, abre tu navegador favorito, e ingresa la dirección localhost:9091.
En modo remoto, abre un navegador e ingresa la dirección NombreDelHost:9091, o xxx.xxx.xxx.xxx:9091.
?NombreDelHost si tu máquina tiene un nombre asociado que esté registado en un DNS al que tengas accesos, como ser una intranet.
xxx.xxx.xxx.xxx es la dirección IP de la máquina, si no hay un DNS que la registre.
Cuando abras la página, te pedirá el nombre de usuario y contraseña que has definido en 3.2.4.
3.3. Agregar múltiples rastreadores a un torrent
Una de las limitaciones de Transmission es la posibilidad de agregar múltiples rastreadores a un torrent; sólo se pueden agregar de a uno. Algunas veces, si estamos bajando un torrent muy "raro", es conveniente agregar algunos más; algunas decenas más incluso, y hacerlo de a uno, es engorroso.
Para evitar esto, existe en GitHub una interfaz para navegadores llamada Shift.
Vamos a instalarla.
3.3.1. Descargando Shift
Instalamos el paquete git
~$ sudo apt install git
Clonamos la interfaz Shift en la carpeta del usuario usd de transmission-deamon
~$ cd ~/.config/transmission-daemon ~/.config/transmission-daemon$ git clone https://github.com/killemov/Shift.git
Esto nos va a crear una carpeta llamada ~/.config/transmission-daemon/Shift
3.3.2. Configurando el sistema para Shift
Nuevamente, como root editamos el archivo /lib/systemd/system/transmission-daemon.service, y agregamos la siguiente línea al final del bloque [Service]:
Environment=TRANSMISSION_WEB_HOME=/home/usd/.config/transmission-daemon/Shift
Recordar que usd es el usuario bajo el que se ejecuta transmission-deamon.
Recargamos el demonio:
~$ sudo systemctl daemon-reload ~$ sudo systemctl restart transmission-daemon
3.3.3. Acceder a Shift
Abrimos un navegador compatible, preferentemente Firefox, y accedemos a la dirección indicada en el punto 3.2.6.
Allí, verás una nueva interfaz de Transmission.
Picamos con el botón izquierdo del ratón en el pequeño círculo que está a la izquierda del torrent de interés, y seleccionamos la opción "Details".
En la barra de opciones superior, picamos el botón "Trackers".
Pegamos en el último cuadro en blanco que aparece en la lista de rastreadores, TODOS los tracker que deseamos agregar, los cuales, deberemos haberlos copiado previamente de algún sitio como puede ser Torrent Tracker List.
Picamos con el botón izquierdo del ratón en el pequeño círculo que está a la izquierda del cuadro que acabamos de rellenar, y seleccionamos la opción "Add".
Se habrán añadido la lista de rastreadores en bulto ("bulk").
4. Enlaces
Official Transmission BitTorrent client repository
FreedomBox/Manual/Transmission