Mldonkey

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Die Filesharing-Software Mldonkey (auch: MLDonkey) ist eine in der Programmiersprache Objective CAML geschriebene Peer-to-Peer-Software. Der Datenaustausch findet direkt zwischen den teilnehmenden Rechnern statt, ein zentraler Rechner kommt bei den meisten der folgenden unterstützten Filesharing-Protokolle nicht zum Einsatz:

Ausserdem können Dateien auch über HTTP, FTP und SFTP bzw. SCP heruntergeladen werden.

Mldonkey wurde vor allem für Unix-basierte Systeme (GNU/Linux, verschiedene BSDs, Mac OS X/Darwin) entwickelt, inzwischen gibt es auch eine lauffähige Microsoft Windows-Portierung.

Konzept

Einer der grossen Unterschiede zu vergleichbaren Softwareanwendungen ( z. B. Kazaa, Lopster) ist die strikte Trennung in einen Kern und eine Oberfläche:

  • Der Kern (engl. core) wickelt den eigentlichen Datenverkehr ab. Er läuft wie ein Daemon ressourcenschonend im Hintergrund.
  • Die Benutzeroberfläche dient der Interaktion mit dem Benutzer. Hierzu stehen drei verschiedene Protokolle bereit:
    • Über Telnet kann der Kern vollständig über die Befehlszeile gesteuert werden.
    • Über HTTP mit einem Webbrowser auf die Weboberfläche zugegriffen werden (sofern das Programm am lokalen Rechner läuft über http://127.0.0.1:4080/)
    • Über das eigene Mldonkey-GUI-Protokoll wird der Zugriff über verschiedene GUI-Clients ermöglicht.

Diese Trennung ist besonders geeignet, um den Kern von einem anderen Rechner aus zu steuern. Hierzu muss mittels einer der drei genannten Methoden eine Verbindung aufgebaut werden, um Befehle abzusetzen. Zum Herunterladen selbst ist keine Verbindung von der Benutzerschnittstelle zum Mldonkey-Kern nötig.

Mldonkey kann dieselbe Datei gleichzeitig aus dem Edonkey2000-Netzwerk und dem Overnet beziehen und dort anbieten, ist also ein Hybrid wie der offizielle Edonkey2000-Client.

Installation

Viele Linux-Distributionen bringen Mldonkey samt grafischer Oberfläche direkt mit. Debian und Ubuntu teilen das Programm in die Pakete "mldonkey-server" (der Kern) und "mldonkey-gui", Opensuse nennt die entsprechenden Pakete "mldonkey" und "mldonkey-gui". Stellt die Distribution keine eigenen Pakete bereit, so können die vorkompilierten Dateien von der Mldonkey-Website verwendet werden.

Vorbedingungen

  • gd, gd-devel
  • m4
  • zlib, zlib-devel

Konfiguration

Ubuntu konfiguriert den Kern standardmässig so, dass er bei jedem Systemstart automatisch mit hochkommt. Um den Kern jeweils händisch zu starten, wird er unter Ubuntu im Menü "System > Systemverwaltung > Dienste" entfernt und mit folgendem Befehl gestartet.

$ sudo /etc/init.d/mldonkey-server force-start

Bei anderen Distributionen oder wenn der Kern händisch installiert wurde genügt folgender der Aufruf:

$ mlnet -daemon

Damit das Peer-to-Peer-Filesharing wirklich vom und zum eigenen Rechner funktioniert, muss anderen Rechnern erlaubt werden, sich aus dem Internet mit dem eigenen Rechner zu verbinden.

  • Bei Verwendung einer Personal Firewall müssen die vom gewünschten Filesharing-Netz verwendeten Ports dort für eingehende Verbindungen freigeschaltet werden.
  • Der Router muss mit Hilfe der Portforwarding-Funktion so eingestellt werden, dass er Anfragen an den Zielrechner im lokalen Rechneretz weiterreicht.

Die Portnummern hängen davon ab, welche Filesharing-Protokolle genutzt werden sollen. Eine Liste der Ports für die von Mldonkey unterstützten Protokolle findet sich auf folgender Seite:

Eine Nutzung der Filesharing-Netze ist zwar auch ohne die Freigabe dieser Ports möglich. Allerdings hat das dann nichts mehr mit Tauschen zu tun, sondern nur noch mit hemmungslosem Saugen, das die Infrastruktur der Netze belastet. Das Edonkey2000-Netz etwa straft solche Benutzer zu Recht mit geringeren Privilegien beim Herunterladen.

Befehle

Es gibt drei Wege, um mit dem Mldonkey-Client zu kommunizieren. In allen Fällen kann der Client auf dem einen Rechner laufen und von einem anderen Rechner aus gesteuert werden.

Verwendung der grafischen Oberfläche "mldonkey_gui" auf demselben Rechner, auf dem der Mldonkey-Client läuft.

$ ./mldonkey_gui localhost

Verwendung des Befehlszeilen-Clients auf demselben Rechner, auf dem der Mldonkey-Client läuft.

$ telnet localhost 4000

Verwendung eines Webbrowsers (hier lynx) auf demselben Rechner, auf dem der Mldonkey-Client läuft. Durch entsprechende Konfiguration kann diese Weboberfläche von jedem beliebigen Rechner aus erreicht werden. Erwähnenswert ist das Mozilla Firefox-Addon "Firefox Protocol Handler", mit dem auf Filesharing-Protokolle zeigende Links auf Webseiten zum Start des Herunterladens über Mldonkey führen.

$ lynx http://localhost:4080/

Verfügbare Befehle sind die folgenden.

Befehl Beschreibung
Driver/Downloads
cancel <num> Abbrechen aller Downloads. (Verwendung des Arguments "all" für alle Dateien)
commit Verschieben der heruntergeladenen Dateien ins Verzeichnis "incoming".
confirm <yes|no|what> Bestätigen des Abbruchs.
dllink <link> Herunterladen eines ED2K-, sig2dat-, Bittorrent- oder anderen Links.
dllinks <datei> Herunterladen aller in der Datei enthaltenen Links.
downloaders Anzeige einer Liste der herunterladenden Rechner.
pause <num> Pausieren eines Downloads. (Verwendung des Arguments "all" für alle Dateien)
preview <dateinummer> Starten des Vorschaubetrachters für die Datei <dateinummer>.
priority <priority> <files numbers> Ändern der Dateipriorität.
rename <zahl> "<neuer name>" Ändern des Namens des Downloads <zahl> zu <neuer name>.
resume <num> Wiederaufnehmen eines pausierten Downloads. (Verwendung des Arguments "all" für alle Dateien)
test_recover <num> print the segments downloaded in file
vd <num> Anzeige von Dateiinformationen.
verify_chunks <num> verify chunks of file <num>
Driver/Friends
files <client num> print files from friend <client num>
friend_add <client num> add client <client num> to friends
friend_remove <client nummer> Entfernen von Freund <client nummer>. (Verwendung des Arguments "all" für alle Dateien)
friends Anzeige aller Freunde.
gfr <client num> ask friend files
vfr Ansehen der Freunde.
Driver/General
activity <minuten> Anzeige der Aktivität in den letzten <minuten> Minuten.
add_url <kind> <url> load this file from the web. kind is either server.met (if the downloaded file is a server.met)
add_user <user> <passwd> Hinzufügen eines neuen Mldonkey-Benutzers.
calendar_add <hour> "<command>" add a command to be executed every day
dump_heap dump heap for debug
kill save and kill the server
message message [<client num> <msg>]
message_log message_log [refresh delay in seconds]
q close telnet
recover_temp recover lost files from temp directory
vc <num> view client (use arg 'all' for all clients)
version print mldonkey version
Driver/Network
! <cmd> start command <cmd> (must be allowed in 'allowed_commands' option or by 'allow_any_c ommand' if arguments)
bw_stats print current bandwidth stats
nu <m> disable upload during <m> minutes (multiple of 5)
Driver/Networks
disable <num> disable a particular network
enable <num> enable a particular network
networks print all networks
Driver/Options
options print options values by section
save save
set <option_name> <option_value> change option value
vo display options
voo print all options
Driver/Searches
d <num> file to download
force_download force download of an already downloaded file
forget <num1> <num2> ... forget searches <num1> <num2> ...
ls <query> search for files locally

With special args:
-network <netname>
-minsize <size>
-maxsize <size>
-media <Video|Audio|...>
-Video
-Audio
-format <format>
-title <word in title>
-album <word in album>
-artist <word in artist>
-field <field> <fieldvalue>
-not <word>
-and <word>
-or <word>

s <query> search for files on all networks

With special args:
-network <netname>
-minsize <size>
-maxsize <size>
-media <Video|Audio|...>
-Video
-Audio
-format <format>
-title <word in title>
-album <word in album>
-artist <word in artist>
-field <field> <fieldvalue>
-not <word>
-and <word>
-or <word>

view_custom_queries view custom queries
vr [<num>] view results of a search
vs view all queries
Driver/Servers
c [<num>] connect to more servers (or to server <num>)
rem <server numbers> remove server (use arg 'all' for all servers)
server_banner <num> print banner of connected server <num>
vm list connected servers
vma list all known servers
x <num> disconnect from server
Driver/Sharing
links list links of shared files
reshare check shared files for removal
share <priority> <dir> [<strategy>] share directory <dir> with <priority> [and sharing strategy <strategy>]
shares print shared directories
unshare <dir> share directory <dir>
uploaders show users currently uploading
upstats statistics on upload
Driver/Xpert
ansi toggle ansi terminal (devel)
block_list display the list of blocked IP ranges that were hit
block_test <ip> check whether an IP is blocked
clear_debug clear the table of clients being debugged
close_all_sockets close all opened sockets
close_fds close all files (use to free space on disk after remove)
close_log Beende Protokollierung in Datei
daemon detach process from console and run in background
debug_client <client nums> debug message in communications with these clients
debug_file <client nums> debug file state
debug_socks for debugging only
html_mods toggle html_mods
html_mods_style select html_mods_style <#>
html_theme <theme> select html_theme
log dump current log state to console
log_file file Beginne Protokollierung in Datei "file"
mem_stats print memory stats
reload_messages reload messages file
stdout <true|false> reactivate log to stdout
term <width> <height> set terminal width and height (devel)
use_poll <bool> use poll instead of select
Network/Bittorrent
compute_torrent <filename> generate the corresponding <filename>.torrent file in torrents/tracked/. The file is automatically tracked, and seeded if in incoming/
torrents print all .torrent files on this server
Network/Donkey
client_stats show breakdown of download/upload by clients brand
cs show table of download/upload by clients brand
csm show table of download/upload by eMule MODs
dump_reliability display the reliability of sources
Network/Edonkey
add_url <kind> <url> load this file from the web. kind is either server.met (if the downloaded file is a server.met)
afr <ip> [<port>] add a friend
bp <port1> <port2> ... add these ports to the port black list
bs <ip1> <ip2> ... add these IPs to the servers black list
clh clear local history
comment <md4> "<comment>" add comment on a md4
comments <filename> load comments from file
dd <size> <md4> download from size and md4
dup find duplicate chunks (experimental)
id print ID on connected servers
import <dirname> import the config from dirname
import_temp <temp_dir> import the old edonkey temp directory
load_old_history load history.dat file
n <ip> [<port>] add a server
port <port> change connection port
recover_bytes <f1> <f2> ... try to recover these files at byte level
remove_old_servers remove servers that have not been connected for several days
scan_temp print temp directory content
send_servers send the list of connected servers to the redirector
servers <filename> add the servers from a server.met file
set_brothers <f1> <f2> ... define these files as probably colocated
sources show sources currently known
vu view upload credits
xs extend the last search
Network/FileTP
http <url> start downloading this URL
mirror <url> start downloading this URL
Network/G2
g2stats print stats on G2 network
Network/Gnutella
gstats print stats on Gnutella network
Network/Overnet
boot <ip> <port> add an Overnet peer
ovlink <fhalink> download fha://link
ovmd4 get client MD4 address on the overnet network
ovsearch search keyword (<md4>)
ovstats Overnet Stats
ovstore dump the Overnet File Store
ovtst (not documented)
ovtst2 (not documented)
ovweb <urls> download .ocl URLS (no arg load default)
send_udp send UDP message (<ip> <port> <msg in hex>)

Verwendung

Starten von Mldonkey.

$ mlnet > /dev/null 2>&1 &

Mldonkey kann danach im lokalen Webbrowser über "http://localhost:4080/" aufgerufen werden.

MLDonkey created a new home directory in /home/mik/.mldonkey

        --Buildinfo--
Version:         MLNet Multi-Network p2p client version 2.7.4
Networks:        Global Shares  Gnutella  G2  Fasttrack  FileTP  BitTorrent  Donkey (SUI)
Ocaml version:   3.09.1 - C compiler version: 4.0.2 - C++ compiler version: 4.0.2
Build on:        Linux i686 2.6.13-15.8-default (little endian) with glibc 2.3.5
Configure args:  --enable-batch --enable-gui
Features:        threads zlib-1.2.3 bzip2-1.0.3 gd(jpg/png-1.2.8) iconv no-check-bounds

        --Runinfo--
User:            admin (Warning: empty Password) - uptime: 0m 13s
Enabled nets:    Donkey Overnet BitTorrent FileTP
Server usage:    enabled
Geoip:           disabled, to enable adjust web_infos in downloads.ini for automatic download
IP blocking:     disabled, to enable adjust web_infos in downloads.ini for automatic download
System info:     Linux kanzler 2.6.13-15.8-default #1 Tue Feb 7 11:07:24 UTC 2006 i686
                 language: DE - locale: ISO-8859-1 - UTC offset: +0100
                 max_string_length: 16777211 - word_size: 32 - max_array_length: 4194303
                 max file descriptors: 1024 - max useable file size: 2^63-1 bits (do the maths ;-p)

Links

Einige Netzwerke (darunter Edonkey, Overnet und Bittorrent) arbeiten mit Links, die im WWW gefunden werden können. Diese Links zeigen gewissermassen auf die herunterzuladende Datei. Andere Netzwerke (darunter Gnutella, Soulseek und Fasttrack können diese Links nicht verwenden. Hence, mlnet search feature needs to be used within xDonkey.

Edonkey / Overnet

Ein Edonkey-Link sieht wie folgt aus.

ed2k://|file|XDonkey.dmg|4095788|d9224da0048123a9f1e6eb4751c22347|

Mit Hilfe des Plugins Mozilla Mldonkey Protocol Handler können die ed2k-Links direkt aus dem Webbrowser Firefox an Mldonkey geschickt werden. Dafür müssen allerdings unter "about:config" folgende Parameter gesetzt werden.

extensions.mldonkey.mode {mldonkey/emule} 
extensions.mldonkey.pass
extensions.mldonkey.port
extensions.mldonkey.server

Leider gibt es zur Zeit (24. Juli 2008) keine Version dieses Plugins, das mit Firefox 3.0.1 zusammenarbeitet - die Plugin-Version 2.3 taugt leider nicht.

Eine andere Möglichkeit, an gültige Server zu kommen, ist die Eingabe der folgenden Zeile in die Mldonkey-Befehlszeile.

urladd server.met http://www.gruk.org/server.met 36

Siehe dazu auch:

Overnet-Link

Ein Overnet-Link sieht wie folgt aus.

fha://|file|XDonkey.dmg|4095788|d9224da0048123a9f1e6eb4751c22347|

Um einen Link in Mldonkey zu importieren, muss er erst in die Zwischenablage kopiert und dann ins Feld "ed2klink" der Schaltfläche "Search" eingefügt werden. bevor auf "Download" geklickt werden kann.

Bittorrent

Das Bittorrent-Netzwerk erlaubt keine Suche. Hier wird entweder eine besondere Datei mit der Endung ".torrent" benötigt oder man braucht die genaue Internetadresse der Datei, um sie herunterladen zu können. Um das Herunterladen zu beginnen, muss die Internetadresse der Datei oder ihr Pfad in das "e2dklink" der Schaltfläch "Search" eingegeben werden.

Beispiel (wobei sich die Datei "xxx.torrent" auf dem eigenen Desktop befindet).

 http://xdonkey.macdk.net/dl/XDonkey.torrent
 /home/abc/Desktop/xxx.torrent

HTTP

Zum Herunterladen einer HTTP-Hyperlinks wird in die Mldonkey-Befehlszeile folgendes eingegeben.

http http://xdonkey.macdk.net/dl/XDonkey.dmg

FTP

Zum Herunterladen eines FTP-Hyperlinks wird in die Mldonkey-Befehlszeile folgendes eingegeben.

http ftp://xdonkey.macdk.net/dl/XDonkey.dmg

FAQ

Not replacing deleted config file

Bei der Installation kann folgender Fehler auftreten: "Not replacing deleted config file /etc/default/mldonkey-server".

mik@esel:~$ sudo apt-get install mldonkey-server
[sudo] password for mik: 
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Reading state information... Fertig
Vorgeschlagene Pakete:
  makejail
Die folgenden NEUEN Pakete werden installiert:
  mldonkey-server
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Es müssen noch 0B von 2582kB Archiven geholt werden.
After this operation, 6545kB of additional disk space will be used.
Vorkonfiguration der Pakete ...
Wähle vormals abgewähltes Paket mldonkey-server.
(Lese Datenbank ... 16199 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke mldonkey-server (aus .../mldonkey-server_2.9.2-2build1_i386.deb) ...
Richte mldonkey-server ein (2.9.2-2build1) ...
Not replacing deleted config file /etc/default/mldonkey-server

Das liegt an einer vorausgehenden unvollständigen Deinstallation (z. B. per Hand) des Pakets "mldonkey-server". Mit folgendem Befehl wird das Paket "mldonkey-server" vollständig entfernt. Wichtig ist vor allem der Schalter "--purge", denn "remove" allein genügt nicht!

mik@esel:~$ sudo apt-get remove --purge mldonkey-server
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Reading state information... Fertig
The following packages were automatically installed and are no longer required:
  libgd2-noxpm libjpeg62 libfreetype6
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
  mldonkey-server*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 8 nicht aktualisiert.
After this operation, 6545kB disk space will be freed.
Möchten Sie fortfahren [J/n]? J
(Lese Datenbank ... 16301 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne mldonkey-server ...
Lösche Konfigurationsdateien von mldonkey-server ...
Not removing MLDonkey directory (/var/lib/mldonkey, /var/run/mldonkey), user and group.
Remove it manually if needed.
Not removing MLDonkey directory (/var/lib/mldonkey, /var/run/mldonkey), user and group.
Remove it manually if needed.

Danach ist eine ganz gewöhnliche Installation wieder möglich.

mik@esel:~$ sudo apt-get install mldonkey-server
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Reading state information... Fertig
Vorgeschlagene Pakete:
  makejail
Die folgenden NEUEN Pakete werden installiert:
  mldonkey-server
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Es müssen noch 0B von 2582kB Archiven geholt werden.
After this operation, 6545kB of additional disk space will be used.
Vorkonfiguration der Pakete ...
Wähle vormals abgewähltes Paket mldonkey-server.
(Lese Datenbank ... 16184 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke mldonkey-server (aus .../mldonkey-server_2.9.2-2build1_i386.deb) ...
Richte mldonkey-server ein (2.9.2-2build1) ...

Creating config file /etc/default/mldonkey-server with new version
Starting MLDonkey: mlnet.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif Sourceforge eng MLdonkey Project Wiki : the official Wiki of MLDonkeywbm Offizielle Homepage
country DE.gif Mldonkey.org ger Deutsches MLDonkey Projekt Wikiwbm
country DE.gif Mldonkey.org ger Mldonkey.org : offizielle deutsche Communitywbm
country US.gif CBMaurice eng OCBMauricewbm
Serverliste
country DE.gif Alexander Schmidt ger Server List for eDonkey and eMulewbm
Serverliste
country DE.gif Wikipedia ger MLDonkeywbm Enzyklopädischer Artikel

Alte Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif eng wbm.gif mldonkey.dyndns.info : your MLDonkey file archive
http://mldonkey.dyndns.info/