Descargar torrents desde el router con OpenWRT

por | 2 Noviembre, 2016

Hoy voy a comentarles cómo configuré mi router TP-Link WDR4300 con OpenWRT para utilizarlo como gestor de descargas torrent, conectándole un disco duro externo y utilizando el software Transmission.

Lo cierto es que llevo un tiempo dándole vueltas a la posibilidad de comprarme un NAS (o quizás una Raspberry Pi), no tanto por su posibilidad de almacenar grandes cantidades de archivos en red ya que de momento con mi PC con discos de 1TB en RAID y respaldos periódicos a discos externos no me hace tanta falta, sino por el “ecosistema” de aplicaciones que suelen traer los NAS de marcas como Synology, QNAP o ASUSTOR. Estos NAS traen aplicaciones para sincronizar calendarios/contactos con teléfonos móviles, acceso VPN, descargas de torrents, gestión de respaldos, etc. las cuales sí me resultan interesantes.

Pero el tiempo pasa y aún no he comprado un NAS, y lo cierto es que últimamente he estado descargando torrents con regularidad desde la PC, para lo cual la dejo encendida y no me supone un gran problema más allá del gasto energético, pero estas cosas siempre se pueden optimizar. Mi router principal en casa desde hace ya tiempo es un TP-Link WDR4300, del cual en su momento comenté aquí cómo le instalé OpenWRT, y también le agregué un pendrive en uno de sus 2 puertos USB para disponer de mayor espacio para almacenar software, dejando el otro libre. También tenía por ahí un disco duro de notebook de 120GB en un gabinete externo que lo adapta a USB2.0 y no estaba usando. Entonces considerando esto me dispuse a reutilizar este disco conectándolo al router y compartiéndolo en la red, no es lo mismo que un NAS con software específico pero como “disco conectado” va bien.

tdr4300_exthdd

TP-Link WDR4300 con mi viejo disco duro externo conectado.

¿Qué necesitamos?

Personalmente utilicé el router antes mencionado con OpenWRT 15.05 “Chaos Chalmer”, aunque debe servir cualquier router con OpenWRT instalado en sus versiones “Attitude Adjustment” o “Barrier Breaker” y uno o más puertos USB disponibles (la memoria interna que traen los routers apenas suele ser suficiente para instalar el software que necesitamos, descargar algo allí es prácticamente imposible).

Para instalar Transmission, el software para descargar torrents, vamos a necesitar entre 3 y 4MB disponibles. Si vas a utilizar un disco duro o pendrive conectado al USB te recomiendo darte una vuelta por acá, ahí explico cómo utilizarlo en lugar de la raíz del sistema, de modo que tengas todo el espacio disponible para instalar software y también descargar los archivos.

Como paso previo, la idea es tener creado un directorio “/media” en el router con suficiente espacio para descargar los torrents e idealmente con permisos 775. Para esto puedes usar el artículo que mencioné anteriormente, y quizás debas tener unos mínimos conocimientos de cómo manejarte en GNU/Linux y acceder por SSH al router. Para lo demás trataré de moverme en el entorno gráfico.

Para mayor referencia, en mi router los puntos de montaje están así (/dev/sda1 es el disco externo formateado en ext4 y montado en /home):

openwrttorrent_mount_points

Instalando lo necesario

Vamos a necesitar instalar algunos paquetes, para lo cual desde la interfaz web (LuCI) hay que acceder a System > Software, primero actualizar la lista de paquetes disponibles con un clic en Update lists y luego ir a la pestaña Available Packages donde vamos a instalar estos paquetes:

luci-app-transmission transmission-daemon transmission-web

También podemos hacer esto accediendo por SSH con los comandos:

opkg update
opkg install luci-app-transmission transmission-daemon transmission-web

Con esto instalaremos el “daemon”, proceso que se encargará de gestionar los torrents y que será administrado por la interfaz web o por un cliente remoto (al final lo comento mejor), la interfaz web y la compatibilidad con LuCI, para poder configurarlo desde la intefaz web de OpenWRT.

Configurando Transmission

Ya instalado lo anterior, vamos a configurar algunas opciones de Transmission y ponerlo en funcionamiento. Para ello en la config. web vamos a Services > Transmission. Yo dejé casi todo por defecto, cambiando solamente esto:

Enabled: Sí
Run as daemon on user: nobody

Download directory: /media
Rename partial files: Sí

RPC authentication required: Sí
RPC username: ingresar usuario para acceder a Transmission
RPC  password: ingresar contraseña

Y al darle en Guardar y aplicar ya tendremos Transmission funcionando en nuestro router, podremos acceder vía web a la IP del router, puerto 9091, con el usuario y contraseña que definimos. Se ve más o menos así:

transmission_download_openwrt

Las descargas se van a guardar en /media en el router. Luego para transferirlas a la PC o donde querramos podemos optar por varias vías, desde desconectar el disco y conectarlo en una PC (lo menos recomendable), compartir el disco con Samba (accesible desde Windows y GNU/Linux), compartirlo con NFS (accesible desde GNU/Linux) o montar un servidor miniDNLA para poder consumir los archivos.

En mi caso opté por compartir el directorio por NFS, en breve escribo sobre esta configuración.

Gestionando torrents desde otros clientes

Otra posibilidad además de la gestión web, es utilizar un cliente Transmission en otro dispositivo y conectarnos al router para gestionarlo.

Podemos utilizar el cliente oficial Transmission en Windows, MacOS y GNU/Linux conectándolo con los mismos datos que usamos para acceder al cliente web. En Ubuntu/Debian/Trisquel además está en repositorios, se instala con:

sudo apt install transmission-remote-gtk

Y se ve así:

transmission_remote

También podemos optar por un cliente para Android como este o este. Seguramente para iOS también habrá alguno.

Demás está decir que esta implementación es mejorable, y existen también muchas alternativas como puede ser rtorrent. Como siempre, los invito a investigar las posibilidades que ofrece OpenWRT y cualquier duda pueden consultarla aquí.

Deja un comentario

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