[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./amule-logo.png, 40, align=left)]] [http://www.amule.org/ aMule] ("all-platform Mule") {en} ist ein freier und plattformunabhängiger Client für das [wikipedia:EDonkey2000: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: {{{#!vorlage Paketinstallation amule, universe, bis 19.10 und wieder ab 20.10 }}} Danach kann das Programm als `amule` oder aus dem Gnome-Menü ''"Anwendungen -> Internet -> aMule"'' gestartet werden. = Verbindung herstellen = [[Bild(./amule-gui.png, 350, align=right)]] == Allgemeines == Wie bei jeder Internetanwendung muss darauf geachtet werden, dass die verwendeten [wikipedia:Port (Protokoll):Ports] von aMule nicht durch eine eventuell vorhandene [wikipedia:Firewall:] (sei es [wikipedia:Personal_Firewall:intern] oder [wikipedia:Firewall#Externe_.28Netzwerk-_.2F_Hardware-.29_Firewall: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 [https://www.emule-project.net/home/perl/help.cgi?l=2&rm=show_topic&topic_id=67 Ports (emule-project.net)] {de} und [https://www.emule-project.net/home/perl/help.cgi?l=2&rm=show_topic&topic_id=27 Allgemein (emule-project.net)] {de}. == 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 :4662 4672/UDP auf :4672 4712/TCP auf :4712 für die Fernsteuerung 4711/TCP auf :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 [https://www.emule-project.net/home/perl/help.cgi?l=2&rm=show_topic&topic_id=42 Über die ID (emule-project.net)]) {de}. === 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 [[Vorlage(Tasten, lmt)]]-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 [http://www.nodes-dat.com/ nodes-dat.com] {de} 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 [wikipedia: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 [[Vorlage(Tasten, rmt)]]-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: {{{#!vorlage Paketinstallation amule-daemon, universe }}} 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: {{{#!vorlage Befehl amuled --ec-config }}} Hier legt man nun ein Passwort fest und startet amuled fortan mit dem gleichen Befehl ohne anstehende Option `--ec-config`. {{{#!vorlage Warnung Der Daemon öffnet am System einen zusätzlichen Port, über welchen er ferngesteuert werden kann. Es ist deshalb wichtig, ein [:Sicherheits_1x1#Passwoerter: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 [http://wiki.amule.org/wiki/FAQ_amuled-de amule-Wiki] {de} 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: {{{#!vorlage Paketinstallation amule-utils, universe }}} Um beispielsweise den Daemon auf demselben Rechner zu steuern, sollte es genügen, amulecmd ohne Optionen aufzurufen: {{{#!vorlage Befehl 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.: {{{#!vorlage Befehl 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. == ed2k-Links per Browser übernehmen lassen == 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: {{{#!vorlage Paketinstallation amule-utils, universe }}} 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 "Datei wurde der Liste hinzugefügt $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 [https://contentdb.emule-project.net/ eMule Content-DB] {en} zu finden. Um die einzelnen Links sichtbar zu machen, gibt es das Tool amule-emc. Dies muss mit {{{#!vorlage Befehl sudo apt install amule-emc }}} installiert werden. Dann kann eine Datei mit {{{#!vorlage Befehl emule-emc }}} 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 {{{#!vorlage Befehl 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 [http://gruk.org/list Gruk.org] {en} oder [http://www.server-met.de/ server-met.de] {en} 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-Links-per-Browser-uebernehmen-lassen 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 {{{#!vorlage Befehl sudo fuser -k 4662/tcp }}} bzw. {{{#!vorlage Befehl sudo fuser -k 4672/udp }}} (Ports eventuell anpassen) herausfinden, welcher Prozess den Port nutzt, um diesen dann zu beenden. = Links = * [http://wiki.amule.org/wiki/Ed2k_links_handling-de#Firefox_2_und_3_.28oder_neuere_Version.29 Erklärung im amule.org-Wiki] {de} * [http://amule.org/ Offizielle Projektseite] {en} * [http://forum.amule.org/ Offizielles aMule-Forum] {en} {de} # tag: Internet, Filesharing, P2P