mlDonkey
mlDonkey
MLDonkey 是一個開源的,免費的多協議P2P伺服器程序。支持eDonkey2000協議(ED2K)、overnet、kad、BT、HTTP、FTP等協議,並能在Linux、Solaris、Mac OS X、Windows 以及 MorphOS下運行。
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,功能最複雜,你一定有眩暈的感覺)。
缺點:那就是設置有些複雜,而且都是英文的,但有一個比較好的設計就是,把滑鼠移到每個選項上會有英文提示。
Linux用戶可以通過所裝發行版的源中獲取mldonkey
windows用戶可在下面頁面下載mldonkey,其中Eclon for win32實際上就是mldonley+sancho
http://SourceForge.net/project/showfiles.php?group_id=153459
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如下
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 : 顯示下載文件的源的統計信息
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 : 已取消