понедельник, 24 марта 2008 г.

Ослиные бега. Настройка p2p клиента MLDonkey

Ни для кого наверное не секрет, что в Интернете можно найти огромное количество нужной информации (и еще больше ненужной :) ). А когда в твоем распоряжении находится безлимитный канал, пусть даже не очень скоростной, то хотя бы часть этой информации хочется перенести на свой компьютер. Особенно это касается всяких там фильмов, музыки, игр, ПО и других приятных и иногда даже полезных мелочей большого размера. Вот тут нам и приходят на помощь пиринговые сети (они же p2p сети).
По сути пиринговая сеть - это совокупность обычных компьютеров по всему миру, на которых установлено специальное ПО - клиент сети. Клиент позволяет участникам сети обмениваться друг с другом файлами и выполняет различные служебные действия. Разновидностей пиринговых сетей существует немало, но поскольку я пользуюсь только двумя из них, то речь дальше пойдет именно об этих двух сетях: eDonkey и BitTorrent.
Клиентов для этих двух сетей также существует великое множество, но уже из заголовка сообщения понятно, каким из них пользуюсь я. Итак почему именно MLDonkey? Можно было бы перечислить его многочисленные достоинства (которых действительно немало), но для этого есть специальные сайты :). Причина же моего выбора предельно проста - это первый p2p клиент, который у меня начал нормально работать на не-Windows платформе.
Итак начнем конечно с установки (данное описание приводится для Kubuntu 7.10, но вполне должно сгодиться и для других систем):

$ sudo apt-get install mldonkey-server

На этом установку можно считать закоченной. Стоит однако отметить, что MLDonkey - консольный клиент. То есть с одной стороны это может доставлять некоторые неудобства из-за отсутствия графического интерфейса, а с другой стороны дает некоторые преимущества (например удаленное управление). Скажу сразу, что существует несколько графических оболочек к MLDonkey, но ни одна из них у меня не прижилась по одной простой причине: все эти оболочки оказались либо менее функциональны, либо более запутаны, чем встроенный веб-интерфейс клиента. Именно им мы и будем пользоваться для настройки.
Но для начала нужно запустить сам клиент. Для этого набираем в консоли:

$ mlnet

Я специально не запускаю клиент в фоновом режиме, а просто сворачиваю консоль. Так гораздо удобнее его потом закрыть - простым нажатием Ctrl+C. После запуска клиента, открываем свой любимый браузер и идем прямо на http://localhost:4080/
Если все было установлено правильно, то перед нами откроется веб-интерфейс в зеленовато-болотных тонах, и это значит, что мы готовы к настройке.
Жмем кнопку Options и не спешим впадать в панику от представшего нашему взору изобилия настроек. Большинство этих настроек менять не стоит. Я менял только следующие (после изменения каждой настройки нужно обязательно нажать Enter, чтобы изменения вступили в силу):
Вкладка Client:
  • max_hard_upload_rate, max_hard_download_rate - соответственно максимальные скорости отдачи и загрузки в килобайтах в секунду (значения по-умолчанию для моего канала великоваты :) )
  • max_hard_upload_rate2, max_hard_download_rate2 - второй набор максимальных скоростей отдачи и загрузки. Очень удобная функциональность. MLDonkey позволяет переключаться между этими двумя наборами простым нажатием кнопки в веб-интерфейсе. Я устанавливаю первый набор на действительно максимальные значения для моего канала, а второй - на четверть канала. Таким образом я могу не выключать MLDonkey даже когда работаю (а работаю я через Интернет), что имеет свои плюсы в сети eDonkey (позволяет оставаться в очереди на закачку).
  • max_opened_connections - максимальное число подключений я тоже слегка уменьшаю, как и
  • max_concurrent_downloads - максимальное число одновременных закачек.
Вкладка Ports:
Здесь я добавляю в параметр allowed_ips (разрешенные IP) после 127.0.0.1 через пробел адрес второго компьютера моей домашней сети, чтобы с него тоже можно было смотреть статистику и управлять закачками.
Вкладка Net:
Поскольку MLDonkey может одновременно быть клиентом в нескольких пиринговых сетях, на этой вкладке устанавливаем, какими именно сетями мы будем пользоваться. Я ставлю true для параметров enable_kademlia (участие в этой сети бывает полезно для пользователей eDonkey), enable_donkey (собственно eDonkey) и enable_bittorrent (это конечно BitTorrent). Для всех остальных сетей ставлю false.
Вкладка All:
Здесь можно найти все предыдущие параметры и еще несколько очень важных. А именно:
  • BT-client-port - порт клиента BitTorrent. Желательно не оставлять значение по умолчанию, так как некоторые трекеры не хотят работать со стандартными портами (да и некоторые провайдеры их блокируют).
  • BT-tracker-port - порт трекера BitTorrent.
  • ED2K-port - TCP порт клиента eDonkey. UDP порт в настройках нигде не указывается, что является одним из подводных камней MLDonkey, однако вычислить его очень просто: UDP-port = TCP-port + 4.
На этом настройки на странице Options закончились, но это еще не всё :). На данном этапе самое время проверить доступность указанных нами портов. Эти порты должны быть открыты на вход иначе в сети eDonkey нам будут присваивать Low ID и придется долго стоять в очередях, а в сеть BitTorrent нас просто не пустят :).
Перезапускаем клиент из консоли и возвращаемся в веб-интерфейс.
Жмем на кнопку Help+ и в появившемся ряду дополнительных кнопок жмем на Porttest. Жмем на появившуюся вкладку Start porttest и периодически нажимаем на Refresh results пока нашему взору не откроются результаты тестов. Если видим что-то вроде Port test failure или test failed, значит плохи наши дела. Скорее всего закрыты нужные порты и нам нужно проверить настройки файрвола. Как это делать - зависит от файрвола и ситуации (возможно порты блокируются провайдером и нужно искать другие пути). Этот вариант мы рассматривать не будем, потому что в нашем случае получаем Port test successful. Мы готовы приступить к закачке.
Начнем с сети eDonkey. Эта сеть строго говоря не является пиринговой в полном понимании этого слова, поскольку в ней присутствуют серверы. Для того, чтобы начать закачку, нужно иметь не только ed2k-ссылку на нужный файл, но еще и подключиться к серверу, который знает, где это добро качать. Обычно с каждым eDonkey клиентом поставляется список серверов, но MLDonkey является в этом плане исключением. Изначально список серверов в нем девственно чист. Список серверов можно найти в Интернете, но мы пойдем более легким путем.
Жмем на кнопку Servers и в появившемся ряду кнопок жмем на Import Server.met. В появившееся окно заносим адрес http://www.gruk.org/server.met и смело жмем ОК.
Теперь для начала закачки нам нужно только нажать DL в верхнем ряду кнопок и ввести ed2k ссылку в появившемся окошке (и после этого еще нажать Input в том же окошке).
С сетью BitTorrent всё гораздо проще, поскольку она в чистом виде пиринговая. Скачиваем torrent-файл на локальный компьютер, нажимаем DL и вводим полный локальный путь к torrent-файлу.
Итак настройка закончена (надеюсь, что кто-то разберется в этих инструкциях :) ). Чтобы понаблюдать за процессом закачки жмем кнопку Transfers. Дополнительные кнопки этой страницы предоставляют следующую информацию:
  • Downloads - активные закачки
  • Downloaders - люди, у которых мы качаем
  • Uploads - активные отдачи
  • Uploaders - люди, которые у нас качают
  • Bandwidth stats - симпатичные графики, которые наглядно иллюстрируют изменение скорости закачки/отдачи за время текущего сеанса работы
  • Bandwidth toggle - переключение на другой предел скорости (если мы его настроили)
Вот собственно и все, что я хотел рассказать о настройке MLDonkey.

15 комментариев:

  1. Привет, спасибо за статью. Как раз искал нечто подобное. Осталось теперь попробовать на своей машине

    ОтветитьУдалить
  2. Кстати, в debian-based системах базовую настройку можно провести при помощи:
    dpkg-reconfigure mldonkey-server

    ОтветитьУдалить
  3. > Кстати, в debian-based системах базовую настройку можно провести при помощи:
    > dpkg-reconfigure mldonkey-server

    Спасибо за дополнение, не знал. В следующий раз обязательно попробую. Кстати, а что именно эта команда позволяет настроить в MLDonkey? Как говорится: "А вот с этого места по-подробнее" :)

    ОтветитьУдалить
  4. Спасибо, Макс, отличная статья. Я когда-то пытался разобраться с этим клиентом, но не осилил его по той причине, что разбираться с командной строкой просто не было настроения, а из всех графических интерфейсов я не нашел ни одного, который меня хоть как-то удовлетворил бы. Пожалуй, по свободе попробую еще раз, но уже по твоим инструкциям :-)

    А в нем ведь есть модуль для работы с сетями DC?

    ОтветитьУдалить
  5. Да, в нем есть модуль для работы с Direct Connect, если ты имеешь в виду эту сеть. Еще в нем есть модули для работы с Overnet и FileTP.

    ОтветитьУдалить
  6. Спасибо за статью, сам довольно долго использую mldonkey на OpenSUSE, но к сожалению он начал довольно серьезно грузить проц, и причину выявить нифига не удалось =\. К его несомненным плюсам отнесу возможность заведения внутренних акаунтов, что в связке с апачем дало возможность открыть для друзей не имеющих анлима или скоростного канала возможность юзать ослосеть забирая готовые файлы через http =). Так как сам я для себя предпочел торренты, то могу порекомендовать клиент rtorrent - консольный, вполне удобное консольное управление (через ssh рулить удобно )), подхватывает торрент-файлы скинутые в определенный для них каталог (имея фтп могу удаленно закинуть торрент и придя домой иметь скачанное то что мне нужно =))

    ОтветитьУдалить
  7. Анонимный10 июня 2008 г., 11:36

    Статья по делу, без воды. Спасибо

    ОтветитьУдалить
  8. всё хорошо,но вот такой вопрос.а как в эту замечательную вещь добавить сервер?при всех моих попытках ничего путного не выходило,он как бы добавляется,но адрес у него меняется на какой то нелепый и порт тоже.мне те серверы,которые в нём дефолту вовсе не нужны,потому как скорость на глобал ничтожно мала,а нужный добавить не могу.

    ОтветитьУдалить
  9. Трудно ответить что-то конкретное при таком скудном описании проблемы. О какой вообще сети идет речь? Что значит нелепый адрес? Как он выглядит?

    Предположим речь идет о сети eDonkey (единственная сеть из описываемых в статье, в которой присутствуют серверы). Для добавления сервера именно этой сети есть команда n.

    n server-ip port

    Здесь конечно server-ip - это IP адрес сервера, а port - его порт. То есть реальная команда должна выглядеть примерно так

    n 77.247.178.244 4242

    Строка ввода команд находится в верхней части веб-интерфейса, сразу за кнопкой DL. После ввода команды нужно нажать Input (эта кнопка расположена сразу за строкой ввода)

    ОтветитьУдалить
  10. GUI под винду
    http://mldonkey.sourceforge.net/Sancho

    ОтветитьУдалить
  11. Народ а кто подскажет почему после перезагрузки компа MLDonkey не запускается- 10 секунд окно открыто а потом закрывается и ослик с трея тоже исчезает.Помогите плиииз!!!

    ОтветитьУдалить
  12. Это проблема скорее не самого MLDonkey, а используемого GUI. Пользуйтесь командной строкой и веб-интерфейсом, и будет вам счастье :-)
    Если же не устраивает командная строка, то хотелось бы для начала несколько подробностей:
    - Название и версия операционной системы
    - Название и версия GUI среды (KDE, Gnome, etc.)
    - Версия MLDonkey
    - Название и версия GUI для MLDonkey

    ОтветитьУдалить
  13. Спасибо, чувак

    ОтветитьУдалить
  14. Анонимный4 марта 2009 г., 4:37

    Ну вот, к примеру, убунту heron веб-интерфейс, непонятно как добавить свой локальный адрес и соединиться с локальным хабом
    систем инфо:
    Version: MLNet Multi-Network p2p client version 2.9.2
    Networks: Global Shares Direct Connect FileTP BitTorrent Donkey (SUI)
    Ocaml version: 3.10.0 - C compiler version: 4.2.3 - C++ compiler version: 4.2.3
    Built on: Linux i686 2.6.15.7 (little endian) with glibc 2.7
    Configure args: '--build' 'i486-linux-gnu' '--enable-gui' '--disable-magic' '--disable-fasttrack' 'build_alias=i486-linux-gnu' 'CFLAGS=-Wall -g -O2' 'CXXFLAGS=-Wall -g -O2'
    Features: threads zlib-1.2.3.3 bzip2-1.0.4 gd(jpg/png-1.2.15) iconv(active) no-magic no-check-bounds

    помогите разобраться, плисс

    ОтветитьУдалить
  15. Кстати, у MLdonkey есть Русский форум (посетите), задайте ваш вопрос, возможно вам смогут помочь. http://mldonkey.sourceforge.net/forums/viewforum.php?f=22

    ОтветитьУдалить