Transmission (Español)

From ArchWiki
Esta traducción de Transmission fue revisada el 2020-12-05. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Transmission es un cliente BitTorrent ligero y multiplataforma.

Instalación

Hay varios paquetes disponibles para instalar con Transmission:

Configurar la versión GUI

Ambas versiones GUI, transmission-gtk y transmission-qt, pueden funcionar de forma autónoma sin un demonio como back-end.

Las versiones GUI están configuradas para funcionar directamente, pero es posible que el usuario desee cambiar algunas de las configuraciones. La ruta predeterminada a los archivos de configuración GUI es ~/.config/transmission.

Se puede encontrar una guía de las opciones de configuración en el Github de Transmission.

Demonio Transmission y CLI

La órdenes para transmission-cli son:

transmission-daemon: inicia el demonio.
transmission-remote: invoca el CLI para el demonio, ya sea local o remoto, seguido de la orden que desea que ejecute el demonio.
transmission-show: devuelve información sobre un archivo torrent determinado.
transmission-create: crea un nuevo torrent.
transmission-edit: añade, elimina o reemplaza la URL de anuncio de un rastreador.
transmission-cli: (reemplazado en favor de transmission-remote) inicia una instancia local no demonizada de transmission, para descargar manualmente un torrent.
tremc: (requires tremc-gitAUR) inicia la interfaz curses para el demonio, ya sea local o remoto.

Iniciar y detener el demonio

El demonio Transmission se puede ejecutar:

  • Como el usuario transmission, iniciando/activando transmission.service mediante systemd. El usuario se puede cambiar como se explica en #Elegir un usuario.
  • Como su propio usuario, ejecutando bajo su nombre de usuario:
$ transmission-daemon

Al iniciar el demonio, se creará un archivo de configuración inicial. Véase #Configurar el demonio.

El demonio se puede detener con:

$ pkill -3 transmission-daemon

Una opción alternativa para detener Transmission es utilizar la orden transmission-remote:

$ transmission-remote --exit

Reducir el journal spam

Correr transmission-daemon puede dar lugar a muchas entradas journal no deseadas. La salida se puede filtrar iniciándolo con un pequeño script de envoltura. El siguiente ejemplo también proporciona algunas notificaciones:

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

Ejecutar solo mientras está conectado a la red

Netctl

Puede ser conveniente ejecutar Transmission solo en determinadas redes. La siguiente secuencia de órdenes verifica que la conexión esté en una lista de redes autorizadas y luego procede a iniciar transmission-daemon.

/etc/netctl/hooks/90-transmission.sh
#!/bin/bash

# Los SSID para los que activamos esto.
declare -A ssids=(
    ["network_1"]=y
    ["network_2"]=y
)

if [[ ${ssids[$SSID]} ]]; then
    case $ACTION in
        CONNECT|REESTABLISHED)
            # Necesito esperar, de lo contrario no parece vincularse a 9091.
            sleep 30
            systemctl start transmission
            ;;
        *)
            systemctl stop transmission
            ;;
    esac
fi

Wicd

Cree un script de inicio en la carpeta /etc/wicd/scripts/postconnect, y un script de detención en la carpeta /etc/wicd/scripts/predisconnect. Recuerde hacerlos ejecutables. Por ejemplo:

/etc/wicd/scripts/postconnect/transmission
#!/bin/bash

systemctl start transmission
/etc/wicd/scripts/predisconnect/transmission
#!/bin/bash

systemctl stop transmission

Elegir un usuario

Elija cómo quiere ejecutar transmission:

  • Como un usuario separado, transmission por defecto (recomendado para mayor seguridad).

Por defecto, transmission crea un usuario y un grupo transmission, con sus archivos de inicio en /var/lib/transmission/, y se ejecuta como este "usuario". Esta es una precaución de seguridad, así que transmission, y sus descargas, no tienen acceso a archivos fuera de /var/lib/transmission/. La configuración, el funcionamiento y el acceso a las descargas deben realizarse con privilegios de superusuario "root" (por ejemplo, utilizando sudo).

  • Bajo tu propio usuario.

Para configurar esto, anule el archivo de servicio proporcionado y especifique su nombre de usuario:

/etc/systemd/system/transmission.service.d/username.conf
[Service]
User=su_usuario

Configurar el demonio

Cree un archivo de configuración inicial iniciando el demonio.

  • Si ejecuta Transmission con el nombre de usuario Transmission, el archivo de configuración se ubicará en /var/lib/transmission/.config/transmission-daemon/settings.json.
  • Si ejecuta Transmission con su propio nombre de usuario, el archivo de configuración se ubicará en ~/.config/transmission-daemon/settings.json.

Uno puede personalizar el demonio utilizando un cliente Transmission o mediante la interfaz web incluida accesible a través de http://localhost:9091 en un navegador compatible.

Puede encontrar una guía de las opciones de configuración en el sitio web de Transmission: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files

Nota: Si desea editar la configuración manualmente con un editor de texto, primero detenga el demonio; de lo contrario, se sobrescribirá su archivo de configuración cuando se cierre.
Nota: Alternativamente, se puede indicar al demonio que vuelva a cargar su configuración con SIGHUP, ejecutando kill -s SIGHUP $(pidof transmission-daemon).

Una recomendación para aquellos que lo ejecutan bajo el nombre de usuario transmission es crear un directorio de descarga compartido, con los permisos correctos, para permitir el acceso tanto al usuario Transmission como a los usuarios del sistema, y ​​luego actualizar el archivo de configuración. en consecuencia. Por ejemplo:

# mkdir /mnt/data/torrents
# chown -R fachada:transmission /mnt/data/torrents
# chmod -R 775 /mnt/data/torrents

Ahora /mnt/data/torrents será accesible para el usuario del sistema fachada y para el grupo transmission al que pertenece el usuario transmission. No se recomienda hacer al directorio destino con permisos de lectura/escritura para todos (es decir, no haga chmod al directorio con 777). En su lugar, otorgue a los usuarios/grupos individuales los permisos adecuados para los directorios correspondientes.

Nota: Si /mnt/data/torrents está ubicado en un dispositivo extraíble, p.ej. con una entrada en /etc/fstab con la opción nofail, Transmission se quejará de que no puede encontrar sus archivos. Para remediar esto, puede añadir RequiresMountsFor=/mnt/data/torrents a /etc/systemd/system/transmission.service.d/transmission.conf en la sección [Unit].

Una alternativa es añadir su usuario al grupo transmission (#usermod -a -G transmission su_usuario) y luego modificar los permisos en los directorios /var/lib/transmission y /var/lib/transmission/Downloads para permitir el acceso de rwx a los miembros del grupo transmission.

Lista blanca de hosts

Si planea acceder al demonio Transmission a través de la red utilizando el nombre de host del servidor, debe añadir este nombre de host a rpc-host-whitelist en settings.json. De lo contrario, obtendrá un error "421 Misdirected Request" al acceder al servidor.

Si se conecta al demonio utilizando la dirección IP del servidor, esto no es necesario.

Directorio vigilado

Si desea Añadir automáticamente archivos .torrent desde una carpeta, pero encuentra que las opciones watch-dir y watch-dir-enabled establecidas en el archivo de configuración no funcionan, puede iniciar el demonio Transmission con la opción -c /ruta/al/directorio/vigilado.

Si está utilizando systemd, edite la unidad transmission.service como se describe en systemd (Español)#Modificar los archivos de unidad suministrados.

Activar IPv6

De forma predeterminada, el demonio solo escucha conexiones IPv4. Para escuchar también las conexiones IPv6, cambie la opción rpc-bind-address a "::" en settings.json.

Ejemplos CLI

Si desea eliminar todos los torrents finalizados, puede utilizar la orden siguiente con su propio nombre de usuario y contraseña:

# transmission-remote -n 'usuario:contraseña' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r

Siembra un torrent que ya se haya descargado:

# transmission-remote [HOST] --torrent=ejemplo.torrent -a ejemplo.torrent --verify --download-dir=/ruta/a/la/carpeta --start

Interfaz web

La forma GUI

Una vez que Transmission está instalado, puede configurar fácilmente la interfaz web. Todo lo que necesita hacer es clic en el menú Editar y seleccionar Preferencias. Haga clic en la pestaña Remoto y active Permitir acceso remoto.

Aquí, tiene la oportunidad de cambiar el puerto de escucha predeterminado de 9091.

Marque Usar autenticación y rellene un nombre de usuario y contraseña para que se pueda utilizar la autenticación.

Para aumentar la seguridad, puede restringir el acceso desde cualquier dirección IP activando Permitir solo estas direcciones IP.

Ahora está listo para iniciar la interfaz web haciendo clic en Abrir cliente web, que hace que su navegador web predeterminado lo abra, o llegando manualmente a http://DIRECCION_IP_DESTINO:PUERTO con cualquier navegador web compatible.

Si no ha cambiado el puerto de escucha, el predeterminado es 9091. En este caso, el enlace es http://localhost:9091.

Nota: Tenga en cuenta que transmission-cli debe estar instalado.

La forma CLI

No necesita una interfaz gráfica para configurar la interfaz web, el demonio ofrece las mismas opciones. Puede acceder a la interfaz web sin especificar ninguna opción. Véase #Iniciar y detener el demonio

No obstante, puede especificar todo lo que vea en la sección anterior:

$ transmission-daemon --auth --username arch --password linux --port 9091 --allowed "127.0.0.1"

es equivalente a

$ transmission-daemon -t -u arch -v linux -p 9091 -a "127.0.0.1"

Tema de interfaz web opcional

Si la interfaz de usuario predeterminada de la aplicación web parece obsoleta y menos elegante de lo esperado, intente utilizar este sencillo tema CSS:

https://git.eigenlab.org/sbiego/transmission-web-soft-theme

También hay un proyecto de reemplazo completo que puede coexistir con la interfaz de usuario predeterminada:

https://github.com/ronggang/transmission-web-control

Solución de problemas

No se puede acceder al demonio a través de la red

El demonio se inicia después de inicializar network.service. Sin embargo, si activa el servicio dhcpcd en lugar del servicio específico del dispositivo, como por ejemplo dhcpcd@enp1s0.service, puede suceder que Transmission se inicie demasiado pronto y no se pueda enlazar a la interfaz de red. Por lo tanto, la interfaz web es inalcanzable. Una posible solución es añadir la línea Requires al archivo de configuración de la unidad:

/etc/systemd/system/transmission.service.d/fixdep.conf
[Unit]
Requires=network.target

No se puede acceder a la interfaz web

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.

Incluso si utiliza la interfaz gráfica, aún necesita instalar transmission-cli para que la interfaz web funcione.

No se pudo configurar el búfer de envío/recepción

Transmission puede mostrar cualquiera de estos mensajes en el diario al inicio:

UDP Failed to set receive buffer: requested 4194304, got 425984
UDP Failed to set send buffer: requested 1048576, got 425984

Estos se pueden corregir configurando net.core.rmem_max=4194304 y net.core.wmem_max=1048576 con sysctl.

Véase también