Uno de los principales usos que solemos dar a un NAS o a un servidor que podemos alquilar en la nube (un VPS o un SeedBox) es para descargar y compartir archivos a través de la red torrent. Para ello, el único requisito es instalar y utilizar el cliente de descargas que más nos guste y configurarlo de manera que, simplemente con añadirle los enlaces, no tengamos que preocuparnos de nada más. Donde mayor dificultad podemos encontrar es a la hora de escoger qué cliente utilizar (Transmission, qBittorrent, zTorrent, uTorrent, etc) y, sobre todo, cómo instalarlo y configurarlo en el servidor en cuestión.
Muchos servidores NAS cuentan con un cliente de descargas por defecto que, generalmente, suele estar preparado para realizar descargas directas y desde la red torrent, sin embargo, estos clientes suelen carecer de muchas opciones de configuración, por lo que muchas veces, para ciertas tareas (sobre todo, si utilizamos trackers privados) puede que echemos en falta liberad a la hora de configurarlo.
Probablemente también encontremos aplicaciones portadas, o por los fabricantes o por la comunidad, para los principales servidores NAS, como Transmission, una de las más utilizadas en este tipo de servidores. Sin embargo, aunque este sea, probablemente, el mejor servidor que podemos encontrar, tiene un grave problema, y es que las versiones que no son las nativas de Linux suele consumir demasiados recursos, especialmente CPU, lo que puede ser un problema cuando hablamos de servidores NAS con un hardware limitado un VPS económico con un núcleo virtual muy pequeño.
Por ello, una de las mejores formas de instalar y configurar así nuestro cliente de descargas es hacerlo dentro de un contenedor creado con Docker.
Docker, un contenedor aislado para ejecutar un cliente de descargas torrent como Transmission
Gracias a Docker, en prácticamente cualquier sistema vamos a poder virutalizar en un contenedor un micro-kernel con lo justo para ejecutar una determinada aplicación o servicio. Así, gracias a esta herramienta, vamos a poder configurar, por ejemplo, un contenedor ideal para ejecutar Transmission con un gasto mínimo de recursos, totalmente optimizado y, además, proteger nuestro servidor de posibles ataques que nos pudieran llegar a través de la red.
Además, otra ventaja (muy importante) de los contenedores Docker es que vamos a poder limitarles los recursos disponibles. De esa manera, si por cualquier caso (un gran número de conexiones, por ejemplo), nuestro cliente de descargas se desmadra y empieza a hacer uso ilimitado de los recursos, el mismo contenedor lo limitará, evitando así que nuestro servidor o NAS falle mientras descargamos.
Aunque siempre lo mejor es preparar nosotros mismos nuestro contenedor, la comunidad cuenta ya con una variedad considerable de estos, siendo dos de los más interesantes que hemos encontrado:
- Transmission + VPN -> Ideal para descargar de forma anónima y privada desde la red torrent.
- Transmission simple -> Para aquellos usuarios que no quieran complicarse.
Si no queremos utilizar Transmission, podemos buscar otros contenedores ya creados a través de Docker Hub listos para empezar a descargar.
Gracias a Docker, además, todo lo que pueda ocurrir con el cliente de descargas afectarán tan solo al contenedor. Si Transmission se bloquea o sufre un ataque, solo el contenedor base se verá afectado y dejará de funcionar, pero el resto del servidor o NAS en ningún momento lo hará. En otro artículo hablamos de las diferencias entre servidor VPS administrado y no administrado.
El único problema que nos podemos encontrar al intentar montar el contenedor es no saber cómo funciona Docker. Si nuestro servidor, además, tiene una herramienta similar a la Container Station (de Qnap), el proceso va a estar totalmente guiado. Si no, dependerá de nosotros instalar Docker y montar el contenedor, aunque los desarrolladores de los contenedores suelen explicar muy bien la puesta en marcha de estos.
¿Tienes un servidor VPS o NAS con un cliente de descargas? ¿Qué te parece la idea de virtualizar el cliente con los contenedores de Docker?