MLDonkey
MLDonkey es un cliente de intercambio de archivos P2P (peer-to-peer) de código abierto, diseñado para funcionar como un demonio en segundo plano (daemon) independiente de la interfaz gráfica. Lo desarrolló Fabrice Le Fessant, del INRIA (instituto francés de investigación en informática), a principios de los 2000, y fue el primer cliente en implementar el protocolo eDonkey2000 fuera del cliente oficial. Su nombre alude a su ambición original: ser un eDonkey multired.
Su gran innovación fue la arquitectura cliente-servidor interna: separa el núcleo de descarga (mlnet) de cualquier interfaz de usuario. Ese núcleo puede ejecutarse en un servidor remoto (un NAS, una Raspberry Pi) mientras lo controlas desde otro ordenador con un navegador web, un cliente Telnet o aplicaciones gráficas externas.
Su otra fortaleza es ser multiplataforma y multiprotocolo. Está escrito en OCaml (con partes en C), lo que le permite ejecutarse en Windows, macOS, Linux, FreeBSD e incluso en sistemas embebidos como routers o NAS. Soporta simultáneamente las redes eDonkey2000 (eD2k), Kad, BitTorrent (con DHT), Direct Connect, Gnutella, Gnutella2 y FastTrack, además de descargas directas por HTTP y FTP.
Es software libre bajo licencia GNU GPL y su desarrollo sigue activo (la última versión estable es la 3.2.1, de 2024). Aunque su popularidad bajó con el auge de clientes más especializados como qBittorrent, sigue siendo muy valorado por quien necesita un servidor de descargas centralizado y remoto para varias redes a la vez.
Características clave MLDonkey
1. Arquitectura cliente-servidor (núcleo remoto)
MLDonkey tiene dos partes bien diferenciadas. El núcleo (mlnet) es un demonio que hace todo el trabajo pesado de descarga, subida y conexión a las redes; no tiene interfaz gráfica propia y está pensado para funcionar en segundo plano. El usuario se conecta a él a través de varias interfaces de control:
- Interfaz web: accesible desde cualquier navegador en
http://localhost:4080. - Telnet: interfaz de línea de comandos en el puerto
4000, muy potente para usuarios avanzados. - Sancho: el frontend gráfico más popular, escrito en Java y multiplataforma.
- KMLDonkey: interfaz nativa para entornos KDE.
Esta separación permite que mlnet funcione en un servidor (por ejemplo, un NAS) mientras lo administras desde tu portátil.
2. Soporte multiprotocolo y descargas híbridas
MLDonkey puede conectarse a varias redes P2P a la vez y consolidar fuentes para un mismo archivo desde orígenes distintos. Estado de cada red en el cliente:
- eDonkey2000 (eD2k): nativo y estable; admite varios servidores a la vez.
- Kad / Overnet: red descentralizada, soporte más experimental.
- BitTorrent: nativo y estable; soporta DHT y trackers.
- Direct Connect (DC++ / NMDC): soportado.
- Gnutella / Gnutella2: soportado, pero sin mantenimiento activo en versiones recientes.
- FastTrack (Kazaa): soporte parcial.
- HTTP / FTP: descarga directa de enlaces.
Puede descargar fragmentos distintos del mismo archivo desde redes diferentes (por ejemplo, parte desde eD2k y parte desde BitTorrent) y unirlos localmente, aprovechando todas las fuentes disponibles para ir más rápido.
3. Varios servidores eD2k a la vez
A diferencia de eMule o aMule, que solo se conectan a un servidor eD2k cada vez, MLDonkey puede conectarse a varios servidores eD2k simultáneamente. Eso aumenta el número de fuentes potenciales para un archivo y, con ello, la velocidad de descarga.
4. Fácil de desplegar en servidores y dispositivos embebidos
Por su naturaleza de demonio y su bajo consumo de recursos, MLDonkey es ideal para:
- Routers con firmware alternativo (OpenWrt, DD-WRT).
- NAS (Synology, QNAP).
- Raspberry Pi y otros servidores caseros.
- Servidores VPS en la nube.
El núcleo mlnet puede compilarse para varias arquitecturas (ARM, x86, MIPS, PowerPC) y está disponible en los repositorios de las principales distribuciones Linux y en los ports de FreeBSD.
5. Consola de comandos y scripting
La interfaz Telnet ofrece una consola de comandos muy potente, que permite automatizar tareas con scripts. Algunos comandos destacados:
dllink <enlace>: añade una descarga desde un enlace (eD2k, magnet o torrent).vd: lista las descargas activas con sus IDs.merge <file1> <file2>: fusiona dos descargas del mismo archivo desde protocolos distintos.kill: detiene el núcleo guardando la configuración.
6. Interfaz web completa
El servidor web integrado (puerto 4080) es mucho más que un monitor. Permite buscar archivos en las redes conectadas, añadir descargas mediante enlaces o archivos .torrent, configurar límites de velocidad y prioridades, y ver estadísticas de conexión y rendimiento. Además es responsive, así que se puede usar desde el móvil sin instalar nada.
Cómo funciona
MLDonkey funciona como un demonio en segundo plano. Su núcleo, mlnet, se ejecuta al margen de cualquier interfaz gráfica, lo que lo hace ideal para servidores. El flujo típico es:
- Instalación y arranque: se instala el paquete (en Linux) o el binario (Windows/macOS) y el servicio
mlnetarranca en segundo plano. - Configuración inicial: la primera vez,
mlnetcrea sus archivos de configuración en~/.mldonkey/. Te conectas a la interfaz web (http://localhost:4080) o por Telnet para ajustar puertos, límites de velocidad y redes habilitadas. - Conexión a redes: según la configuración, se conecta a servidores eD2k, inicia el plugin de BitTorrent, se une a Kad, etc.
- Añadir descargas: desde la búsqueda de la interfaz web, con enlaces
ed2k://,magnet:o archivos.torrent(comandodllink), o con URLs HTTP/FTP directas. - Descarga multiorigen: divide el archivo en fragmentos y los pide de todas las fuentes disponibles, sin importar la red de origen.
- Control remoto: puedes monitorizar y controlar las descargas desde la web, Telnet o una GUI como Sancho. Como
mlnetes un demonio, puedes cerrar tu sesión sin interrumpir las descargas.
La configuración se guarda en archivos de texto dentro de ~/.mldonkey/. El principal es download.ini, con los puertos de escucha, los límites de velocidad y las opciones de cada protocolo; los usuarios avanzados pueden editarlo directamente para ajustar parámetros que no aparecen en las interfaces gráficas.
Descarga e instalación
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install mldonkey-server
Durante la instalación se pregunta si quieres iniciar el servicio automáticamente. El núcleo mlnet se ejecutará como un servicio del sistema.
Windows
Se descarga el binario precompilado desde el repositorio oficial en GitHub. La versión para Windows incluye tanto el núcleo mlnet.exe como la interfaz web integrada.
macOS
Se puede instalar con Homebrew:
brew install mldonkey
FreeBSD
pkg install mldonkey
Compilación desde el código fuente
Para sistemas sin paquete precompilado, se puede compilar desde el código fuente del repositorio oficial. Requiere OCaml y las bibliotecas de desarrollo correspondientes.
git clone https://github.com/ygrek/mldonkey.git
cd mldonkey
./configure
make
sudo make install
Versiones y estado del proyecto
- Última versión estable: 3.2.1 (2024).
- Licencia: GNU GPL v2.
- Desarrollo: activo. El sitio original en SourceForge dejó de mantenerse y el desarrollo continúa en GitHub, bajo el usuario
ygrek.
Cómo usarlo
1. Instalación y primer inicio
Tras instalarlo, el servicio mlnet debería estar ya en marcha. En Linux puedes comprobarlo con:
sudo systemctl status mldonkey-server
La primera vez crea la configuración predeterminada en ~/.mldonkey/ (o /var/lib/mldonkey/ si se ejecuta como servicio).
2. Acceder a la interfaz web
Abre el navegador y ve a http://localhost:4080. Verás la interfaz de administración. En algunos sistemas hay que configurar antes la contraseña de administrador en download.ini para acceder a las funciones avanzadas desde la web.
3. Configuración básica por Telnet
La interfaz Telnet (puerto 4000) es la más potente para la configuración inicial:
telnet localhost 4000
Una vez dentro, algunos comandos útiles:
set max_hard_upload_rate <valor>: limita la velocidad de subida (en KB/s).set max_hard_download_rate <valor>: limita la velocidad de bajada.set allowed_ips "127.0.0.1;192.168.1.0/24": restringe quién puede acceder a la interfaz.save: guarda la configuración actual.kill: detiene el núcleo.
4. Añadir y gestionar descargas
Desde la interfaz web, usa la pestaña de descargas o de búsqueda y pega el enlace ed2k://, magnet: o la URL de un .torrent. Desde Telnet, los comandos básicos son:
dllink <enlace>: añade una descarga (eD2k, magnet, torrent o URL HTTP/FTP).vd: lista las descargas activas con sus números de ID.pause <num>/resume <num>: pausa o reanuda una descarga.cancel <num>: cancela una descarga (pide confirmación después).priority <prioridad> <num>: cambia la prioridad (0 = baja, 1 = normal, 2 = alta).
5. Sancho (interfaz gráfica opcional)
Sancho es la interfaz gráfica más completa para MLDonkey, disponible para Windows, macOS y Linux. Se conecta al núcleo mlnet (local o remoto) y ofrece una experiencia parecida a la de eMule, con listas de descargas, búsquedas integradas y configuración visual.
6. Núcleo en un servidor remoto
Si mlnet corre en un servidor remoto (por ejemplo, una Raspberry Pi de tu red local), hay que permitir las conexiones desde otras IPs: detén mlnet, edita download.ini, añade tus IPs de confianza en allowed_ips (por ejemplo ["127.0.0.1"; "192.168.1.0/24";]), guarda y reinícialo. Luego accede desde tu ordenador a http://<IP-del-servidor>:4080.
Frente a otros clientes y notas de seguridad
Frente a clientes como eMule (solo eD2k), qBittorrent o Transmission (solo BitTorrent), MLDonkey es una solución unificada para varias redes en un único demonio. Para un administrador de sistemas o un entusiasta de homelabs, su gran ventaja es centralizar todas las descargas en un servidor que funciona 24/7 y es accesible desde cualquier dispositivo de la red, sin tener varios ordenadores encendidos ni clientes distintos para eD2k y BitTorrent.
Fue pionero en implementar el protocolo eDonkey2000 y durante años fue la referencia en sistemas Unix/Linux antes de la llegada de aMule. Al ser de código abierto, su seguridad se puede auditar. Dos recomendaciones de seguridad importantes:
- Usa siempre la última versión estable (versiones muy antiguas tuvieron fallos en la interfaz web).
- Configura bien
allowed_ipspara que solo accedan a la interfaz web las redes de confianza; no la expongas directamente a Internet.
A tener en cuenta
- No tiene una interfaz gráfica nativa moderna: la web es funcional pero anticuada, y la mejor experiencia gráfica es Sancho (Java), que puede ser pesado.
- Los plugins de Gnutella/Gnutella2 ya no se mantienen.
- La configuración inicial no es trivial si vienes de clientes con interfaz gráfica (archivos de texto o Telnet).
- Compilar desde el código fuente requiere herramientas de OCaml, lo que puede complicarse en algunas plataformas.
Alternativas
- qBittorrent: especializado en BitTorrent, interfaz moderna y búsqueda integrada. No soporta eD2k.
- Transmission: cliente BitTorrent ligero, ideal para servidores y NAS, con interfaz web limpia.
- eMule: el cliente estándar de eD2k en Windows, con interfaz completa pero sin BitTorrent.
- aMule: alternativa multiplataforma a eMule, con eD2k y Kad. Sin BitTorrent.
Si lo que necesitas es un servidor de descargas todo-en-uno para tu homelab, MLDonkey sigue siendo una opción muy válida y casi única por su capacidad de combinar eD2k y BitTorrent en un solo demonio.
Preguntas frecuentes
¿Es gratis o de pago?
Es completamente gratuito y de código abierto, bajo licencia GNU GPL v2. No tiene versiones de pago ni funciones bloqueadas.
¿Funciona en Linux, macOS, Windows 10 y 11?
Sí, es multiplataforma: Linux (todas las distribuciones principales), Windows 10 y 11 (binarios precompilados), macOS (vía Homebrew), FreeBSD (ports) y sistemas embebidos como OpenWrt, Raspberry Pi o NAS de Synology.
¿Qué lo diferencia de otros clientes P2P?
La combinación de arquitectura cliente-servidor (demonio) y soporte multiprotocolo. Puede ejecutarse como servicio en un servidor remoto, controlarse desde cualquier dispositivo con navegador y descargar a la vez de eD2k, BitTorrent, Direct Connect y HTTP/FTP. Además puede descargar fragmentos del mismo archivo desde redes distintas y unirlos localmente.
¿Puedo usarlo en un NAS o Raspberry Pi?
Sí; es ideal para dispositivos de bajo consumo. El núcleo mlnet es ligero y está compilado para arquitecturas ARM, MIPS y PowerPC. Se puede instalar desde los repositorios de esas plataformas o compilar a mano.
¿Sigue en desarrollo?
Sí. Aunque el antiguo sitio de SourceForge dejó de mantenerse, el código continúa en GitHub bajo el usuario ygrek, con la versión estable 3.2.1 (2024) y aportaciones de la comunidad.