mldonkey支持比较多的下载协议,包括ed2k、BitTorrent、DC++等。mldonkey本身没有界面,是以后台服务(Daemon)的类型运行,可以通过命令行接口
(CLI)
完全控制。由于实现了服务与界面的分离,运行比较稳定。mldonkey支持三种配置方式:web方式、telnet方式和图形界面控制方式,推荐使用web方式,要登录web界面,在浏览器里输入就可以了。要登录telnet,可以在终端里输入telnet 4000即可。下面说一下mldonkey的安装与配置。
安装mldonkey
没什么特别的,mldonkey是open source的,安装方式也没有什么特殊的,就是经典的三个阶段就搞定了。所以没什么好说的,唉,真失败。
配置mldonkey
mldonkey的主要配置文件在用户Home目录的.mldonkey里面。其中download.ini是主要的配置文件。
下面是一些简单的配置说明:
- client_name
设置nickname,随便设置就可以了,不过一般设置为[CHN][VeryCD]xxxxxx,这个是emule的命名方式,冒充emule的用户,有些server需要特殊的nickname才可以连上。 - shared_directories
共享的文件夹路径在这里设置,默认[]就是不共享。 - allow_browse_share
是否容许别人浏览你共享的文件。 - gui_port = 4001, http_port = 4080, telnet_port = 4000
三种操控方式使用的端口,记得如果在这里修改了gui的端口,也要在gui的设置中同样更改。 - allowed_ips = [”127.0.0.1″;]
容许控制端联接的ip列表,可以使用简单的通配符如*和?。 - max_hard_upload_rate, max_hard_download_rate
最大上传速度和最大下载速度,根据自己的实际带宽,最大下载速度大于实际带宽就可以了。如果要限制传输速度,就设置这两个参数,0表示不限,单位是KB。 - enable_bittorrent, enable_donkey, enable kademlia, enable_opennap…
各种p2p协议,想使用的话就true,不想用就设置成false。一般需要启用enable_donkey和enable kademlia。 - max_concurrent_downloads
最大容许的同时下载线程,默认是60。 - temp_directory, incoming_directoryauto_commit
下载中未完成的文件存放路径和完成的文件存放的路径,auto_commit表示mldonkey会自动把下载完成的文件从temp_directory
移动到incoming_directory里面。 可以修改为自己想存储的路径,默认的路径是在隐藏目录下的,比较不方便查看。如果不想修改,就把~/.mldonkey下面的temp目录和incoming目录都干掉,然后建个链接。嘿嘿。 - ED2K-force_client_high_id, ED2K- force_high_id
设置为true,强制高ID。 - ED2K-max_connected_servers:10。最多连接的服务器数目,设置为10就可以了,最后只会稳定在几个,我的一般在4、5个。
- max_indirect_connections:这个范围是30-70,如果你想要更多的连接,可以修改高一点。
- max_opened_connections:这个最大可以到924,理由同上。
- ask_for_gui
启动时询问是否开启mldonkey_gui,如果觉得这个对话框很烦就设置成false,以后可以自己手动运行mldonkey_gui。 - start_gui
是否自动运行gui界面。
解决的问题
1、导入amule/emule的临时文件:web方式是在地址栏里输入命令:import_temp
,telnet方式是在命令行里输入import_temp ,其中<>里的内容是你的amule/emule temp文件夹的绝对路径。
2、中文乱码问题:要设置用来启动mldonkey的用户的环境变量,LANG和LC_ALL都设置为zh_CN.UTF-8就可以了。然后观察mldonkey的启动信息或者看log看看是不是用的这个locale,如果是,那就基本ok了。如果不是,那就改呗。看看下面的启动脚本就明了了。
3、手动加上mldonkey的启动脚本,这样可以开机自动运行了。
偶的脚本备忘一下:
KILL=/bin/kill KILL_OPT=-9 command="/usr/local/bin/mlnet"
stop_service() { pid_of_mlnet=`pidof mlnet` $KILL $KILL_OPT $pid_of_mlnet pid_of_mlnet=`pidof mlnet` if [ $pid_of_mlnet ]; then echo "unable to stop mlnet.try do it mannually." else echo DONE fi }
start_service() { rm -f $mlnet_cfg_home/*.tmp 2>/dev/null rm -f $mlnet_cfg_home/mlnet.log 2>/dev/null rm -f $mlnet_cfg_home/*.pid 2>/dev/null
mlnet_logcommand="-log_file ${mlnet_logfile}"
if [ "x${mlnet_user}" = "x$(whoami)" ]; then echo a eval "${command} \ ${mlnet_logcommand} \ ${mlnet_flags} \ >> ${mlnet_logfile} 2>&1 &" else echo b su -l ${mlnet_user} -c "LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 ${command} \ ${mlnet_logcommand} \ ${mlnet_flags} \ >> ${mlnet_logfile} 2>&1 &" fi }
case $1 in
'start') start_service ;;
'stop') stop_service ;;
'restart') stop_service start_service ;;
*) echo "$0: usage: $0 {start|stop|restart}" ;; esac
|
凑合用用吧。呵呵。
阅读(2287) | 评论(0) | 转发(0) |