ubuntuusers.de

amule

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./amule-logo.png aMule ("all-platform Mule") 🇬🇧 ist ein freier und plattformunabhängiger Client für das eDonkey2000-Netzwerk (ed2k) welches mit zu den größten Filesharingnetzwerken gehört. aMule selbst ist ein Nachbau der Windowssoftware eMule und ist zu dieser völlig kompatibel, wie auch zu allen anderen Clients, die das ed2k-Netzwerk verwenden.

Installation

Folgendes Paket muss als Grundlage installiert werden:

  • amule (universe, bis 19.10)

Paketliste zum Kopieren:

sudo apt-get install amule 

Oder mit apturl installieren, Link: apt://amule

Danach kann das Programm als amule oder aus dem Gnome-Menü "Anwendungen → Internet → aMule" gestartet werden. ./amule-gui.png

Verbindung herstellen

Allgemeines

Wie bei jeder Internetanwendung muss darauf geachtet werden, dass die verwendeten Ports von aMule nicht durch eine eventuell vorhandene Firewall (sei es intern oder extern) blockiert werden oder schon einem anderen Rechner im lokalen Netzwerk zugewiesen wurden. Die verwendeten Ports können bei aMule unter "Einstellungen/Verbindung" frei bestimmt werden. Weitere Tipps finden sich in der eMule-Dokumentation Ports (emule-project.net) 🇩🇪 und Allgemein (emule-project.net) 🇩🇪.

Portweiterleitung

Man sollte hierfür dem Rechner eine feste IP-Adresse zuteilen bzw. per DHCP immer die selbe vergeben lassen. Ansonsten ändert sich die IP des amule-Rechners regelmäßig. Dann ist die Portweiterleitung falsch konfiguriert und man hat eine Low-ID.

Es müssen folgende Ports weitergeleitet werden:

4662/TCP auf <Rechner-IP>:4662
4672/UDP auf <Rechner-IP>:4672
4712/TCP auf <Rechner-IP>:4712 für die Fernsteuerung
4711/TCP auf <Rechner-IP>:4711 für den Webserver

Diese Ports lassen sich unter "Einstellungen → Verbindung" bzw. "Fernsteuerung" ändern.

Eine Portweiterleitung wird empfohlen, da dadurch mehr Quellen genutzt werden können (Quellen mit LowID können nur angesprochen werden, wenn man selbst eine HighID hat, siehe Über die ID (emule-project.net)) 🇩🇪.

Portweiterleitung mittels UPnP

UPnP ermöglicht eine automatische Portweiterleitung. aMule sendet dem Router die Information, welche Ports geöffnet werden müssen. Bei vielen Routern muss man die Unterstützung von UPnP explizit aktivieren. Bei manchen routern (Cisco) ist dies gar nicht implementiert. Hier sollte man eine Portweiterleitung manuell einrichten. Bei aktivem UPnP kann jede Applikation auf einem Rechner im Netzwerk Ports öffnen. Dies kann z.B. von Schadsoftware ausgenutzt werden. Eine manuelle Portweiterleitung ist sicherer und sollte UPnP vorgezogen werden.

Im aMule aktiviert man UPnP unter "Einstellungen → Verbindung → UPnP aktivieren". Für die Fernsteuerung bzw. den Webserver muss auch noch die entsprechende Option unter "Fernsteuerung" aktiviert werden.

Server

Um Verbindung mit dem ed2k-Netzwerk aufzunehmen, bietet sich am Anfang an, die zentrale (Server-gestützte) Methode zu verwenden. Falls aMule dies nicht schon direkt bei Programmstart getan hat (zu Erkennen an den Symbolen ganz unten rechts), wählt man im Hauptfenster "Server" und linke Maustaste-klickt links oben auf das Symbol neben der schon eingetragenen Internetadresse, um eine frische Liste laden zu lassen. Anschließend wird die Verbindung mittels eines Klicks auf "Verbinden" oben in der Symbolleiste hergestellt.

Kademlia

Die serverlose Verbindungsart Kademlia ermöglicht es den Usern direkt über andere User zu kommunizieren ohne Verwendung eines ed2k-Servers.

Kad lässt sich unter "Einstellungen/Verbindung" im unten stehenden Abschnitt "Netzwerke" aktivieren. Zu Beginn steht beim Verbindungsstatus (wieder ganz unten rechts) bei Kad immer "Firewalled", dies sollte sich jedoch spätestens nach ca. 5 Minuten ändern. Falls nicht, ist der verwendete UDP-Port anscheinend nicht zu erreichen. Sobald Kad einmal an Fahrt aufgenommen hat, kann die Server-gestützte Methode getrost deaktiviert werden, indem wieder unter "Einstellungen/Verbindung" der Haken bei "ed2k" entfernt wird.

Um auf Server gänzlich zu verzichten, lässt sich bei Bedarf auch eine vorgefertigte Liste für Kad manuell von nodes-dat.com 🇩🇪 laden. Die Datei nodes.dat muss dabei im Verzeichnis von aMule platziert werden.

Optimieren

aMule kommt von Haus aus mit recht moderaten Verbindungseinstellungen daher. Diese funktionieren einwandfrei, können aber hier und da noch etwas auf den persönlichen Anschluss abgestimmt werden. Interessant sind die "maximalen Verbindungen" unter "Einstellungen/Verbindung", sowie die "maximalen Verbindung pro 5 Sekunden" unter "Einstellungen/Erweitert". Erstere Option bestimmt, wie viele Verbindungen insgesamt gehandhabt werden; letztere wie schnell Verbindungen aufgebaut werden. Für aMule selbst gilt bei beiden: Je höhere die Werte desto besser. Allerdings reagieren vornehmlich ältere Router und/oder Modems empfindlich auf zu viele Verbindungen, sodass es hier zur Überlastung, im schlimmsten Fall gar zum Absturz kommen kann. Halbwegs moderne und qualitative Geräte sollten an die 500 Maximalverbindungen (statt 200) und ca. 40 Verbindungen pro 5 Sekunden (statt 20) aushalten. Dies sind aber nur ungefähre Anhaltspunkte und sollten individuell getestet werden.

Tipps

Fakes entlarven

Beim Filesharing spricht man von einem Fake (einer Fälschung), wenn eine Datei - oder anders gesagt ein Download - einen falschen Namen hat. So könnte beispielsweise eine Datei "ubuntu-lucid.iso" heißen, tatsächlich aber ein Film oder sonstiges sein. Dies ergründet sich auf der Tatsache, dass Dateien nicht anhand ihrer Benennung identifiziert werden, sondern an ihrer Prüfsumme. Der Dateiname kann beliebig geändert werden, und man kann sich denken, dass hier oft Schabernack getrieben wird. Es gibt zwei Möglichkeiten einen Fake frühzeitig zu erkennen:

  • Nachdem der Download der Datei gestartet wurde, wartet man im Hauptfenster kurz ab, bis einige Quellen gefunden wurden. Nun einen Rechtsklick auf die Datei und "Zeige Dateieigenschaften" gewählt. Im unten stehenden Feld des sich öffnenden Fensters werden nun alle Namen für diese Datei aufgelistet und wie viele der gefundenen Quellen (Benutzer) den jeweiligen Namen verwenden. Hat man nun die Datei unter dem Namen "ubuntu-lucid.iso" gefunden, verwenden aber nur 1-2 Quellen diesen Namen, und entgegen 50 Quellen z.B. den Namen "big_buck_bunny.avi", kann man sich sicher sein, dass man hier eher den Film als das Ubuntu-Image lädt. Diese Methode funktioniert natürlich nicht immer, denn hat die Datei insgesamt nur 1-2 Quellen, kann man diesen Vergleich kaum mehr anstellen.

  • Lädt man eine Video- oder Audiodatei, kann diese meist lange vor ihrer Fertigstellung vorab angeschaut/angehört und somit als echt verifiziert werden. Hierzu empfiehlt sich sehr der Medienspieler VLC. In aMule sollte nun in den Einstellungen unter "Dateien" die Option "Versuche, zuerst die ersten und letzten Dateiteile herunterzuladen" aktiviert werden. Anschließend in die Rubrik "Allgemein" wechseln und unten im Abschnitt "Videoplayer" z.B. den Befehl vlc eintragen. Die darunter stehende Option zur Erstellung einer Kopie ist mit VLC nicht nötig. Nun muss nur ein kleiner Teil am Anfang der Datei heruntergeladen werden um diese bereits vor der Fertigstellungen mittels rechte Maustaste-Klick/Vorschau im VLC kurz anschauen zu können. Sollte der Punkt "Vorschau" nicht anwählbar sein, sind entweder noch nicht genug Daten übertragen worden (abzuschätzen am Fortschrittsbalken) oder die Datei ist eben keine Video-/Audiodatei und somit wieder ein Fake.

aMules Daemon

Wie alle Filesharingprogramme sollte auch aMule über längere Zeit - wenn nicht sogar rund um die Uhr - laufen. Möchte man am selben Rechner aber noch andere Dinge tun, empfiehlt sich amuled, welches als Daemon im Hintergrund arbeitet und dabei wesentlich weniger Anspruch an Prozessor und Arbeitsspeicher stellt. Da er keine grafische Benutzeroberfläche besitzt, kann der Daemon auch auf einem Server installiert und ferngesteuert werden. Folgendes Paket muss nachinstalliert werden:

  • amule-daemon (universe )

Paketliste zum Kopieren:

sudo apt-get install amule-daemon 

Oder mit apturl installieren, Link: apt://amule-daemon

Nachdem man nun bei aMule alle Einstellungen getätigt und es beendet hat, öffnet man mit einem Texteditor[4] die Datei amule.conf im Ordner von aMule. Dort muss beim Eintrag AcceptExternalConnections=0 die anstehende 0 in 1 geändert werden. Nun startet man amuled einmalig mit folgendem Befehl:

amuled --ec-config 

Hier legt man nun ein Passwort fest und startet amuled fortan mit dem gleichen Befehl ohne anstehende Option --ec-config.

Achtung!

Der Daemon öffnet am System einen zusätzlichen Port, über welchen er ferngesteuert werden kann. Es ist deshalb wichtig, ein sicheres Passwort zu wählen, damit keine Fremdperson Down- und Uploads starten kann.

Zusätzlich kann in der Datei amule.conf am Punkt ECAddress= eine berechtigte IP-Adresse eingetragen werden, damit Anmeldeversuche von allen anderen Adressen ignoriert werden, selbst wenn das Passwort korrekt sein sollte. Betreibt man den Daemon nur lokal, um Systemressourcen zu sparen, empfiehlt es sich, ihn an die Adresse 127.0.0.1 zu binden, damit alle externen Zugriffsversuche abgelehnt werden.

Um den Daemon mit dem System starten und beenden zu lassen finden sich im amule-Wiki 🇩🇪 einige Ratschläge.

aMule oder den Daemon fernsteuern

Ein weiteres Zusatzprogramm ist amulecmd. Dabei handelt es sich um ein Terminalprogramm, mit welchen sich Befehle an aMule bzw. amuled senden lassen, sowohl auf demselben Rechner als auch im lokalem Netzwerk und übers Internet. amulecmd befindet sich zusammengefasst mit anderen Zusatzprogrammen in folgendem Paket:

  • amule-utils (universe )

Paketliste zum Kopieren:

sudo apt-get install amule-utils 

Oder mit apturl installieren, Link: apt://amule-utils

Um beispielsweise den Daemon auf demselben Rechner zu steuern, sollte es genügen, amulecmd ohne Optionen aufzurufen:

amulecmd 

Der Daemon sollte eigenständig gefunden und anschließend der Benutzer nach dem Passwort gefragt werden. Nun übernimmt amulecmd das Terminal und es können Befehle erteilt werden. Eine Auflistung erhält man durch den Befehl help.

Befindet sich aMule/amuled auf einem anderen Rechner, muss dieser beim Aufruf von amulecmd angegeben werden, bspw.:

amulecmd -h 123.456.7.89 -p 666 

Bei diesem Beispiel soll amulecmd sich mit dem Rechner verbinden, dessen Adresse (-h = Host) 123.456.7.89 und dessen Port (-p = Port) 666 ist.

Wenn man im Firefox auf einen ed2k-Link klickt, wird man mit einer Fehlermeldung begrüßt. Das ist natürlich nicht Sinn der Sache.

Das kann man auch sehr leicht ändern. Zunächst muss folgendes Paket installiert werden:

  • amule-utils (universe )

Paketliste zum Kopieren:

sudo apt-get install amule-utils 

Oder mit apturl installieren, Link: apt://amule-utils

Danach im Firefox "about:config" in die Adresszeile eingeben und per Rechtsklick folgende Werte hinzufügen:

network.protocol-handler.external.ed2k          boolean         true
network.protocol-handler.app.ed2k               string          /usr/bin/ed2k
network.protocol-handler.expose.ed2k            boolean         false

Dann auf einen ed2k-Link klicken. Firefox fragt, mit welcher Anwendung er geöffnet werden soll. "/usr/bin/ed2k" auswählen, dann sollte es funktionieren.

Nun kann man mit einem Klick auf einen ed2k-Link einen Ladevorgang ("download") in die Liste einfügen. Leider bekommt man mit dieser Variante keine Rückmeldung, ob dies erfolgreich war.

Hier ein kleines Skript (nur für GNOME), das zuerst eine optische Meldung ausgibt:

#!/bin/bash
FILENAME="$(echo $1 | cut -d'|' -f3 | sed 's/%20/ /g')"
gdialog --msgbox "<b>Datei wurde der Liste hinzugefügt</b>
$FILENAME"
/usr/local/bin/ed2k $1

Einfach unter ~/.ed2khandler speichern und network.protocol-handler.app.ed2k auf ~/.ed2khandler setzen.

Nun bekommt man zuerst ein kleines Hinweisfenster, dass der Ladevorgang hinzugefügt wurde.

Inhalte von eMule-collections anzeigen

eMule-Collections sind Dateien, die mehrere ed2k-Links zu verschiedenen Dateien enthalten. Diese sind z.B. in der eMule Content-DB 🇬🇧 zu finden.

Um die einzelnen Links sichtbar zu machen, gibt es das Tool amule-emc. Dies muss mit

sudo apt install amule-emc 

installiert werden.

Dann kann eine Datei mit

emule-emc <Dateiname.emulecollection> 

ausgelesen werden. Der Inhalt kann dann direkt in das untere Feld im aMule kopiert werden. Dann kann man den Download der Dateien starten.

Problemebehebung

Low-ID

Eine Low-ID kommt zustande, wenn der Rechner, auf dem aMule läuft, von Server (z.B TVUnderground) nicht über den angegebenen Port erreichbar ist. Dies kann mehrere Ursachen haben. Da die meisten Benutzer hinter einem sog. NAT-Router sitzen, ist eine Port-Weiterleitung notwendig. Es ist sinnvoll, dem Rechner, auf dem aMule läuft, eine feste IP zu vergeben bzw. per DHCP immer die selbe IP vergeben zu lassen. Es muss ein Port 4662 TCP und ein Port 4672 UDP weitergeleitet werden. Unter Ubuntu werden, wenn nicht anders eingerichtet, keine Ports von einer Firewall blockiert. Meist ist es der Router, auf dem noch zusätzlich der Port freigegeben werden muss, zusätzlich zu Weiterleitung.

Von einem anderen Rechner kann man mittels Portscanner (z.B. nmap) prüfen, ob aMule erreichbar ist. Zusätzlich sollte man in den Einstellungen prüfen, welche Ports aMule nutzt. Man kann dies mit

nmap 127.0.0.1 

tun.

Hier sollte man jetzt den verwendeten TCP-Port vorfinden. Wenn nicht, ist die Konfiguration von aMule fehlerhaft, oder man hat eine bestimmte IP in den Einstellungen festgelegt, auf der aMule lauschen soll. Dann muss dieser anstatt 127.0.0.1 genutzt werden.

Sollte es immer noch nicht klappen, sollte man die Portweiterleitung auf Korrektheit überprüfen.

DualStack (oft genutzt bei Unitymedia)

Hierbei ist der Router de Benutzers nicht direkt mit dem Internet verbunden, sondern ist hinter einem riesigen NAT des Providers. Eine Portweiterleitung ist hier nicht möglich. Man hat immer eine Low-ID.

Keine Verbindung zu einem Server möglich

Hier sollte zuerst eine aktuelle Serverliste von Gruk.org 🇬🇧 oder server-met.de 🇬🇧 heruntergeladen und zu aMule hinzugefügt werden. Dann kann sich mit den darin enthaltenen Servern verbunden werden.

Man kann dies auch direkt im aMule machen. Netzwerke –> in der Leiste Server den Link zur server.met eintragen. Links davon auf den Play-Button klicken.

Alternativ kann auch, wenn die ed2k-Erweiterung für den Browser eingerichtet ist, links mit ed2k-Protokoll genutzt werden (z.B. add to eMule auf gruk.org).

Sollte das auch nicht funktionieren, muss geprüft werden, ob ein Router oder eine Firewall im Netzwerk die Kommunikation über den Port blockiert. Dies wird z.B. oft in Firmen oder Schulen praktiziert.

Port wird verwendet

Zuerst sollte mit dem Taskmanager überprüft werden, ob eine andere Instanz von aMule schon läuft. Ist dies nicht der Fall, so kann man mit

sudo fuser -k 4662/tcp 

bzw.

sudo fuser -k 4672/udp 

(Ports eventuell anpassen) herausfinden, welcher Prozess den Port nutzt, um diesen dann zu beenden.

Diese Revision wurde am 14. April 2020 22:25 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: P2P, Filesharing, Internet