Creando un servidor de torrent con Raspberry Pi

Iniciado por ANTRAX, Julio 30, 2020, 09:24:47 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Hola lectores! El día de hoy les voy a enseñar a crear un servidor de torrent con una Raspberry Pi, con la finalidad de que puedan compartir sus archivos con sus amigos. Además, al hacerlo con una Raspberry Pi, contamos con la ventaja de poderla dejar funcionando 24/7 y no consumirá nada de energía.

Lo primero que deben hacer, es tener una Raspberry Pi con Raspbian, que pueden descargarla desde su web oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una vez instalada, vamos a actualizar el sistema operativo con los siguientes comandos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get update


Nota: como se puede ver, ejecuto dos veces el update, al principio y al final. A esto lo hago por si el upgrade descargó algun repositorio nuevo, de esta forma, además de descargarlo, lo dejamos actualizado.

Ahora pasaremos a la parte de la instalación de Transmission. Para quienes no sepan lo que es, es un cliente de torrents. De esta forma podremos descargar y cargar archivos a nuestra red P2P.


sudo apt-get install transmission

Una vez descargado, lo podremos ver en nuestro menú en la parte de "Internet"


Ahora vamos a Archivo >> Nuevo


Acá debemos seleccionar en que carpeta querremos guardar el .torrent (Archivo que contiene información del torrent) y el archivo fuente, que es el archivo que queremos compartir.

Una vez hecho esto, clickeamos en "Nuevo" y se añadirá a nuestra lista.

Ahora simplemente debemos enviarle ese .torrent a un amigo nuestro o podemos generar un "link" de descarga dando click derecho y seleccionamos la opción "Copiar enlace Magnet al portapapeles". Este link tiene un hash con la información del torrent. Al igual que el archivo .torrent, podemos enviarle este link a nuestros amigos para que descarguen nuestro archivo. (Funciona con cualquiera de las dos formas)

Como mencioné al principio del post, esto sirve para tener la Raspberry Pi todo el día funcionando sin tener que preocuparse por el consumo energético. En mi caso, estoy utilizando una Raspberry Pi 4 (La versión de 4GB) y tiene un defecto, el cual es que levanta mucha temperatura. Pero en mi próximo post explicaré como bajarle la temperatura de 60º a 30º... Pero no quiero desviarme ahora.




BitTorrent o Torrent es un sistema de compartición de archivos de tipo P2P (Peer to Peer o entre pares).
Siempre que navegamos por internet, jugamos en linea, etc. Se utiliza una estructura Cliente-Servidor


En el caso de los Torrent, esta estructura desaparece (evitando la capa de control de archivos) y la transferencia es directa con el resto de los pares.


Los torrents tienen 2 características:

1- Garantía de descarga de archivos a través de la red (de forma rápida y segura)
2- Posee un algoritmo que evita que los usuarios solo descarguen archivos sin contribuir al sistema.

Para poder utilizar torrent y compartir/descargar archivos, es necesario un cliente de torrent (En este post vimos Transmission) pero hay varios clientes como QB, uTorrent, Vuze, entre otros.

La palabra BitTorrent significa BIT = unidad de medida más elemental de los datos y TORRENT = que significa que seremos parte del torrente del flujo de información. Al instalar un cliente de los anteriormente mencionados, aceptamos los acuerdos de descargar y compartir archivos. Es decir, pasamos a formar parte de este sistema de compartición de a pares y los demás usuarios podrán descargar de mi computadora los archivos que yo he descargado por medio de esta red.

Funcionamiento:

Suponiendo que tenemos un archivo que pesa 900MB, el cliente de torrent lo parte en 900 archivos de 1MB cada uno y los agrupa en bloques. Finalmente se crea el archivo .torrent que contiene información o las instrucciones de como debe ser descargado, como esta dividido, de donde se puede descargar, etc.


La computadora que pone este archivo para compartir, se lo conoce como Seed o Seeder (Semilla o Semillero) que inicia la compartición. El Seed envía este archivo .torrent o el link a las computadoras que quieren el archivo y al abrirlo, comienza la descarga de esos bloques según la disponibilidad del Seed. A estas computadoras se las conoce como Leech (Sanguijuela), es decir, que se esta alimentando de los datos entregados por el seed.

Suponiendo que hay 10 computadoras descargando un mismo archivo, y una de ellas tiene una buena conexión a internet y termina, esta inmediatamente se convierte en un Seed y el resto de los Leech pueden descargar el archivo o los bloques de este nuevo proveedor. Al tener multiples semillas, la descarga se les completará más rápido al resto de los Leech y luego también pasaran a ser Seeds de ese archivo.

Ahora... ¿Qué pasa si una computadora, después de descargar el archivo desconecta su conexión o quita el archivo y no aporta a la red?
Acá entra en juego la segunda característica de los torrents, que es el algoritmo "Choke" (Estrangulación)

Algoritmo Choke

Cuando una computadora recibe muchas peticiones de descarga, esta decide quienes pueden descargar sus archivos, y para ello se basa en la cantidad de datos que ha compartido en Torrent. Es decir, si un usuario ha descargado mucho más de lo que ha compartido, este usuario no será seleccionado. En otras palabras, la persona que no comparte, queda con muy baja prioridad para ser seleccionado para descargar, o simplemente no queda en la lista para descargar el archivo.

Esto es todo por ahora, y si les gustó, espero que dejen su comentario!


hola Antrax, primero felicitarte por este post me gusto mucho el como explicas todo paso a paso y con detalle sobre el torrent, semillas. etc. tengo una duda, actualmente tengo un servidor TOR middle relay en un equipo viejo con ubuntu server trabajando 24 x 7, tu recomiendas sustituir este equipo por uno con Raspberry por la cuestion energetica?