MLDonkey – klient eDonkey i BitTorrent

MLDonkey – to rewolucyjny klient sieci p2p obsługujący wiele różnych protokołów. Rozpowszechniany na licencji GPL. Oryginalnie MLDonkey powstał jako klient sieci eDonkey i Overnet, stąd nazwa programu. Jednakże w chwili obecnej obsługuje dobrze następujące sieci / protokoły:

MLDonkey logo

MLDonkey logo

  • eDonkey,
  • Overnet,
  • Kademlia,
  • BitTorrent,
  • Direct Connect,
  • HTTP/FTP;
  • oraz testowo:

  • FastTrack,
  • SoulSeek,
  • Gnutella,
  • Gnutella2.

Tak więc uruchamiając MLDonkey mamy do dyspozycji niejako kilka klientów, dzięki temu nie musimy odpalać kilku różnych programów, co z kolei wpływa na oszczędność zasobów systemu.

MLDonkey napisany jest w języku programowania Objective Caml. Początkowo dostępny był jedynie dla systemu operacyjnego Linux. Użytkownicy Linuksa znają liczne zalety tego programu i chętnie z niego korzystają. Mimo, że port dla Windowsa istnieje już od dłuższego czasu, to jednak na tej platformie MLDonkey, nie jest tak doceniany. Celem tego artykułu jest przekonanie użytkowników Windowsa do skorzystania z MLDonkey.

Jakie są zatem podstawowe zalety MLDonkey?

  1. Jak na wstępnie wspomniałem obsługuje wiele sieci p2p.
  2. Podobnie jak jego największy konkurent znany z Windowsa µTorrent ma niezwykle wręcz małe wymagania systemowe.
  3. Można go uruchomić jako daemon / usługę systemową, oznacza to że będzie działał niezależnie od tego kto i czy w ogóle jest zalogowany na komputerze.
  4. Oferuje możliwość zdalnego dostęp do programu przez sieć z innego komputera.
  5. I w końcu niezwykle rozbudowane opcje konfiguracji.

MLDonkey działa w architekturze klient / serwer

MLDonkey można uruchomić w tle jako daemon (usługa systemowa). Można oczywiście uruchomić go z poziomu zwykłego użytkownika jako samodzielny program, ale wtedy traci jedną ze swych istotnych zalet. Tak więc w tym artykule przyjmujemy, że MLDonkey statuje jako jako daemon (usługa systemowa). Zadaniem tej usługi jest ściągnięcie zakolejkowanych uprzednio plików oraz jednoczesne ich udostępnianie. Jeśli chcemy coś w programie zmienić (np. dodać kolejny plik do ściągnięcia) musimy się połączyć klientem do serwera (daemona) programu. Takie rozwiązanie ma to znaczenie ze względu na oszczędność zasobów. W przypadku Linuksa funkcjonalność uruchamiania programu jako daemona jest wbudowana w programie. W przypadku Ubuntu i pochodnych dystrybucji wystarczy więc wydać polecenie:

a następnie odpowiedzieć twierdząco na pytanie czy program ma startować wraz z systemem.

Launch MLDonkey at startup

Launch MLDonkey at startup

Natomiast w przypadku Windowsa musimy się trochę nagimnastykować. Najpierw ściągamy kompilację MLDonkey dla Windows. I rozpakowujemy do dowolnego katalogu np.: C:\Program Files\MLDonkey. Następnie ściągamy dodatkową aplikację Launcher Service, dzięki której odpalimy MLDonkey jako usługę systemową. Również ją rozpakowujemy do dowolnego katalogu np.: C:\Program Files\LaunchServ. Nasępnie edytujemy plik LaunchServ.ini, w pliku tym musimy zmienić jedynie 3 wiersze, zaznaczone poniżej pogrubioną czcionką:

W Executable podajemy ścieżkę dostępu do aplikacji MLDonkey, w WorkDir podajemy katalog roboczy, ja wybieram katalog do którego rozpakowałem aplikację MLDonkey. Proponuję także wyłączyć zatrzymywanie / wznawianie usługi w zależności od stanu połączenia z Internetem – opcja CheckInternet nie działa prawidłowo i u mnie po odhibernowaniu komputera usługa nie była wznawiana. W końcu uruchamiamy skrypt Install Service.bat. Usługa MLDonkey powinna być uruchomiona, co sprawdzimy wchodząc do Panelu sterowania -> Narzędzia administracyjne -> Usługi:

Usługa MLDonkey uruchomiona

Usługa MLDonkey uruchomiona

W przypadku Cygwina wykonujemy:

przy czym ostatnie 2 komendy jako administrator Windowsa.

Interfejsy użytkownika MLDonkey

No to stronę serwera mamy z grubsza omówioną. Teraz pora na klienty. Możemy je podzielić na 3 grupy:

Najprościej skorzystać z drugiej opcji. W przypadku instalacji lokalnej wystarczy w przeglądarce WWW wpisać adres: http://localhost:4080. Naszym oczom powinien się ukazać interfejs webowy jak na poniższym obrazku:

MLDonkey - web interface

MLDonkey - web interface

Jeśli chodzi o wstępną konfigurację programu od razu sugeruję dokonanie 3 zmian. Domyślna konfiguracja programu dostosowana jest do łącz jakie były dostępne kilka lat temu – aby nie zablokować sobie całego pasma należało od góry ograniczyć prędkość pobierania i udostępniania. Przy obecnych prędkościach nie ma to większego sensu, dlatego zmieniamy wchodzimy w Options, gdzie opcje max_hard_upload_rate i max_hard_download_rate zerujemy. W przypadku dystrybucji Cygwin musimy jeszcze włączyć protokół BitTorrent na zakładce Net opcja enable_bittorrent.

MLDonkey oferuje możliwość blokowania niechcianych połączeń po numerach IP. Domyślna lista blokowanych numerów IP ściągana jest z adresu: http://www.bluetack.co.uk/config/level1.gz. Prócz tej listy dostępne jest jeszcze kilkanaście innych, dla zwiększenia bezpieczeństwa możemy te listy połączyć w jedną i używać jej w MLDonkey. Zmieniamy to w Options -> Web infos. Poniżej przedstawiam skrypt bash, który to za nas zrobi. Opis poszczególnych list dostępny jest na stronie BISS.

Efekt działania powyższego skryptu dostępny jest pod adresem http://jazz.tvtom.pl/download/guarding.p2p.gz do wykorzystania nie tylko w MLDonkey. Plik jest aktualizowany codziennie.

Gotowy string do wklejenia do MLDonkey: guarding.p2p http://jazz.tvtom.pl/download/guarding.p2p.gz 96.

Konfiguracja firewalla i routera dla MLDonkey

Jeśli dysponujemy zewnętrznym adresem IP, warto z niego zrobić użytek i odpowiednio skonfigurować firewalla, tak żeby łącząc się z serwerami sieci eDonkey uzyskiwać tzw. High ID. W przypadku Linuksa proponuję skorzystać z artykułu o iptables. Na końcu artykułu podany jest gotowy do ściągnięcia skrypt firewalla, który odblokowuje ruch przychodzący na portach powyżej 1024, czy na portach z których korzystają wszystkie programy do wymiany danych typu P2P.

W przypadku Windowsa domyślnie zapora systemowa blokuje cały ruch przychodzący, musimy zatem dodać wyjątki do odblokowania. Odpalamy zatem jakiegoś klienta MLDonkey najprościej WWW i wydajemy komendę portinfo. Zwróci nam ona wszystkie używane przez MLDonkey porty:

MLDonkey - portinfo

MLDonkey – portinfo

Wiemy już które porty musimy otworzyć, zatem odpalamy konsolę z uprawnieniami administratora i dodajemy regułki:

W przypadku Cygwina inna będzie jedynie ścieżka dostępu do pliku mlnet.exe, przykładowo:

Nie wklejajcie tych reguł bezmyślnie, część z portów będzie się u Was różnić, dlatego konieczne jest uprzednie sprawdzenie ich za pomocą wspomnianej komendy portinfo.

Na koniec trzeba jeszcze przekierować powyższe porty na naszym routerze. Nie opiszę tego procesu krok po kroku, gdyż zależy to od oprogramowania kontrolującego nasz router. Niemniej jednak efekt powinien być taki jak na poniższym zrzucie ekranu z routera z OpenWrt:

MLDonkey Port Forwards on OpenWrt

MLDonkey Port Forwards on OpenWrt

Leave a Reply

Your email address will not be published. Required fields are marked *