MLDonkey – El demonio multired que unifica eD2k, BitTorrent y más en un solo núcleo
Descripción del programa 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. Fue desarrollado por Fabrice Le Fessant del INRIA (Instituto Nacional de Investigación en Informática y Automática de Francia), quien inició el proyecto a finales de 2001 como el primer cliente en implementar el protocolo eDonkey2000 fuera del cliente oficial. Su nombre proviene de «Multi-network eDonkey«, reflejando su ambición original.
La principal innovación de MLDonkey fue su arquitectura cliente-servidor interna: separa el núcleo de descarga (mlnet) de cualquier interfaz de usuario. Este núcleo puede ejecutarse en un servidor remoto (como un NAS o una Raspberry Pi), mientras que el usuario lo controla desde otro ordenador mediante un navegador web, un cliente Telnet o aplicaciones gráficas externas.
Su principal fortaleza radica en ser multiplataforma y multiprotocolo. Está escrito en OCaml (con optimizaciones en C y ensamblador), lo que le permite ejecutarse en Windows, macOS, Linux, FreeBSD y hasta en sistemas embebidos como routers o NAS. Soporta simultáneamente las redes eDonkey2000 (eD2k), Kad, BitTorrent (con DHT), Direct Connect, Gnutella, Gnutella2, FastTrack e incluso descargas directas por HTTP, FTP y SSH.
MLDonkey es software libre bajo licencia GNU GPL y su desarrollo continúa activo. La última versión estable es la 3.2.1, lanzada en agosto de 2024. Aunque su popularidad ha disminuido con el auge de clientes más especializados como qBittorrent, sigue siendo una herramienta muy valorada por usuarios que necesitan un servidor de descargas centralizado y remoto para múltiples redes.
¿Necesitas un centro de descargas unificado que funcione 24/7 en tu servidor casero y puedas controlar desde cualquier lugar?
Características clave de MLDonkey
1. Arquitectura Cliente-Servidor (Core remoto)
MLDonkey se compone de dos partes bien diferenciadas. El núcleo (mlnet) es un demonio que realiza todas las tareas pesadas de descarga, subida y conexión a las redes. No tiene interfaz gráfica propia y está diseñado para ejecutarse en segundo plano. El usuario puede conectarse al núcleo a través de múltiples interfaces de control:
- Web Interface: Accesible desde cualquier navegador en
http://localhost:4080. - Telnet: Interfaz de línea de comandos en el puerto
4000, 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 el usuario lo administra desde su ordenador portátil.
2. Soporte multiprotocolo y descargas híbridas (Swarming)
MLDonkey puede conectarse a múltiples redes P2P simultáneamente, consolidando las fuentes para un mismo archivo desde diferentes orígenes.
| Red / Protocolo | Estado en MLDonkey |
|---|---|
| eDonkey2000 (eD2k) | Nativo y estable. Soporta múltiples servidores simultáneamente |
| Kad / Overnet | Soporte experimental, red descentralizada |
| BitTorrent | Nativo y estable. Soporta DHT y trackers |
| Direct Connect (DC++ / NMDC) | Soportado desde versiones recientes |
| Gnutella / Gnutella2 | Soportado, aunque sin mantenimiento activo en versiones recientes |
| FastTrack (Kazaa) | Soporte parcial vía OpenFastTrack |
| HTTP / FTP / SSH | Descarga directa de enlaces |
MLDonkey puede descargar diferentes fragmentos del mismo archivo desde redes distintas (por ejemplo, partes desde eD2k y partes desde BitTorrent) y unirlos localmente, aprovechando todas las fuentes disponibles para maximizar la velocidad.
3. Multiplicidad de servidores eD2k
A diferencia de eMule o aMule, que solo se conectan a un servidor eD2k a la vez, MLDonkey puede conectarse a múltiples servidores eD2k simultáneamente. Esto aumenta drásticamente el número de fuentes potenciales para un archivo, lo que se traduce en velocidades de descarga notablemente superiores.
4. Fácil despliegue en servidores y dispositivos embebidos
Gracias a su naturaleza de demonio y a su bajo consumo de recursos, MLDonkey es ideal para ejecutarse en:
- 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 múltiples arquitecturas (ARM, x86, MIPS, PowerPC) y su instalación está disponible en los repositorios de las principales distribuciones Linux, así como en FreeBSD ports.
5. Sistema de comandos por consola y scripting avanzado
La interfaz Telnet de MLDonkey expone una consola de comandos extremadamente potente, que permite automatizar tareas mediante scripts. Algunos comandos destacados son:
dllink <ed2k|magnet|torrent>: Añade una descarga desde un enlace.vd: Lista las descargas activas con sus IDs.merge <file1> <file2>: Fusiona dos descargas del mismo archivo desde diferentes protocolos.mirror <file_num> <url>: Añade una fuente HTTP/FTP a una descarga activa (similar al «P2SP» de Xunlei).kill: Detiene el núcleo guardando la configuración.
6. Interfaz Web completa
El servidor web integrado en MLDonkey (puerto 4080) es mucho más que un simple monitor. Permite:
- Buscar archivos en las distintas redes conectadas
- Añadir descargas mediante enlaces o archivos
.torrent - Configurar límites de velocidad y prioridades
- Ver estadísticas de conexión y rendimiento
Esta interfaz es responsive y puede accederse desde dispositivos móviles sin necesidad de instalar apps adicionales.
Explicación detallada del funcionamiento
MLDonkey funciona como un demonio en segundo plano. Su núcleo, mlnet, se ejecuta independientemente de cualquier interfaz gráfica, lo que lo hace ideal para servidores.
El flujo de funcionamiento típico es el siguiente:
- Instalación y arranque: Se instala el paquete
mldonkey-server(en Linux) o el binario para Windows/macOS. El serviciomlnetse inicia automáticamente en segundo plano. - Configuración inicial: La primera vez que se ejecuta,
mlnetcrea una serie de archivos de configuración en~/.mldonkey/. El usuario debe conectarse a la interfaz web (http://localhost:4080) o mediante Telnet para ajustar parámetros como los puertos, límites de velocidad y redes habilitadas. - Conexión a redes: Dependiendo de la configuración,
mlnetse conecta a servidores eD2k, inicia el plugin de BitTorrent, se une a la red Kad, etc. Para eD2k, MLDonkey puede mantener conexiones activas con varios servidores simultáneamente, lo que multiplica las fuentes disponibles. - Añadir descargas: El usuario añade descargas mediante:
- Búsqueda desde la interfaz web
- Enlaces
ed2k://,magnet:o archivos.torrentusando el comandodllink - URLs HTTP/FTP directas mediante
http://
- Descarga multiorigen: MLDonkey divide el archivo en fragmentos y los solicita de todas las fuentes disponibles, independientemente de la red de origen. Por ejemplo, puede obtener fragmentos de un archivo desde la red eD2k y desde la red BitTorrent simultáneamente.
- Control remoto: Durante todo el proceso, el usuario puede monitorizar y controlar las descargas desde la interfaz web, Telnet o una GUI externa como Sancho. Dado que
mlnetes un demonio, la sesión del usuario puede cerrarse sin interrumpir las descargas.
La configuración se almacena en archivos de texto dentro del directorio ~/.mldonkey/. El archivo principal es download.ini, que contiene parámetros como los puertos de escucha, límites de velocidad, y las opciones específicas de cada protocolo. Los usuarios avanzados pueden editar estos archivos directamente para ajustar parámetros no expuestos en las interfaces gráficas.
Descarga e instalación de MLDonkey
MLDonkey está disponible para múltiples plataformas, con opciones de instalación adaptadas a cada sistema.
Linux (distribuciones basadas en Debian/Ubuntu)
sudo apt update
sudo apt install mldonkey-serverDurante la instalación, se preguntará si se desea iniciar el servicio automáticamente. El núcleo mlnet se ejecutará como un servicio del sistema.
Windows
Se puede descargar el binario precompilado desde el repositorio oficial en GitHub o SourceForge. La versión para Windows incluye tanto el núcleo mlnet.exe como la interfaz web integrada.
macOS
Se puede instalar mediante Homebrew:
brew install mldonkeyFreeBSD
pkg install mldonkeyo desde ports:
cd /usr/ports/net-p2p/mldonkey && make install cleanDocker
Existen imágenes oficiales de MLDonkey en Docker Hub, lo que facilita su despliegue en entornos contenerizados.
Compilación desde código fuente
Para sistemas no soportados por paquetes precompilados, se puede compilar desde el código fuente disponible en el repositorio oficial. Los requisitos incluyen OCaml (versión ≥ 4.03 y < 5.0) y las bibliotecas de desarrollo correspondientes.
git clone https://github.com/ygrek/mldonkey.git
cd mldonkey./configure
make
sudo make installVersiones y estado del proyecto
| Información | Detalle |
|---|---|
| Última versión estable | 3.2.1 (20 de agosto de 2024) |
| Versiones anteriores | 3.1.7.2, 3.1.6, 3.0.x |
| Licencia | GNU GPL v2 |
| Estado del desarrollo | Activo. El repositorio de código tiene commits recientes (enero de 2025) |
| Sitio web | El sitio original en SourceForge (https://mldonkey.sourceforge.net/) fue cerrado en agosto de 2023. El desarrollo continúa en GitHub bajo el usuario ygrek |
Cómo usar MLDonkey
Paso 1: Instalación y primer inicio
Después de instalar MLDonkey, el servicio mlnet debería estar ejecutándose. En sistemas Linux, se puede verificar con:
sudo systemctl status mldonkey-serverLa primera vez que se ejecuta, mlnet crea la configuración predeterminada en ~/.mldonkey/ (o /var/lib/mldonkey/ si se ejecuta como servicio).
Paso 2: Acceder a la interfaz web
Abre un navegador web y ve a http://localhost:4080. Deberías ver la interfaz de administración de MLDonkey.
Nota: En algunos sistemas, es necesario configurar la contraseña de administrador en el archivo download.ini antes de poder acceder a funciones avanzadas desde la web.
Paso 3: Configuración básica desde Telnet
La interfaz Telnet (puerto 4000) es la más potente para la configuración inicial. Conéctate con:
telnet localhost 4000Una vez dentro, algunos comandos útiles:
auth <usuario> <contraseña>: Autenticarse si se ha configurado contraseña.set max_hard_upload_rate <valor>: Limitar la velocidad de subida (en KB/s).set max_hard_download_rate <valor>: Limitar la velocidad de bajada.set allowed_ips "127.0.0.1;192.168.1.0/24": Restringir acceso a la interfaz web.save: Guardar la configuración actual.kill: Detener el núcleo.
Paso 4: Añadir descargas
Desde la interfaz web:
- Ve a la pestaña «DL» (Downloads) o «Search» para buscar archivos.
- Para añadir un enlace, utiliza la opción «Input» y pega el enlace
ed2k://,magnet:o la URL de un archivo.torrent.
Desde Telnet:
dllink ed2k://|file|... # Añade un enlace eD2k
dllink http://ejemplo.com/archivo.iso # Añade una descarga HTTP
dllink archivo.torrent # Añade un torrent localPara descargas HTTP/FTP:
http https://ejemplo.com/archivo.zipPaso 5: Gestionar descargas
Desde Telnet:
vd: Lista las descargas activas con sus números de ID.pause <num>: Pausa la descarga con el número especificado.resume <num>: Reanuda la descarga.cancel <num>: Cancela la descarga (requiereconfirm yesdespués).priority <prioridad> <num>: Cambia la prioridad de una descarga (valores: 0 = baja, 1 = normal, 2 = alta).
Paso 6: Usar Sancho (interfaz gráfica opcional)
Sancho es la interfaz gráfica más completa para MLDonkey, disponible para Windows, macOS y Linux. Se puede descargar desde su sitio web oficial. Sancho se conecta al núcleo mlnet (local o remoto) y proporciona una experiencia similar a la de eMule, con listas de descargas, búsquedas integradas y configuración visual de todos los parámetros.
Paso 7: Configuración avanzada para servidores remotos
Si mlnet se ejecuta en un servidor remoto (por ejemplo, una Raspberry Pi en tu red local), debes modificar el archivo download.ini para permitir conexiones desde otras IPs:
- Detén
mlnet. - Edita
~/.mldonkey/download.ini(o/var/lib/mldonkey/download.ini). - Busca la línea
allowed_ips = ["127.0.0.1";]y añade las IPs de tu red local, por ejemplo:allowed_ips = ["127.0.0.1"; "192.168.1.0/24";]. - Guarda el archivo y reinicia
mlnet. - Desde tu ordenador, accede a
http://<IP-del-servidor>:4080.
Observaciones sobre el programa MLDonkey
Frente a otros clientes P2P como eMule (solo eD2k), qBittorrent (solo BitTorrent) o Transmission (solo BitTorrent), MLDonkey se posiciona como una solución unificada para múltiples redes en un solo demonio. Su principal ventaja es la capacidad de consolidar fuentes de diferentes protocolos para un mismo archivo.
Para el administrador de sistemas o el entusiasta de homelabs, el beneficio práctico de MLDonkey es centralizar todas las descargas en un único servidor que funciona 24/7, accesible desde cualquier dispositivo de la red. No es necesario mantener varios ordenadores encendidos ni instalar clientes diferentes para eD2k y BitTorrent.
MLDonkey fue pionero en la implementación del protocolo eDonkey2000. De hecho, fue el primer cliente en soportar este protocolo fuera del cliente oficial, y durante años fue la referencia en sistemas Unix/Linux antes de la aparición de aMule.
El desarrollo de MLDonkey ha tenido altibajos pero se mantiene activo. El proyecto fue alojado originalmente en SourceForge, cuyo sitio web y foros fueron cerrados en agosto de 2023. Sin embargo, el desarrollo del código continúa en GitHub bajo el usuario ygrek, con la última versión 3.2.1 lanzada en agosto de 2024 y commits recientes en enero de 2025.
MLDonkey es un software de código abierto. Todo su código fuente está disponible bajo licencia GPL, lo que permite auditar su seguridad y modificarlo según necesidades específicas.
Seguridad:
- Las versiones anteriores a la 3.0 tenían una vulnerabilidad que permitía a un atacante con acceso a la interfaz web leer cualquier archivo del sistema.
- Se recomienda usar siempre la última versión estable y configurar adecuadamente
allowed_ipspara restringir el acceso a la interfaz web solo a redes de confianza.
Comunidad y soporte: La comunidad de MLDonkey es más pequeña que la de clientes más populares, pero sigue activa. El soporte se canaliza principalmente a través de GitHub Issues y listas de correo.
Documentación: La documentación oficial se encontraba en el extinto sitio de SourceForge, pero gran parte del contenido está preservado en archivos de la comunidad y en la propia ayuda integrada en los comandos de Telnet.
Limitaciones importantes
- ❌ Sin interfaz gráfica nativa moderna: La interfaz web es funcional pero anticuada. La mejor experiencia gráfica se obtiene mediante Sancho (Java), que puede ser pesado.
- ❌ Soporte para Gnutella/Gnutella2 sin mantenimiento: Estos plugins ya no se compilan por defecto y tienen errores conocidos.
- ❌ Configuración inicial no trivial: Para usuarios acostumbrados a clientes con interfaz gráfica, la configuración mediante archivos de texto o Telnet puede resultar compleja.
- ❌ Documentación dispersa: Con el cierre del sitio SourceForge, encontrar información actualizada puede ser más difícil.
- ❌ Compilación compleja en algunas plataformas: Al estar escrito en OCaml, compilar desde el código fuente requiere instalar herramientas específicas.
Alternativa recomendada
Si buscas un cliente P2P multiplataforma con interfaz gráfica moderna y soporte para múltiples redes, considera las siguientes opciones:
- qBittorrent: Especializado en BitTorrent, con interfaz gráfica moderna y soporte para búsqueda integrada. No soporta eD2k.
- Transmission: Cliente BitTorrent ligero, ideal para servidores y NAS, con interfaz web limpia.
- eMule: El cliente estándar para la red eD2k en Windows, con interfaz gráfica completa pero sin soporte para BitTorrent.
- aMule: Alternativa multiplataforma a eMule, con soporte para eD2k y Kad. No incluye 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 única en su capacidad para combinar eD2k y BitTorrent en un solo demonio.
MLDonkey es una herramienta poderosa y única para quienes necesitan un centro de descargas unificado que funcione como servicio en segundo plano. Su capacidad para combinar fuentes de eD2k y BitTorrent, su arquitectura cliente-servidor y su disponibilidad en prácticamente cualquier plataforma lo convierten en una opción muy atractiva para administradores de sistemas y entusiastas de homelabs. Aunque su configuración inicial puede ser más compleja que la de clientes con interfaz gráfica, las recompensas en términos de control, eficiencia y versatilidad son significativas. Puedes obtener más información en el repositorio oficial de GitHub.
Sección FAQ
¿MLDonkey es gratis o de pago?
MLDonkey es completamente gratuito y de código abierto, publicado bajo la licencia GNU General Public License v2. No tiene versiones de pago ni funcionalidades bloqueadas.
¿Funciona en Linux, macOS, Windows 10 y Windows 11?
Sí, MLDonkey es multiplataforma. Está disponible para:
- Linux: Todas las distribuciones principales (Debian, Ubuntu, Fedora, etc.)
- Windows: Windows 10 y 11 (binarios precompilados)
- macOS: Intel y Apple Silicon (vía Homebrew)
- FreeBSD: Disponible en ports
- Sistemas embebidos: OpenWrt, Raspberry Pi, Synology NAS
¿Qué diferencia a MLDonkey de otros clientes P2P?
Su principal diferencia es la combinación de arquitectura cliente-servidor (daemon) y soporte multiprotocolo. MLDonkey puede ejecutarse como servicio en un servidor remoto, controlarse desde cualquier dispositivo mediante navegador web, y descargar simultáneamente de redes eD2k, BitTorrent, Direct Connect y HTTP/FTP. Además, puede descargar diferentes fragmentos del mismo archivo desde distintas redes y unirlos localmente, algo que ningún otro cliente hace de forma nativa.
¿Puedo usar MLDonkey en un NAS o Raspberry Pi?
Sí, MLDonkey es ideal para ejecutarse en dispositivos de bajo consumo como Raspberry Pi, routers con OpenWrt y NAS de Synology o QNAP. El núcleo mlnet es ligero y está compilado para arquitecturas ARM, MIPS y PowerPC. Se puede instalar desde los repositorios de estas plataformas o compilar manualmente.
¿Qué ha pasado con el desarrollo de MLDonkey?
El desarrollo de MLDonkey sigue activo. Aunque el sitio web oficial en SourceForge fue cerrado en agosto de 2023, el código fuente continúa desarrollándose en GitHub bajo el usuario ygrek. La última versión estable, 3.2.1, fue lanzada en agosto de 2024, y hay commits recientes en el repositorio (enero de 2025). El proyecto ha superado la transición y se mantiene con contribuciones de la comunidad.
