首页未分类 › 调教MLDonkey的那些事儿

调教MLDonkey的那些事儿

MLDonkey 是一个开源、免费、跨平台、多协议的P2P共享软件。是由Fabrice Le Fessant 和 Simon Patarin 从2002年1月发起的。原本是一个在Unix和Linux下对电驴(eDonkey2000)的克隆。后来又移植到了MacOSX和Windows平台 上。遵循GPL协议。最初发布时,它只有Linux下的eDonkey协议版本。现在它支持多种P2P协议,并能在类Unix系统、Mac OS X、Windows和MorphOS等操作系统下运行。最新版本为8月15日发布的3.0.4。下载地址:http://sourceforge.net/projects/mldonkey/files/

看看MLDonkey有那些特点,嗯,确实挺吸引的,特别是对Geeker来说:

  • 100%开源,遵循GPL协议
  • 跨平台,支持 Windows, Linux, MacOSX, Unix, Solaris
  • 可以同时连接多个eD2k服务器
  • 支持多种P2P协议,eDonkey、Overnet、BitTorrent、Kad、HTTP/FTP、DirectConnect等等。以后还可以从不同的网络协议下载同一文件(开发阶段)
  • 没有图形界面,省资源

MLDoneky并不完美,缺点也不少:

  • 只支持KAD搜索,不支持KAD传输。关于MLDonkey的KAD说法可谓是众说纷纭,但是我在官方论坛得到的信息是:对KAD1支持不完整、不支持KAD2 (via MLDonkey Forums)
  • 虽然支持磁力链接,不过BT下载模块并不支持DHT和PEX
  • 不能自动连接动态IP的ed2k服务器
  • 不支持DLP,没有任何反吸血功能
  • 不支持谜糊协议
  • 设置比较麻烦,没有中文版
  • 更新缓慢

虽说是多协议,但是BT部分基本鸡肋,其他几种网络协议在国内也很少用到,剩下的就只有eDonkey网络了,对我们来说MLDonkey就是一个电骡客户端,下面的内容也主要介绍它的eDonkey网络部分。

上手MLDonkey

怎 么安装?Linux版的安装大同小异我就不说了,简单说下Windows的吧。其实也没有什么安装不安装的,MLDonkey是绿色软件,只要将其解压缩 到任意目录,运行run_mldonkey.exe或mlnet.exe就可以启动软件了。这两个的区别在于run_mldonkey.exe可以将 DOS窗口隐藏至托盘,而mlnet.exe不能。前面已经说过,MLDonkey是没有图形界面的,不过可以通过浏览器打开 http://localhost:4080/ 进入WebUI来管理Mldonkey。当然,如果你觉得不习惯,可以下载Sancho这个图形前端来代替WebUI。

看上图,右上角Input按键左边的空白长条就是命令栏,在命令栏输入各种命令控制管理MLDonkey

正确的关闭程序:
MLDonkey必须用WebUI或其它图形前端来关闭,不可以直接关掉DOS窗口,否则可能会造成数据丢失和软件出错,
点选菜单Help+ -> Kill core
或者在命令栏输入kill命令,然后按Input键或回车。

导入服务器列表:
在命令栏输入
servers 服务器列表地址
例如:
servers http://eserver.googlecode.com/svn/server.met

导入overnet的node列表:
在命令栏输入
ov_load http://download.overnet.org/contact.dat

ov_load “/home/username/contact.dat”

导入kad的node列表:
在命令栏输入
kad_load http://upd.emule-security.net/nodes.dat

kad_load “/home/username/nodes.dat”

设置临时目录:
默认的临时目录是软件目录里的temp文件夹,可以通过修改downloads.ini的相关选项文件来设置该地址。
用文本编辑器打开的downloads.ini,搜索“Paths options”,找到路径选项部分。
看到下面这么一句:temp_directory = temp
这就是设置临时目录的地方,只要将“temp”更改成你想设置的目录地址就行,例如
temp_directory = “/shares/emule/temp” 记得加半角双引号

*注意:在downloads.ini里设置的Windows路径必须把单个反斜杠写成两个反斜杠。
在Windows下将临时目录设置为f:\emule\temp:
temp_directory = “f:\\emule\\temp”
设置共享和下载目录也同样要把反斜杠写成两个反斜杠,下面就再重复了。

设置共享和下载目录:

在讲怎么设置共享和下载目录之前有必要先说说Sharing Strategy(共享策略),Strategy不同的属性值决定该目录的性质。
Strategy各属性值所代表的的意义:
incoming_files:下载和共享目录,下载任务为单个文件的放这里,递归
incoming_directories:下载和共享目录,下载任务为多个文件(如BT)时就放这里,不递归。
* incoming_files 和 incoming_directories可以为同一目录
all_files:共享目录,递归
only_directory:共享目录,不递归

设置共享目录可以有三种方法。

第一,通过修改downloads.ini文件来设置默认共享和下载目录

默认共享目录是软件目录下的“incoming/files”文件夹,默认下载目录是“incoming/directories”。

用文本编辑器打开downloads.ini,找到“Incoming and shared directories“部分,看到下面有一段:

shared_directories = [
{ dirname = shared
strategy = all_files
priority = 0
};
{ dirname = “incoming/files”
strategy = incoming_files
priority = 0
};
{ dirname = “incoming/directories”
strategy = incoming_directories
priority = 0
};]

上面红色部分代表目录地址,绿色部分是Sharing Strategy(共享策略),我们只要将红色部分替换成自己的目录地址就可以了。

第二,用命令添加或取消共享目录
用share命令添加共享目录,在命令栏里输入:share 0 共享的目录地址
这里是数字0,不是字母o,表示优先等级
例如
share 0 /home/shares
Windows下是:share 0 F:\emule\share\

用unshare命令可以将已经共享了的目录取消,在命令栏输入:unshare 要取消的共享目录地址
例如
unshare /home/shares

第三,WebUI的菜单能直观方便地管理共享目录
Options -> Shares进入共享目录菜单,可以看到已经共享的目录和一些有关说明,同时能很简单地添加活取消共享目录。
取消目录共享,只要点某共享目录旁的“Unshare”按键就可以了。
添加共享目录是点击”Add Share”按键然后输入:0 共享的目录地址
例如
0 /home/share

0 F:\emule\share\

导入eMule的未完成的文件:
在eMule未下载完的文件可以导入到MLDonkey接着下。这样就需要用到import_temp这个命令,简单得很,在命令栏输入:import_temp eMule的临时目录

添加下载任务
说了那么多,都还没有说怎么下载文件呢。MLDonkey的下载方式比较古老,基本都是手动,不难,就是觉得比较麻烦。复制要下载的eD2k链接(因为支持多协议,所以像磁力链接和FTP/HTTP都是可以的)粘贴进命令栏然后按回车活“Input”按键。
批量下载呢,一样可以,不过还是要手动输入。点击命令栏左边的“DL”按键后弹出一个文本框,在这个文本框里输入要下载的那些链接,再点文本框下面的“Iput”按键。

虽然不怎么会用到,还是说下添加BT任下载务的方法吧:
命令栏输入:startbt “BT种子url” 或 startbt “BT种子地址”
例如
startbt http://www.domain.com/av.torrent 或 startbt f:\av.torrent

主要的选项设置

MLDonkey的选项简直多如牛毛,这里就挑部分比较主要的简单讲一下。有一点必须先说明一下,除了下拉选项外,其他的选项设置被修改后都不会自动保存,必须在修改选项后按一下回车才会保存。如果要修改了100个选项,同样地就要按100次回车了,这样确实很繁琐。

一般设置,位于Options – Settings – Client
client_name:用户名,像这样[CHN]Mldonkey
max_upload_slots:上传槽数量,最大可以同时上传给多少人
max_hard_upload_rate:最大上传速度,必须大于10,否则下载速度将会被限制在一个很低的值
max_hard_download_rate:最大下载速度,0表示不限速
max_opened_connections:最大连接数,最大可以设置为924
max_hard_upload_rate_2:第二个最大上传速度
max_hard_download_rate_2:第二个最大下载速度
max_indirect_connections:非直接连接为最大打开连接的百分比
max_concurrent_downloads:最大同时下载任务数

缓存设置 Options – Settings – Delays
buffer_writes:是否打开缓存写入,建议打开
buffer_writes_delay:写入缓存时的延迟时间,单位为秒,建议30.或者更高
buffer_writes_threshold:缓存到了指定值时强制写入,单位为KB,默认1024KB

协议设置 Options – Settings – Net
enable_overnet:Overnet网络,建议打开
enable_kademlia:KAD网络,必须打开
enable_donkey:eDonkey网络,必须打开
enable_bittorrent:BT,建议打开,不用的也可以不开
enable_fasttrack:FastTrack网络,好像已经停用了
enable_directconnect:DirectConnect网络,不常用,可以可关闭
enable_fileTP:FTP和HTTP,打开吧

Donkey设置 Options – Settings – Plugins -Donkey
ED2K-max_connected_servers:最大连接的服务器数量,太大也没用,一般稳定后就5个
ED2K-force_client_high_id:打开,强制客户端为HighID
ED2K-force_high_id:打开,强制自己为highID
ED2K-keep_best_server:保持使用最好的服务器
ED2K-good_client_rank:它表示需要维持连接的客户端长度,默认500,第500以外的客户端将断开,等待下一次访问
ED2K-connect_only_preferred_server: 只连接优先选定的服务器,这样就避免了连接资源量小和无用的服务器,前提是你必须设置了优先服务器
ED2K-update_server_list_server:从连接的服务器里更新服务器列表,建议关闭,否则会出现一些垃圾服务器
ED2K-update_server_list_server_met:从服务器列表文件更新服务器,必须打开
ED2K-update_server_list_client :从连接到的客户端里更新服务器列表,建议关闭,否则会出现一些垃圾服务器

其他 Options – Settings – All
hdd_temp_minfree:临时目录最小可用空间,默认大小设置为50M
hdd_temp_stop_core:如果临时目录的可用空间少于上面设置的指定值,程序就会自动停止
client_buffer_size:表示缓存的总大小,单位字节,默认值是500000,即50MB,内存是不很吃紧的建议设大点
share_scan_interval:共享目录的检查时间,单位分钟,默认是120分钟,0是不检查共享目录

还有如果是内网用户或者安装了防火墙的就要设置一下端口,我自己是外网也没安防火墙,所以对这个没研究,有需要的童鞋自己去问Google大神吧。

一些重要的配置文件

MLDonkey的设置主要保存在目录下的一系列ini文件里面,这些ini文件都有各自的作用:
downloads.ini:存储了MLDonkey全局性的设置,这个配置文件十分重要。
searches.ini:存储自定义的搜索问题。
servers.ini:存储你能连接的服务器列表。
friends.ini:存储你好友的名字和对应的IP。
stats.ini:存储上传下载的统计信息。
file_sources.ini:存储能连接到的源.
files.ini:当前下载的文件列表及其md4-hash。
shared_files_new.ini:存储共享的文件列表及其md4-hash。

对于每一种P2P协议都有各自配置文件:
donkey.ini:储存eDonkey、Overnet的网络设置
bittorrent.ini:储存BT网络的设置
directconnect.ini:储存DirectConnect的网络设置
fasttrack.ini:储存Fasttrack的网络设置
fileTP.ini:储存FTP/HTTP的网络设置

如 果软件要升级或迁移,建议备份downloads.ini、file_sources.ini、files.ini、 shared_files_new.ini、donkey.ini、stats.ini和nodes.dat(储存了KAD的节点文件),当然,你也可以 根据自己需要决定备份哪些文件。

澄清大家对MLDonkey所支持IP过滤文件格式的误解

MLDonkey自带的IPblocking会误杀国内很多正规的IP和ed2k服务器确实没错,但是不知道从哪里来的流言说MLDonkey不支持电骡格式的IPfilter过滤文件,还在很多地方扯出有关解决方法的讨论。在官方Wiki的guarding列表里本来就写着建议使用电骡的IPfilter; 在WebUI的Web infos里也有说明:“guarding.p2p IP blocking lists (ipfilter and guardian v2 formats)”,何来不支持之说呢。所以说默认提供的WebUI是个好东西,不要老是用那些第三方的图形前端;有什么不明白的也要多去官方Wiki找 找看。

MLDonkey 的过滤设置可以分为网络过滤名单和本地过滤名单,设置网络过滤名单就会自动从设置的地址下载过滤文件,并且会按设定的更新时间自动更新;本地过滤名单的就 是设置你自己下载的过滤文件,当然这个是需要自己手动更新;网络或本地其实都一样,只要设置其中一个就可以了。

自带的IPblocking 误杀那么严重当然要改掉。首先要从网络过滤名单中删掉原来的过滤文件地址。进入Options – Settings – web infos(页面在底下),找到下面这一行:“guarding.p2p 96 http://www.bluetack.co.uk/config/level1.gz ”,点击左面的“Remove”按键将它删除掉。顺带说一下,这一行里的数字“96”就是更新时间间隔,单位为小时,即每96小时更新一次文件。

添加网络过滤名单,还是刚才的web infos页面,点击列表右上角的“Add URL”按键,在弹出框里输入:
guarding.p2p 过滤文件地址 96
例如:
guarding.p2p http://upd.emule-security.net/ipfilter.zip 96

设 置本地过滤名单,进入Options – Settings – Net,在“ip_blocking“选项里填上自己下载的过滤文件的磁盘地址,记得按回车设置保存设置。在Winddows下设置文件地址时有些特别, 要用Linux的写法,就是要把反斜杠写成斜杠,例如 f:/Mldonkey/temp/ipfilter.zip。使用本地过滤名单有一点需要注意的是,部分IP过滤文件头部是有注释的,但是 MLDonkey不能识别这些注释,这样很容易令到程序在载入过滤文件时发生错误,所以对于下载的过滤文件最好先把注释删除掉。方法很简单,解压缩过滤文 件,用文本编辑器打开过滤文件,删除头部的注释部分保存,然后再打包成zip、gz或者bz2格式就OK啦。

还有一点,官方推荐的过滤文件都是没有分级的,我也没在软件里看到有过滤级别的设置,所以大家最好还是选择那些没分级的过滤文件。

关于在Windows下不能启动的解决办法

发现很多童鞋遇到在Windows下软件不能启动的问题,这个大多是软件非正常关闭造成的,解决办法很简单:删除掉软件目录下的“mlnet.exe.pid”文件就好了。

总结

就 像其他P2P软件一样,MLDonkey是一款切头切尾的文件共享软件,而不是下载软件!用了一段时间后就会发现MLDonkey其实是一款大而不精、中 规中矩,但可塑性很高的多协议P2P客户端。只要设置正确,一般都会有不错的速度,要取代eMule/Mods完全不成问题。可惜随着eMule 0.50a的发布,和各Mods的发展,MLDonkey在Win下的竞争力已经变得非常微弱,不过对Geeker和Linux用户来说还是相当吸引的, 特别是那些不折腾会死星人,一定不要错过啦。

 调教MLDonkey的那些事儿

发表评论