mlDonkey

mlDonkey

MLDonkey 是一個開源的,免費的多協議P2P伺服器程序。支持eDonkey2000協議(ED2K)、overnet、kad、BT、HTTPFTP等協議,並能在Linux、SolarisMac OS X、Windows 以及 MorphOS下運行。

正文


mlDonkey
mlDonkey

簡介


MLDonkey 是一個開源的,免費的多協議P2P伺服器程序。
MLDonkey最早只支持eDonkey2000協議(ED2K),後來逐步加入了overnet、kad、BT、HTTP、FTP等協議的支持,並能在Linux、Solaris、Mac OS X、Windows 以及 MORPHOS下運行。它使用OCaml語言編寫,同時有些部分使用了一些C語言以及彙編語言的代碼,從而保證了它的高效能。
MLDonkey官方只提供了telnet和html兩種介面。其實基於web瀏覽器的html管理方式是用的最多的圖形介面,用它可以方便的在網頁上管理mldonkey。此外還有一些以telnet為基礎開發的圖形前端,比如KMLdonkey和Sancho。
作為ED2K客戶端,mldonkey的最大特色就是支持同時連接多伺服器(emule,amule等都只能連接一個ed2k伺服器),大大提高了可用源的數量。
優點:實在太強大了,支持各種下載協議,包括ed2k、bittorrent、http、ftp……,而且在繼續擴充。
我主要說一下ed2k功能,它有一個最最奇特的地方就是,可以同時連接任意多個emule伺服器,而不像其他我所用過的emule-mod那樣只能連一個。因此,其速度可以快好幾倍(可以很容易的達到帶寬上限哦,是我所用過的最快的電驢)。另外,他還有眾多圖形界面(其本身只是一個命令行的東西),可以用瀏覽器控制(推薦),甚至telnet。而sancho是所有圖形界面中最優秀的一個(基於java,功能最複雜,你一定有眩暈的感覺)。
缺點:那就是設置有些複雜,而且都是英文的,但有一個比較好的設計就是,把滑鼠移到每個選項上會有英文提示。

安裝MLDonkey


Linux用戶可以通過所裝發行版的源中獲取mldonkey
windows用戶可在下面頁面下載mldonkey,其中Eclon for win32實際上就是mldonley+sancho
http://SourceForge.net/project/showfiles.php?group_id=153459

MLDonkey命令手冊


MLDonkey 以簡單的命令為特色。大多數mldonkey的介面,例如telnet、web管理界面、其他gui的console標籤(比如sancho),都提供了用命令控制mldonkey的方法。這些命令不但方便,有時候也是唯一的方法來控制一些mldonley的高級特性。
mldonkey有很多可用的命令,有些可能不為人知。這個手冊旨在較詳細地說明mldonkey中的常用命令的用法。
註:< > : 必要參數,[< >] : 可選參數,< 1 | 2 > : 二選一的參數。提到的mldonkey選項見選項手冊。
用戶命令
1. auth <用戶名> <密碼>: 用戶登錄
2. useradd <用戶名> <密碼> [<郵箱>] : 添加新mldonkey用戶/更改用戶密碼
3. userdel <用戶名> : 刪除一個mldonkey用戶
4. users : 列出所有用戶和用戶組
5. whoami : 列出所有已登錄用戶
用戶組命令
1. groupadd <用戶組名> : 添加用戶組 <管理員>
伺服器命令
1. vm : 列出已連接伺服器
2. vma : 列出所有已知伺服器
3. n [<埠>] : 添加伺服器
4. server_banner : 列印編號為的伺服器的旗幟(歡迎信息),其中由vm命令獲得
5. servers <文件名> : 從一個server.met文件中添加伺服器
6. c [] : 連接到更多伺服器(或者連接到號伺服器)
7. x : 斷開與號伺服器的連接
8. id : 列出本機在已連接伺服器上的id
9. preferred : 設置/取消為首選伺服器
10. bs [ ...] : 將所給ip加入伺服器黑名單
11. bp [ ...] : 將所給埠加入埠黑名單
12. rem [ ...] : 從伺服器列表移除指定伺服器 ('all'清空伺服器列表)
13. remove_old_servers :移除幾天沒有連接上的伺服器
搜索命令
1. s [特殊搜索參數] <查詢內容> : 在所有網路上搜索文件
* 特殊搜索參數(SpecialSearchArgs)
-minsize : 限制最小文件大小
-maxsize : 限制最大文件大小
-media : 限制文件類型
-Video : 指定為視頻文件
-Audio : 指定為音頻文件
-format : 指定為特定格式 <擴展名>
-title : 搜索標題(Mp3 tag搜索)
-album : 搜索專輯(Mp3 tag搜索)
-artist : 搜索藝術家(Mp3 tag搜索)
-field
-not : “非”條件搜索
-and : “與”條件搜索
-or : “或”條件搜索
-without
2. xs : 擴展搜索以獲得更多的搜索結果(向一些低優先順序的伺服器發送查詢請求)
3. vs : 顯示查詢歷史和結果統計
4. vr : 查看某此查詢的詳細結果,其中num由vs獲得
5. view_custom_queries : 列出定義的自定義查詢種類,如[Complex Search],[MP3 Search],[Movie Search],[Album Search]等
6. forget [ ...] : 丟棄指定編號搜索記錄,num由vs獲得
好友命令
1. friends : 列出所有好友的名稱和好友編號
2. files : 列出指定標號的好友的共享文件
3. vfr : 列出所有好友的詳細信息,friends命令的擴展,包括IP和積分等
4. gfr : 請求指定編號好友的共享文件列表,以便用files命令查看
5. friend_add : 添加指定編號客戶端為好友,client_num可由downloaders和uploaders命令得到
6. friend_remove : 移除指定編號好友 (編號all清空好友列表)
7. message : 向指定編號客戶端發送消息
下載命令
1. cancel : 取消指定編號的下載任務,用法同pause,另見confirm
2. confirm : 確認取消下載任務,當使用cancel取消下載任務后,需要用 confirm yes確認取消
3. d : 下載指定編號文件,編號可由s等搜索命令獲得
4. dllink : 下載以ed2k、sig2dat、BT種子等鏈接形式給出的文件,比如ed2k打頭的ed2k文件hash
5. dllinks : 下載指定文件中的所有url(允許有空行)
6. dd : 下載一個已知大小和md4-hash碼的文件
7. http : 從一個http/ftp/ssh url下載文件(註:FTP尤其是SSH仍處於實驗階段)
8. mirror : 給指定編號下載任務添加源(鏡像),其中file_num由vd得到(這是迅雷的強項)
9. merge : 這是條強大的命令。這條命令將不同協議(ed2k/BT/HTTP/FTP等)但文件相同的下載任務鏈接到一起(可以說是mirror的升級版),其中 file1是主文件,不能取消鏈接(註:這條命令仍處於實驗階段)
10. force_download : 強制重新下載一個已經下載的文件。用法是,先用d/dd/dlink等命令下載文件,mldonkey會提示該文件已經下載,此時鍵入此命令
11. vd [] : 不加參數將會列出所有處於下載隊列中的下載任務信息,加上參數num則列出指定編號的下載任務
12. pause : 暫停指定編號下載任務,all暫停所有任務,編號由vd獲得
13. resume : 恢復指定編號下載任務,用法同pause
14. tracker [...]:給指定編號的BT熱任務添加tracker伺服器
15. priority [...] : 改變下載任務的優先順序
16. rename "" : 重命名一個已經完成下載的文件
17. commit : 將完成下載的文件從download文件夾移動到income文件夾,文件夾的具體位置在download.ini中設置
18. startbt : 開始一個BT下載任務
上傳命令
1. compute_torrent : 為指定文件製作BT種子
2. nu : 暫停上傳m分鐘。註:此命令受一個積分系統控制(credit system),沒上傳1分鐘,得到1點積分(最大300),每暫停上傳1分鐘消耗1點積分,所以每次暫停最多300分鐘。
3. reshare : 從共享目錄更新共享文件列表。(現在mldonkey會自動監視文件變化,這條命令很少用了)
4. reshare_torrents : 更新共享的種子列表
5. seeded_torrents : 列出所有共享的種子
6. shares : 列出所有共享目錄
7. unshare : 將指定目錄從共享目錄中移除
全局控制命令
1. version : 列印mldonkey的版本
2. q : 退出當前的telnet會話
3. save <"options"|"sources"|"backup"> : 保存當前的選項(通常不用手動執行這條命令,mldonkey會每save_options_delay秒自動保存
4. kill : 保存配置文件並關閉mldonkey客戶端
5. ! : 遠程執行shell命令,如: ! halt
6. close_fds : 關閉所有文件,清除文件緩存,釋放磁碟空間。
7. close_all_sockets : 關閉所有打開的sockets。這條命令主要作用是mldonkey在IP改變后(動態IP)快速恢復正常工作,而不是等待連接超時。
8. activity : 列出指定時間內的edonkey和overnet所有活動
用戶配置命令
1. alias : 自定義命令,如: "alias ca cancel all",使得 "ca" 等於"cancel all"
2. ansi <bool> : 如果設置成true,命令行將採用彩色顯示文字,但是有些命令行並不支持(如windows的comandline),這時就需要將其設置成false
3. disable : 禁止指定編號的網路
4. enable : 激活指定編號的網路
5. html_mods : 切換web界面模式(兩種)
6. html_mods_style [] : 不加參數則列出所有可用的web顏色風格及編號,加上編號參數則選擇指定web界面的顏色風格(切換顏色風格后web界面自動變回第一種模式,應該是個bug)
7. html_theme : 選擇web界面的主題
8. import : 從指定目錄導入edonkey官方客戶端的下載任務
9. port : 改變ed2k埠,默認是4662,改變在重啟core後生效
10. set : 設置某個選項的值
11. share [] : 將指定目錄以指定優先順序共享,可選參數是共享策略。優先順序越高,為此目錄預留的上傳槽越多。下面是預定義的共享策略:
"all_files": 共享所有文件,包括子目錄(默認)
"only_directory": 共享所有文件,不包括子目錄
"incoming_files":設置目錄為默認文件下載目錄,共享文件不包括子目錄
"incoming_directories": 設置目錄為默認文件夾下載目錄,例如多文件的BT任務。共享文件不包括子目錄
12. unalias : 刪除由alias設置的自定義命令,如: "unalias ca"
13. urladd : 從url載入指定類型的文件,定義的kind如下
donkey伺服器列表
增加rss同步頻道. 其內容可由rss命令獲得
Setup changes of the day
Information of the day in HTML format
edonkey的文件註釋列表
Overnet網路結點列表
Overnet網路結點
kad網路結點
IP to country mapping database
IP過濾列表 (ipfilter and guardian v2格式)
fasttrack結點列表
14. urlremove :從web_infos列表中移除url,web_infos列表由vwi命令查看
15. vo : 列出關鍵選項的值,如上傳/下載限制速度,昵稱,埠等
16. voo []: 列出所有可用選項,可選參數正則式作匹配條件,如voo *ED2K, voo *port
17. options [
]: 不加參數列出所有選項分類,如Header, main, interface, ed2k等,option 分類名 則列出指定分類下的選項
18. reset_md4 : 重置客戶端的md4 hash(估計是被ban了才會用)
Overnet 命令
1. ov_boot : 添加一個overnet結點
2. ov_boots : 列出所有overnet結點
3. ov_dump_bucket : 廢棄指定序號索引桶,索引桶序號由ov_store得到,見ov_store(This is for development)
4. ov_dump_known_peers : dumps known_peers (This is for development)
5. ov_link : 從overnet網路下載一個以fha鏈接給出的文件(就像edonkey的eD2k鏈接一樣)
6. ov_load : 從一個contact.dat文件中增加overnet結點
7. ov_md4 : 得到客戶端在Overnet網路中的md4 hash碼
8. ov_send_udp : 通過udp向ov網路中的指定客戶端發送消息
9. ov_store : 顯示在本客戶端上索引的關鍵字和文件(overnet是純p2p的網路,沒有伺服器,所以每個客戶端都要存儲一笑部分網路信息)
10. ov_view_stats_cmds : 顯示overnet的狀態(一堆正則式,調試用命令)
11. ov_web : 用指定url的ocl(overnet contact list)文件初始化
Kad(emlia)命令
1. kad_boot : 添加一個kad結點
2. kad_dump_bucket : 廢棄指定序號索引桶,索引桶序號由ov_store得到 (This is for development)
3. kad_dump_known_peers : dumps known_peers (This is for development)
4. kad_link : 從kad網路下載一個以fha鏈接給出的文件
5. kad_load : 從一個contact.dat文件中增加kad結點
6. kad_md4 : 得到客戶端在kad網路中的md4 hash碼
7. kad_send_udp : 通過udp向kad網路中的指定客戶端發送消息(消息是16進位的)
8. kad_store : 顯示在本客戶端上索引的關鍵字和文件(見ov_store)
9. kad_view_stats_cmds : 顯示Kad網路的狀態
10. kad_web : 用指定url的ocl文件初始化
恢復命令
1. import_temp : 從eDonkey / eMule / lMule臨時文件目錄導入未完成的下載,
2. scan_temp : 列出臨時目錄下的文件
3. recover_bytes [< file2_num2> ...] : 嘗試修復指定的部分下載的文件(位元組級別),未完成部分用非零位元組填充(最好用verify_chunks進行校驗),file_num由vd得到,見選項max_recover_gap。
4. recover_temp : 從指定目錄恢復未完成的下載。這個命令的作用是恢復那些文件信息丟失(files.ini)但是下載數據還在的下載任務,重建文件信息。並且只能恢復文件中已經完成的塊(chunck)。
5. verify_chunks : 按塊(chunk)檢查文件的正確性,num由vd獲得
狀態及統計命令
1. block_list : 列出被mldonkey阻止ip段,分成網路和本地兩個列表
2. buildinfo : 顯示mldonkey核心的版本信息
3. bw_stats : 顯示上傳/下載速度,共享文件數,上傳槽/下載槽數
4. cs : 顯示按按ed2k客戶端軟體分類的ed2k上傳/下載統計表
5. csbt : 顯示按BT客戶端軟體分類的BT上傳/下載統計表
6. csm : 顯示按eMule MODs分類的ed2k上傳/下載統計表(emule_mods_count = true)
7. client_stats : 顯示按按ed2k客戶端軟體分類的成功連接數/文件請求/上傳/下載/阻止數統計
8. client_stats_bt : 顯示按按BT客戶端軟體分類的成功連接數/文件請求/上傳/下載/阻止數統計
9. diskinfo : 顯示mldonkey磁碟信息,列出下載/共享/臨時文件夾信息
10. downloaders : 列出當前正在從哪些客戶下載數據
11. gdstats : 顯示圖形化的統計信息(只在web界面可用)
12. kad_boots : 列出kad網路結點信息
13. kad_buckets : 顯示kad索引桶信息
14. kad_stats : 顯示kad網路狀態
15. links : 列出所有共享文件的ed2k鏈接
16. ov_buckets : 顯示Oernet索引桶信息
17. ov_stats : 顯示Overnet網路狀態
18. runinfo : 顯示mldonkey的運行信息,包括用戶/網路種/DNS/系統信息等
19. sources : 顯示下載文件的源的統計信息
20. sysinfo : 列出mldonkey的core build, runtime, disk, Port信息,見buildinfo, runinfo, diskinfo和portinfo
21. upstats : 上傳統計信息,顯示所有共享文件,並按請求數高低排序
22. reset_stats : 重置此次會話的統計信息
23. stats : 顯示所有網路的傳輸狀態
24. torrents : 列出伺服器上所有BT種子文件
25. uploaders : 列出當前正在上傳給哪些客戶數據
26. uptime : 核心運行時間統計
27. vu : 顯示當前的上傳積分,關於上傳積分見nu(上傳命令)
28. portinfo : 列出mldonkey的埠使用情況
調試及測試命令
這些命令可能會在沒有通知的情況下被取消或改變. 使用的時候請注意 ;)
1. block_test : 測試指定ip是否被阻止
2. clear_log : 清空日誌文件
3. close_log : 停止核心向日誌文件寫入信息
4. debug_client [ ...] : 記錄指定客戶端的行為到日誌文件
5. debug_disk : 顯示磁碟信息,如debug_bug /
6. debug_file : debug file state
7. debug_fileinfo : 顯示文件或文件夾信息,如debug_fileinfo /home
8. debug_rlimit : debug command, god konws...
9. debug_socks : for debugging only
10. dump_heap : dump heap for debug
11. dump_reliability : 列出用reliable_sources演演算法得到的可信任源及其ip
12. log : 將當前的日誌信息列印到終端中
13. log_file : 將核心信息寫入指定文件
14. mem_stats : 列出詳細的內存信息
15. networks : 列出已經連接到的網路
16. open_log : 激活日誌記錄
17. test_recover : 顯示指定文件中已經下載的段
18. use_poll : 用poll() 代替select(), mldonkey應該使用poll(),因為它更高效,而且沒有1024文件描述長度限制
19. stdout : 恢復日誌到標準輸出流
未分類命令
1. vc : 查看客戶端信息,num由downloaders和uploaders得到
2. calendar_add "" : 添加命令到任務計劃,此命令將被儲存到download.ini,並且在每天的指定hour執行。如:calendar_add 8 "set max_upload_rate 10" 附download.ini的儲存內容,可由vcal命令得到:calendar = [ ([0;1;...;6;], [0;1;...;23;], "command1" ); ([0;1;...;6;], [0;1;...;23;], "command2" ); ... ]
* 第一個參數是定義了一個星期內此命令在那些天被執行(Sunday=0, Monday=1, Tuesday=2, ..., Saturday=6).
* 第一個參數是定義了一天內此命令在那些小時被執行(in 24-hour format 0 ... 24).
* 第三個參數是要執行的命令
3. vwi : 列出當前網路信息
4. gdremove : 移除存儲圖形化統計信息的文件
5. message_log : 顯示已經記錄到日誌的消息(數秒內顯示)
6. preview : 預覽指定文件,文件編號由vd得到
7. reload_messages : 重新載入消息文件
8. rm_old_torrents : 移除所有舊的BT種子文件
9. rss : 列出所有訂閱的rss種子,見urladd
10. vcal : 列印計劃的任務,見calendar_add命令
舊版命令
1. add_user : 改為useradd
2. remove_user : 改為userdel
3. add_url : 改為urladd
4. commit_to : 已取消
5. set_brothers : 已取消