Tutoriales, noticias y soluciones informáticas

Transmission en una Raspberry Pi. La forma más inteligente de descargar Torrents.

En los anteriores tutoriales hemos cogido una Raspberry Pi y le hemos instalado en primer lugar Raspbian sin entorno gráfico (para hacer que funcionara a toda pastilla). A esa Raspberry luego le hemos instalado pi-hole para quitar la publicidad de todos los dispositivos de nuestra casa, le hemos instalado un servidor de VPN para acceder a los dispositivos desde fuera de casa y quitarnos también la publicidad cuando estamos en la calle, le hemos instalado aMule para descargarnos todo tipo de archivos… pero aún con todo esto instalado hemos comprobado que está muy muy ociosa y podemos usarla para más cosas a la vez. Así que hoy vamos a ver cómo podemos instalarle uno de los mejores programas de descargas de Torrents: Transmission.

Nota del autor: Tenéis en este otro artículo una forma alternativa para instalar transmission en la raspberry usando Docker. 

Este programa lo hemos podido disfrutar desde hace muchos años los usuarios de Mac OS y Linux, y no fue hasta hace muy poco que empezaron a crearse versiones para Windows del mismo. Puedo decir sin temor a equivocarme que se trata de uno de los mejores (Si no el mejor) programas para descargarse Torrents que existen. Gratis, libre, sin software malicioso y verdaderamente rápido en sus descargas.

Al igual que hicimos con el aMule, vamos a instalar en nuestra Raspberry una versión del programa que funcionará de forma parecida a un servidor, al que nos tendremos que conectar con un programa cliente. Eso nos permitirá dejar la Raspberry descargando todo el día y si necesitamos acceder al programa desde fuera de nuestro hogar, podemos hacerlo mediante la VPN que tenemos implementada en la raspberry. Todo son ventajas respecto a tenerlo funcionando directamente en nuestro ordenador. Empecemos pues.

1) Requisitos:

  • Como siempre, necesitamos tener una Raspberry operativa con Raspbian instalado, preferiblemente la versión «Raspbian Lite» sin entorno gráfico (para optimizar la velocidad del aparato). Si habéis seguido este tutorial, entonces ya tenéis el equipo preparado.
  • Si queremos poder gestionar las descargas desde fuera de casa, necesitaréis un VPN como el que montamos en la misma raspberry en este tutorial. Evidentemente este punto es voluntario. Si no tenéis un VPN montado todo os funcionará igual, pero no podréis gestionar las descargas fuera de vuestra casa. Tendréis que controlar el programa conectándoos directamente a la red de vuestra casa.
  • Al igual que ocurría en el tutorial del aMule, os recomiendo que la Raspberry use una tarjeta SD de gran tamaño (de 32 o 64 GB como mínimo). Así tendréis más espacio para descargar cosas y la raspberry tendrá más espacio libre para realizar las escrituras necesarias.

2) Instalación de Transmission en la raspberry

Empecemos la instalación. Como siempre, nos vamos al terminal de nuestra raspberry (en caso de que no tengamos entorno gráfico, tal y cómo hemos recomendado en el primer tutorial, debemos acceder a él por putty o por medio del terminal usando el comando ssh). Una vez dentro, vamos a teclear el siguiente comando:

sudo apt-get install transmission-daemon

Pulsamos «s» y luego «enter» y dejamos que comience la instalación.

Con esto, la instalación queda terminada. Que nadie me diga que ha sido difícil que le tiro el ratón a la cabeza.

3) Configuramos Transmission.

Nada mas instalarse, el servicio se enciende por si sólo, así que antes de nada lo vamos a parar con el siguiente comando.

sudo service transmission-daemon stop

Ahora que tenemos el servicio detenido, vamos a configurarlo. ¿Dónde? Pues si habéis seguido los anteriores tutoriales ya os imaginaréis que la configuración está dentro de la carpeta «etc», así que tecleamos el siguiente comando.

cd /etc

¿Y dónde dentro de esa carpeta? Pues en el directorio «transmission-daemon». Así que tecleamos lo siguiente:

cd transmission-daemon

Si miramos dentro de esa carpeta (con el comando «ls») sólo nos encontraremos un archivo «Readme» y un archivo llamado «settings.json». Efectivamente, el archivo que hay que editar es ese último, así que tecleamos esto para editarlo:

sudo nano settings.json

Vamos a cambiar algunas líneas. En primer lugar nos interesa cambiar el directorio al que van a ir las descargas que hagamos. En el tutorial de aMule habíamos creado una carpeta dentro de la carpeta «home» del usuario «pi». La ruta era ésta.

/home/pi/descargas

Esa carpeta la habíamos compartido en la red para poder acceder a ella de forma sencilla, así que vamos a aprovecharla para usarla también como carpeta de descargas del Transmission. Si no habéis seguido ese tutorial, os recomiendo que al menos leáis esa parte para tener todo bien configurado.

Al lío que me estoy yendo por las ramas. Estábamos editando el archivo settings.json para decirle al Transmission que todo lo que descargue lo deje en la carpeta que tenemos compartida. En ese archivo, Buscamos una línea que pone «download-dir» y la cambiamos por la siguiente:

"download-dir": "/home/pi/descargas",

Mucho ojo con los signos de puntuación. No quitéis la coma del final ni ninguna de las comillas.

También vamos a buscar una línea que pone

"incomplete-dir-enabled": false,

Y la cambiamos por esto:

"incomplete-dir-enabled": true,

Ahora haremos algo similar a lo que hicimos en el amule. Vamos a crear un usuario y una contraseña para poder acceder a nuestro Transmission desde otro ordenador, ya sea desde una página web o desde una aplicación propia. Vamos a buscar la línea que empieza por:

"rpc-password": 

y vamos a poner la contraseña con la que queramos acceder al Transmission. Elegid siempre una contraeña segura, que no hayáis usado en otras aplicaciones y que sea lo suficientemente complicada como para ponérselo difícil a quién la quiera averiguar. Yo voy a poner «ElSoftLibreMola1000», pero por favor, vosotros usad una contraseña distinta y segura. Voy a dejar la línea tal que así:

"rpc-password": "ElSoftLibreMola1000",

Un poco más abajo nos pregunta por el nombre de usuario y nos sugiere uno. Vamos a cambiarlo por un usuario o un nick nuestro. Yo voy a poner «ironman» como ejemplo, pero os ruego que pongáis un nombre de usuario diferente (y divertido, por favor).

"rpc-username": "ironman",

Ahora vamos a asignar un puerto para realizar las descargas (algo similar a lo que hicimos con aMule). Transmission por defecto usa el 51413, pero como no nos interesa ir por el puerto estandard (por si nuestro proveedor de internet capa el tráfico en ese puerto) vamos a cambiarlo por otro, por ejemplo el 51228 (pero podéis poner un número cualquiera entre el 49152 y el 65535). Para ello tenemos que buscar la línea que pone:

"peer-port": 51413,

Y cambiarla por esta otra

"peer-port": 51228,

… pero lo dicho: poned un número cualquiera entre ese rango.

Ahora debemos editar una línea más. Transmission por defecto bloquea todas las conexiones de cualquier ordenador que quiera conectarse con su interfaz, salvo que estén en una «lista blanca». A nosotros nos interesa poder acceder desde diferentes IP’s, así que vamos a anular esta configuración. Para ello vamos a buscar esta línea

"rpc-whitelist-enabled": true,

Y la vamos a cambiar por esta otra:

"rpc-whitelist-enabled": false,

Por último vamos a hacer otros dos cambios más. Al igual que pasó con el aMule, nos interesa limitar la velocidad de subida y bajada para no saturar nuestra conexión a internet y para no saturar el procesador de la propia Raspberry. Vamos a limitarla a 1900 Kb/Seg. de bajada y a 900 Kb/Seg. de subida. Habrá a quién le parezca poca velocidad. A mi, con una línea 100/10 me va genial así. Además así dejo el ancho de banda de mi hogar libre para otros menesteres, ya que de nada sirve poner aquí un montón de velocidad, y luego, cuando vayamos a ver un vídeo en una página de streaming, que el vídeo vaya a pedales. Vamos a empezar buscando en el archivo de configuración estas dos líneas:

"speed-limit-down": 100,
"speed-limit-down-enabled": false,

Y vamos a cambiarlas por estas otras:

"speed-limit-down": 1900,
"speed-limit-down-enabled": true,

Ahora vamos a modificar la velocidad de subida. Buscamos estas líneas:

"speed-limit-up": 100,
"speed-limit-up-enabled": false,

Y vamos a cambiarlas por estas otras.

"speed-limit-up": 900,
"speed-limit-up-enabled": true,

Una vez hecho esto, podemos volver a encender el servicio del Transmission con el siguiente comando:

sudo service transmission-daemon start

Con esto hemos terminado la configuración del programa desde el terminal. ¿A que no ha sido tan complicado?

4) Mapeo del puerto principal.

En el punto 3 hemos asignado un puerto para el correcto funcionamiento de este programa (en el ejemplo, asignamos el 51228). Necesitamos mapear ese puerto en nuestro router, es decir, que cualquier petición que venga de internet hacia ese puerto, se dirija únicamente a nuestra raspberry. Tendréis que acceder al panel de control de vuestro router y hacer el cambio. Cada router tiene un panel de control distinto y este cambio se hace de forma completamente diferente, así que debéis averiguar cómo se hace para vuestro modelo de router concreto. Yo voy a explicar cómo lo he hecho en el mío, que es un Time Capsule de Apple.

Para mapear ese puerto, debo entrar en el interfaz de configuración del Time Capsule y en el apartado «red», pulsar el botón «+».

En este caso, Transmission usa el puerto que queremos mapear tanto en TCP y en UDP, por lo que debo poner el puerto 51228 (o el que hayáis escogido vosotros) en todos los apartados de la configuración, que quedará de esta forma:

Éste es el único puerto que debemos mapear para Transmission, así que con esto que hemos hecho este punto queda finalizado.

5) Acceso por el interfaz web

Ahora ya deberíamos poder acceder a nuestro Transmission así que, desde un navegador de nuestro ordenador, vamos a acceder a la siguiente dirección (cambiad la IP por la de vuestra raspberry):

http://10.0.1.222:9091

El navegador os preguntará por un usuario y una contraseña de esta forma:

El usuario y la contraseña es la que le dimos en el apartado anterior. En nuestro caso eran «ironman» y «ElSoftLibreMola1000».

Con ese usuario y contraseña, ya podremos ver el interfaz web del transmission.

Esto está muy bien poder acceder desde un navegador, por ejemplo para gestionar nuestras descargas y ver su estado desde el móvil (si habéis hecho el tutorial para instalar un VPN a la raspberry podréis acceder a este interfaz desde el móvil fuera de vuestro hogar sin problemas), pero para añadir nuevas descargas y gestionarlas de forma completa vamos a echar de menos algo más potente. Así que vamos a instalar un cliente de Transmission en nuestro ordenador para poder usar Transmission como si lo tuviérais directamente instalado en el equipo.

6) Instalamos el cliente de escritorio de Transmission

En esta página podéis bajaros el cliente de Transmission para vuestro sistema operativo de escritorio (Windows, Mac y Linux). Escoged la versión más moderna de vuestro sistema e instaladla.

En cuanto instaléis el programa en vuestro equipo, os encontraréis con un interfaz similar a esto.

En esa primera pantalla tendréis que cubrir estos datos:

  • Remote host: La dirección IP de vuestra raspberry. En el ejemplo que estamos poniendo desde el primer tutorial, debemos poner la 10.0.1.222 (pero poned la IP que corresponda a vuestra raspberry, por supuesto).
  • Marcamos las casillas «Autentication required» y «Always auto-reconnect».
  • En «user name» ponemos el nombre de usuario que le hemos puesto a la raspberry en el paso 3. En este ejemplo hemos puesto «ironman», pero poned el que habéis generado en ese paso.
  • En «Password» pondremos la contraseña que hemos generado en el paso 3, así que yo voy a poner «ElSoftLibreMola1000», pero poned la que hayáis generado vosotros.
  • Pulsamos la tecla OK.

Ahora nos aparecerá una nueva ventana preguntándonos si queremos bajar una base de datos para geolocalizar las IP’s a las que nos vamos a conectar. Es indiferente para el funcionamiento, así que vamos a decirle que no.

Con esto, el programa ya estará listo para usar. Os recomiendo antes de empezar a descagar cosas revisar que la configuración que le hemos puesto a la raspberry se haya trasladado correctamente a este programa. En las opciones de transmission, en la pestaña «Descarga», comprobad que la carpeta de descargas sea la correcta.

En la pestaña «Red(WAN)», comprobamos que el puerto que hemos mapeado esté ahí.

Y en la pestaña «Ancho de banda» comprobamos que las velocidades indicadas sean las correctas. Recordad que subir demasiado estas velocidades hará que la raspberry consuma más recursos y puede que sufra más de lo que nos gustaría.

En caso de notar que hay algún parámetro desajustado, podéis ajustarlo directamente en esta interfaz, sin necesidad de tener que volver a ajustarlo a través del terminal.

Por cierto… para Android también existe una GUI para poder controlar nuestro Transmission ubicado en la raspberry, pero para mi es bastante más cómodo usarlo a través de un ordenador (y esto tomadlo como una opinión mía perfectamente discutible). Para dispositivos móviles de Apple (iPhone, iPads, iPods…) no existe ninguna GUI que permita controlar transmission en su tienda de aplicaciones (Apple no quiere que ese tipo de aplicaciones estén en su tienda), así que deberéis usar el cliente web en estos dispositivos.

Y con esto hemos acabado. Para descargarnos un archivo Torrent, ahora sólo tenemos que acudir a alguna web en la que ofrezcan este tipo de descargas, pulsar sobre la descarga del «Torrent» (o enlace magnético) y el sistema nos dejará abrirlo con nuestra recién instalada aplicación. Se descargará en la raspberry y luego podremos recuperarlo a través de la carpeta compartida que creamos en el tutorial del aMule.

En este ejemplo, hemos descargado un Torrent de la página de «Linux Lite» y el sistema operativo ya nos ofrece abrirlo con Transmission Remote GUI.

Quién nos iba a decir que podríamos sacarle tanto jugo a nuestra pequeña Raspberry ¿Verdad? Pues ¡¡No se vayan todavía!! ¡¡Aún hay más!! Con todo lo que le hemos instalado a la Raspberry aún sobra potencia para instalarle un servidor multimedia para poder transmitir películas o vídeos personales desde un disco conectado a la Raspberry hasta nuestros dispositivos (Smart TV’s, Apple TV’s, ChromeCasts, móviles, tablets, ordenadores…). En el próximo tutorial le instalaremos Plex Server a esta misma raspberry para realizar esta tarea, y aún nos sobrará potencia para alguna que otra diablura.

Share

7 comentarios

  1. Arnhak

    Hola, despues de hacer todo a mi no me funcionaba. Yo habia cambiado la carpeta de descargas a una unidad usb montada.
    Siempre que intentaba descargar transmision me daba permiso denegado. Siguiendo estos pasos consegui que funcionara:

    Entrar:
    sudo nano /etc/init.d/transmission-daemon
    y encontrar USER en la parte superior del archivo y cambiar a:
    USER=pi
    Luego necesitamos chown algunos archivos en nuestro alcance de permisos:
    sudo chown -R pi:pi /etc/transmission-daemon
    sudo chown -R pi:pi /etc/init.d/transmission-daemon
    sudo chown -R pi:pi /var/lib/transmission-daemon

    Y luego:

    sudo nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

    y encontrar user allí y cambiar a:
    user=pi

    Recarga de la unidad de servicio

    sudo systemctl daemon-reload

    Y finalmente necesitamos vincular nuestro archivo de configuración al directorio de inicio de pi y darle permisos:

    sudo mkdir -p /home/pi/.config/transmission-daemon/
    sudo ln -s /etc/transmission-daemon/settings.json /home/pi/.config/transmission-daemon/
    sudo chown -R pi:pi /home/pi/.config/transmission-daemon/

    Y luego start a transmision:

    sudo service transmission-daemon start

    • Antonio

      Buenas Intento hacer esto para quitar lo del permiso denegado y aun haciendo esto sigue igual. Ya no se que hacer

    • indigenica

      Le he dado mil vueltas a internet y esta es la única configuración correcta que he encontrado, muchas gracias!

  2. Samuel

    Hola,

    ¿Hay alguna manera de que las descargas vayan directamente a un disco en red? Tengo un disco compartido que está conectado al router y me gustaría que las descargas fuesen directamente a él.

    Saludos

  3. Mike

    Excelente tutorial, es una joya.
    P.d: ¿Cómo podemos «comprobar» los archivos que ya tenemos descargados?
    Puse una película con Ext2Fsd en la SD, desde el cliente GUI le doy a verificar y no la detecta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© 2024 Flopy.es

Tema por Anders NorenArriba ↑

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies