Transmission-daemon es la versión de servidor del cliente de BitTorrent Transmission. A diferencia de la versión de escritorio con interfaz gráfica, transmission-daemon
no tiene una interfaz visual propia y se ejecuta en segundo plano como un servicio o demonio. transmission-daemon
es el «motor» de Transmission, y para interactuar con él, se usa una interfaz de control remoto. Puedes controlarlo a través de una interfaz web, un cliente de línea de comandos llamado transmission-remote
, o aplicaciones móviles y de escritorio que se conectan a él.
La versión que viene con Debian 12 es la 3.0.0. Aunque ya ha salido Debian 13, me ha soprendido que esta viene con la versión 4.1.0-beta.2. ¿Software Beta en una distribucion estable?. Me lo creo porque lo he visto.
Instala transmission-daemon
Comenzamos instalando el demonio de transmission, así:
sudo apt-get install transmission-daemon
Backup
Antes de editar cualquier archivo de configuración, es conveniente hacer una copia de seguridad. El archivo de configuración lo encontramos en la ruta /etc/transmission-daemon/settings.json
Y este es, el comando que ejecutaremos para hacer la copia:
sudo cp /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings.json.bak
Configuración
Este archivo de configuración, no puede ser modificado hasta que el servicio se haya detenido.
sudo systemctl stop transmission-daemon
Solo con el servicio inactivo, podemos modificar las variables de su configuración y el comando que nos llevará a editarlo es:
sudo nano /etc/transmission-daemon/settings.json
Se abrirá el archivo de configuración. Voy a subrayar en amarillo, los parámetros esenciales para comenzar a funcionar y en verde para una ajustes recomendados.
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/home/saltimbanki/Torrent/downloads",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/home/saltimbanki/Torrent/Incompleto",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 52513,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": true,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-host-whitelist": "",
"rpc-host-whitelist-enabled": true,
"rpc-password": "{4ekd6q42960doew46f8edboea2e19f7a76ea783faCmCzjes",
"rpc-port": 29091,
"rpc-url": "/transmission/",
"rpc-username": "saltimbanki",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": false,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}
Los parámetros más importantes que debes modificar en el archivo de configuración de Transmission son los que controlan la seguridad, las rutas de descarga y los límites de velocidad.
- Configuración de Seguridad y Acceso
*rpc-authentication-required
: Si su valor estrue
, la interfaz web de Transmission estará protegida con autenticación. Los usuarios deberán introducir las credenciales definidas en los parámetros"rpc-username"
y"rpc-password"
para poder acceder y controlar el cliente de torrent. Si su valor esfalse
, cualquiera que conozca la dirección IP y el puerto de tu servidor de Transmission podrá acceder a la interfaz web sin necesidad de credenciales. Esto es una configuración insegura que se recomienda evitar, especialmente si vas a habilitar el acceso desde fuera de tu red local.
*rpc-username
yrpc-password
: Estos definen el nombre de usuario y la contraseña para acceder a la interfaz web de Transmission. Si cambias la contraseña en texto plano, el demonio la cifrará automáticamente la próxima vez que se inicie.
*rpc-whitelist-enabled
: Si este parámetro estrue
, solo las direcciones IP listadas en el siguiente parámetro (rpc-whitelist
) podrán conectarse. Por defecto, estrue
, pero nosotros lo necesitamos enfalse
, ya que lo usaremos para entrar desde fuera de la red.
*port-forwarding-enabled
: Si está configurado entrue
, Transmission intentará automáticamente abrir un puerto en tu router para optimizar las conexiones de entrada. Esto es necesario para un buen rendimiento de descarga y siembra. Debes tener UPNP desactivado en el router, de lo contrario la puedes dejar enfalse
.
*peer-port
: Es el puerto TCP/UDP que utiliza Transmission (y cualquier cliente de BitTorrent) para conectarse a otros clientes (o «peers»). Se recomida cambiar a cualquier otro de tu elección.
*rcp-port
: Es el puerto TCP que Transmission utiliza para su Interfaz de Control Remoto. Por defecto, es el puerto 9091. Cámbialo por otro de tu elección. - Rutas y Descargas
*download-dir
: Esta es la ruta principal donde se guardarán los archivos una vez que la descarga esté completa. Puedes cambiarla a una ubicación más conveniente, como un disco duro externo. Asegúrate de que el usuariodebian-transmission
(o el usuario que ejecute el servicio) tenga permisos de escritura en esa carpeta.
*incomplete-dir
: Es la ruta temporal, donde se guardan loa archivos que están en proceso de descarga. Esto es útil para mantener organizada la carpeta de descargas y evitar que se mezclen con archivos incompletos.
*incomplete-dir-enabled
: Si lo habilitas (true
), Transmission guardará los archivos a medio descargar en una carpeta separada. - Límites de velocidad y Cola
*speed-limit-down
yspeed-limit-up
: Estos parámetros establecen los límites de velocidad de descarga y subida en kilobytes por segundo (KB/s) para todos los torrents.
*speed-limit-down-enabled
yspeed-limit-up-enabled
: Si los pones entrue
, los límites de velocidad globales se activarán.
*download-queue-size
: Limita el número de torrents que se pueden descargar simultáneamente. Esto es útil para no sobrecargar la conexión.
*ratio-limit
yratio-limit-enabled
: Permite que los torrents se detengan automáticamente cuando alcanzan una relación de subida/bajada específica. Por ejemplo, si elratio-limit
es2
y está habilitado, el torrent se detendrá después de haber subido el doble de lo que descargó.
En cuanto a la contraseña: Cuando el servicio de Transmission se inicie, leerá la contraseña en texto plano que has escrito, la encriptará internamente y la guardará como un hash en el archivo
settings.json
al cerrarse. De esta manera, no necesitas generar el hash manualmente.En cuando a los puertos: No olvides abrir los puertos
peer-port
yrcp-port
de router
Preparando a systemd
Ahora systemd
será el que tome el control del demonio.
Recuerda que continuamos con el servicio parado
Editamos el servicio así.
sudo systemctl edit transmission-daemon.service
la salida de este comando, nos devuelve lo siguiente:
### Editing /etc/systemd/system/transmission-daemon.service.d/override.conf
2 ### Anything between here and the comment below will become the new contents of the file
3
4 ### Lines below this comment will be discarded
5
6 ### /lib/systemd/system/transmission-daemon.service
7 # [Unit]
8 # Description=Transmission BitTorrent Daemon
9 # After=network.target
10 #
11 # [Service]
12 # User=debian-transmission
13 # Type=notify
14 # ExecStart=/usr/bin/transmission-daemon -f --log-error
15 # ExecStop=/bin/kill -s STOP $MAINPID
16 # ExecReload=/bin/kill -s HUP $MAINPID
17 # NoNewPrivileges=true
18 # [Install]
19 #
20 # WantedBy=multi-user.target
21
Debes de saber, que este archivo, es editable solo entre la línea 2 y 4, todo lo que se escriba por debajo de la línea 4 no será tenido en cuenta, tal y como dice en la línea 4 (
Lines below this comment will be discarded
)
A partir de la línea 3 vamos a escribir lo siguiente:
[Unit]
5 Description=Description=Transmission BitTorrent Daemon
6 After=network.target network-online.target
7 Wants=network-online.target
8
9
10 [Service]
11 User=saltimbanki
12 Group=saltimbanki
13 ExecStart=
14 ExecStart=/usr/bin/transmission-daemon -f --log-error -g /etc/transmission-daemon/
Cambia User y Group por los tuyos respectivamente.
Guarda con Crtl + o
y sal del editor presionando Ctrl + x
Reinicia el servicio.
sudo systemctl restart transmission-daemon
Te dejo como queda finalmente una vez editado. (sombrado el nuevo texto)
1 ### Editing /etc/systemd/system/transmission-daemon.service.d/override.conf
2 ### Anything between here and the comment below will become the new contents of the file
3
4 [Unit]
5 Description=Description=Transmission BitTorrent Daemon
6 After=network.target network-online.target
7 Wants=network-online.target
8
9
10 [Service]
11 User=saltimbanki
12 Group=saltimbanki
13 ExecStart=
14 ExecStart=/usr/bin/transmission-daemon -f --log-error -g /etc/transmission-daemon/
15
16 ### Lines below this comment will be discarded
17
18 ### /lib/systemd/system/transmission-daemon.service
19 # [Unit]
20 # Description=Transmission BitTorrent Daemon
21 # After=network.target
22 #
23 # [Service]
24 # User=debian-transmission
25 # Type=notify
26 # ExecStart=/usr/bin/transmission-daemon -f --log-error
27 # ExecStop=/bin/kill -s STOP $MAINPID
28 # ExecReload=/bin/kill -s HUP $MAINPID
29 # NoNewPrivileges=true
30 #
31 # [Install]
32 # WantedBy=multi-user.target
33
Establecer permisos.
No sé como ni por qué , pero los desarradores, tuvieron la genial idea de que transmission-daemon corriese bajo el usuario debian-transmission
. Nosotros en systemd lo haremos como nuestro usuario, en mi caso como saltimbanki
. La carpeta /etc/transmission-daemon/
y sus archivos, incluyendo settings.json
, están, por defecto, en propiedad del usuario debian-transmission
, lo que crea un conflicto de permisos.
Entonces, cambiaremos la propiedad de la carpeta /etc/transmission-daemon/
y de todos los archivos contenidos en ella.
sudo chown -R saltimbanki:saltimbanki /etc/transmission-daemon
Si listas los permisos del directorio transmission-daemon, verás que ahora somos los propietarios
ls -l /etc/transmission-daemon/
total 24
drwxr-sr-x 2 saltimbanki saltimbanki 4096 sep 1 09:34 blocklists
-rw-r--r-- 1 saltimbanki saltimbanki 303 dic 19 2021 README.json
drwxr-sr-x 2 saltimbanki saltimbanki 4096 sep 1 09:34 resume
-rw------- 1 saltimbanki saltimbanki 2375 sep 1 09:34 settings.json
-rw------- 1 saltimbanki saltimbanki 2389 ago 31 10:37 settings.json.bak
drwxr-sr-x 2 saltimbanki saltimbanki 4096 sep 1 09:34 torrents
El archivo settings.json tambien está presente en la ruta /var/lib/transmission-daemon/info
y se actualiza cuando modificamos el archivo principal, por lo que es mejor desactivarlo para evitar cualquier conflicto.
sudo mv /var/lib/transmission-daemon/info/settings.json /var/lib/transmission-daemon/info/settings.json.bak
De esta forma, obligas al demonio a usar el archivo correcto en /etc/transmission-daemon/settings.json
Acceso remoto.
Acceso navegador.
Se puede acceder remotamente desde cualquier navegador, ya sea PC, tablet, teléfono móvil. Tan solo necesitas saber la ruta y el puerto, que debería de estar abierto en el router.
Como voy a acceder desde mi propio equipo, en un navegador escribiré http://localhost:29091

Introduce el usuario y la contraseña que creaste.

Acceso APP android.
Existe una aplicación para android, que te permite configurar tu servidor torrent y así decargar tus archivos allá donde estés.
La aplicación se llama Remote for Transmission, desarrollada por jgalat. La puedes descargar desde aquí.
Tambien había en Play Store una aplicacion llamada Transmission Remote, la cual ha desaperecido de la tienda de Google, pero que puedes descargar he instalar desde aquí.

La primera parte del menú Connection
, en NAME
, deberás darle un nombre culquiera a tu servidor, tambien en HOST /IP ADDRES
introduce la ruta al servidor y en PORT
el puerto elegido. Tambien deberás activar la casilla AUTHENTICATION
, para que se activen las casillas de USERNAME
y PASSWORD

Continuando mas abajo, introduciremos el USERNAME
y PASSWORD
y haremos un test connection para ver que todo a salido bien. Si todo bien, pulsa save

Una vez dentro puedes añadir cualquier torrent desde tu teléfno, para que se añada a tu equipo de casa y comience a descargar.

Cuando las descargas terminan, la barra de progreso quedará al 100.0% y se tornará en color verde.
Cómo generar/modifcar la contraseña.
En el caso de que debas cambiar la contraseña, estos son los paso que debes seguir para hacerlo.
- Detén el servicio de Transmission antes de editar el archivo de configuración, ya que Transmission sobrescribe el archivo con sus ajustes al apagarse.
sudo systemctl stop transmission-daemon
- Edita el archivo de configuración settings.json
sudo nano /etc/transmission-daemon/settings.json
- Inserta la contraseña en texto plano, busca la línea «rpc-password» y cambia su valor por la contraseña que deseas usar, entre comillas.
Por ejemplo: «rpc-password": "mi_nueva_contraseña_secreta",
Asegúrate de que"rpc-authentication-required"
esté establecido entrue
. - Guarda con Crtl + o y sal del editor presionando Ctrl+X.
- Inicia el servicio de Transmission:
sudo systemctl start transmission-daemon
- (Opcional) Verifica el cambio. Puedes detener el servicio nuevamente y abrir el archivo settings.json para ver que la contraseña se ha transformado en un hash encriptado.
sudo systemctl stop transmission-daemon
Ahora vuelve a comprobarsudo nano /etc/transmission-daemon/settings.json
Verás que la línea ahora contiene un hash largo, similar a esto: «rpc-password": "{hash_encriptado_automáticamente}",
Nota, cuidado si usas la Ñ en tu password, te dará más problemas que un impago a Hacienda.