Emule服务器与设置
2004-02-09 LifeNT lifent.5i6.net 点击: 3614
Emule服务器与设置
服务气端下载链接:
http://lugdunum2k.free.fr/kiten.htmldonkey.ini文件的配置
这是核心部分:电驴服务器的每一个变量都被写在这个文件里。dserver开始运行时会读这个文件。如果你改变了什么东西那么只有再次启动程序的时候才会被发现。非常重要:服务器软件没法接受语法错误(书写时的错误)。服务器不能明白某个命令,它就不会工作,或者它会忽略写得不对的命令(以及后面的任何东西)。大小写也是非常重要的。所有单独条目均不能有注释。
[server]
这个命令启动控制进程。它必须被写在方括号里。在最后的那个方括号后面没有空格,这一点非常重要。否则的话这将使服务器无法理解 ——也许它没法工作了。接下来的条目只是例子而已!
name=TheDonkeyNetwork
服务器的名字,就象你在客户端看见的那个。你可以用任何你想用的的文字数字组合。
desc=Celeron 366, 320MB RAM, Cable
服务器描述信息,跟“name=”格式是一样的。可以用任何文字。
thisIP=217.74.93.105
请注意大小写!(IP“217.74.93.105”只是个例子而已)。这将告诉服务器你自己的,公开的(!!!)IP。程序开始时,服务器会把它工作的IP打印出来并发送到其他的服务器。请注意程序开始时所显示的IP,它是你当前真正的,公开的IP。大多数的错误设置都是由这个设置所引起的。你必须用“thisIP=xxx.xxx.xxx.xxx”这样的格式写到文件里去。不幸的是,你必须写数字格式的IP地址,象xyz.dyndns.org这样的字母格式的条目是不行的,因为服务器没法解析DNS。下面有些给动态IP用的脚本,可以自动更新这个条目,这样你就不必天天都来编辑你的IP了。如果你把这个条目空着不写,服务器会尝试找到它自己的IP,不过大部分情况下都会失败:因此每次开始运行都检查一下!
port=4711
在这里你要指定可以跟服务器建立联系的端口号。一般情况下这个端口是TCP:4661,如果你想用4661,那么这个条目可以空着。如果由于某些技术原因该端口不可用的话,你可以用其他的端口。当然如果是这样的话你就得给出这个条目了——如果可能的话,就用4661端口,否则话可能会引起混乱。 "port=" 缺省是TCP:4661
seedIP=217.74.93.105
注意大小写!(IP地址“217.74.93.105”只是个例子而已)
这一项,就象名字示意的那样,是指服务器从哪里连接到网络其他部分,它应该一直代表一个服务器,这样你的服务器才能够找到它 ——它是你的服务器首先建立连上的那个服务器…… 首先,你的服务器发送自身的IP地址和端口号——然后他就会获得种子服务器所知道的所有的IP地址。这些地址被写到数据库里——在关机以后,这个数据库被写到硬盘上,名字叫做“serverList.met”。下次启动的时候,种子IP(seedIP)就不再需要了,因为服务器已经在它的serverList.met里面有了很多的服务器IP了——但是被写到seedIP条目里的服务器在本地服务器开始运行的时候必须是工作良好的。如果在这个IP下没有可用的电驴服务器,你的服务器就不能工作了。只能用数字形式的条目,字母形式的诸如“xyz.dyndns.org”这样的URL是不行的(在当前的开发状态下)…… 如果你在硬盘相同目录下有一个很新的“serverList.met”的话你可以把这个条目留为空白。如果你的服务器在几天内均处于离线状态,那么有可能这时候的serverList.met中的全部服务器IP都不能用了,结果服务器就没法连接到网络了。如果是这种情况,你应该从网上得到一份实际的server.met……
我建议把这个条目留空,取而代之是在服务器所在文件夹放一份实际的serverList.met,因为这样的话你在开始时就有了更多的“可用的”服务器,这样比只知道一个IP保险一些——只需从上面的连接那里得到一份server.met并把它重命名为serverList.met即可……
seedPort=4711
注意大小写!
如果“种子服务器(Seed-Server)”的端口号不同于缺省的TCP:4661,就必须有这个条目。大部分服务器(90%)使用4661端口——当然如果在你的服务器有一份实际的serverList.met的话,你可以把该条目留空…… “seedPort”的缺省设置是4661
logFile=true/false
注意大小写!
你可以把日志写到硬盘里,而不是把它们显示出来——这也就是说把显示输出关闭掉——这样的话服务器不会在屏幕上显示任何输出! “true”表示“激活该功能”,“false”表示“关闭该功能”。如果你不想显示输出而想用日志文件的话的话——写true,否则写false——请不要写both(两者都要),否则你的服务器会发癫的,或者将引起你的电脑爆炸!! “logFile”的缺省设置是“false”——关闭……
verbose=true/false
如果你想看所有的系统显示的注意信息,你应该把“verbose”激活(把它设成“true”)——一般来讲如果所有的东西你都看看的话是很烦人的,因为“普通的”信息显示得太快了。不要感到惊讶:即使是“verbose=false”,服务器仍然会打出“ERROR: unknown type MetaTag::MakeTag() 72”或者类似的信息 ——别管它,服务器会工作的。为什么会显示这个信息呢?我不知道!总之别理它就行了…… “Verbose”缺省是设成false——关闭……
public=true/false
这个条目决定了你的服务器是否把自己的IP发送到其他服务器去。把这个条目设置为“true”对网络来讲是非常重要的——否则的话没有人会知道网络上有你这个服务器(如果你不把它告诉别人的话)。只有设置为“public=true”你的服务器才能够登陆到网络上去!
注意:“public”缺省是设成“false”的——所以如果你想让你的服务器连接到其他服务器的话,必须要有这个条目!
threads=5
这个条目定义能够同事处理的任务的数目。多任务操作系统,比如Linux,Windows 2000或者XP可以安排交互的不同的任务以及资源,比如内存和处理器时间。这个工作进行得很快,看起来好像任务都是同时进行的一样。就象所有的“诺曼机器”的情形一样,因为PC处理命令都是串行的,所以这个同时处理实际上只是看起来象而已,因为速度很快所以感觉不出来。由于工作的交互进行性,“老”任务的数据必须被写到缓冲区去,新线程的数据必须从缓冲区(或者更糟糕,从主内存中读)中读出来,每次任务交互都需要时间。
我的经验表明,线程数目太高的话会带来不利。每个线程,即使它并不工作,也需要占用CPU时间以及一定内存。如果你的服务器工作于1000客户,我建议你把线程(thread)数量设置为5。这个数量决不应该高于“30”(如果你的电脑<1GHz):你的电脑会明显地慢下来,并毫无意义地失去许多内存。为什么官方站点上的ini文档说应该设置为5(!)线程/100客户对我来讲是个迷——这就是2000客户100线程——服务器永远不会需要那么多!如果你有个很快的PC(>1.5GHz),你可以试试能不能运行多于30线程——这样做也许可以提升性能。
tableSize=3089
注意大小写!
这里的table就是包含了文件名和客户的数据库。这一定是一个素数。其技术背景(快速搜索次序)就不深入探讨了。这个值的大小看起来并没有什么太大区别。在默认的ini文件里这个值是“3089”——这实际就是一个素数。我试了试用其他的素数,结果没有任何不同。象我一样设置它算了:“tablesize=3089”,自己计算浪费时间。服务器没有“tableSize”条目也可以工作。
maxClients=1500
注意大小写!
这里是多少客户可以同时连接到服务器的数目。如果“maxClient(最大客户数目)”——达到了峰值时,客户端在尝试连接到该服务器的的时候会出现“Can′t connect to...(无法连接到……)”这样的信息。
你必须试试才能知道你的服务器的最佳值——如果太低了,那么你就浪费了资源,如果太高则可能会发生丢包现象,服务器的反应变得非常迟钝,甚至根本不响应客户请求。其次,ping的时间会变得很高,搜索请求会变得很高,内存会被扩展到硬盘上(使用虚拟内存)等等。你可以通过在客户端——服务端状态窗口里比较不同服务器之间的ping值来检查这一点。你还要计算出为峰值情况做的足够的资源保留应该是多少,当有许多很消耗资源的请求(比如说,在周末的时候,用户感觉无聊,所以就随便乱按几下他们客户端上的按钮;-))以及许多数据被写到索引表时——数据的大小对所需的内存有着直接的影响。如果你的机器开始“swap(交换)”——把数据写到硬盘上去,这个动作会使电脑发出隆隆的声音——你应该考虑减小最大用户数量。当然你的网络连接必须足够可靠。你应该把“maxClient(最大用户数)” 设到一个不会使平均CPU使用率超过50%的位置——如果你使用“type=key”,你可以使之达到70%。
如果你的服务器满载,并且你注意到在“vs”(View Servers,察看服务器)上的可用服务器数目在减少时,你已经有了大量的丢包情况。这使得你的服务器几乎变得完全没有价值。客户在跟你连接的时候只能得到少数几个服务器的IP,因为他们找不到文件,而搜索请求花的时间又很长。
如果是这种情况,你应该检查一下,你的服务器是否有足够的内存,CPU是否太慢,可用带宽是否太小了一点。关于这个参数的所有问题,有一些有用的监视工具,甚至在linux-bash下也有的(比如说,“TOP”可以监视CPU和内存使用量,“IPTRAF”可以监视带宽使用情况)。一个借鉴:“Little Red Corvette(小红巡洋舰)”这个服务器有一个AMD K6 III 400MHz CPU(66MHz FSB, Intel TX),运行Linux,256MB内存,T-DSL(128/768kbit/s), .ini文件设置是“type=key”。当有1000个客户连接的时候CPU使用率达到20%-50%,内存使用量是180MB(在bash上,没有KDE或者类似的东西)。 1300客户的时候CPU使用率达到40%-100%,并且内存几乎全部用完:230MB。不能够正常负荷1500用户,因为这时候CPU和内存使用量都已接近 100%,并且机器部分被阻塞。在另一方面,T-DSL在保证上传数据流不拥挤的情况下,也没法快到能给1300以上的用户使用。我设置的是“maxClients=1000”,工作良好。
type=key/substring (key 或者 substring)
注意大小写!
在详细考虑之后,你可以转换到v.38版本的搜索程序。在普通模式下平均CPU使用率达到50%的时候,会有性能峰值出现,这样的情况可使机器在数秒钟(甚至数分钟)内 100%被占用。这样的峰值会导致上面所述的那种丢包情况出现。你可以通过激活“type=key”来避免这一点。现在你可以把“maxClient”设置到这样一个值:当服务器满载时,平均CPU使用率大约是70%。这时你将看到,峰值情况出现的很少,而且时间也短一些。“Little Red Corvette” 已经工作在“type=substring”,最多900用户的情况下好多个月了,当设置成“type=key”时,它达到最大用户。同样的硬件,变成了1300用户! “type”缺省被设置成“key”,也就是快速模式。
console=true/false
这个值决定服务器是否工作在控制台(命令行提示符)状态下。当服务器自动开始运行并且你不想使用“屏幕”命令的时候,这样做还是有用的。
如果“console=true”的话,你就必须在控制台下运行服务器,如果“console=false”则不必非要如此,但这时就不能用键盘给出任何命令了,并且不能显示任何东西。嗯,其实这两样都不是必需的,但是我喜欢时不时察看一下它在干什么并加以控制,以及看看它知道多少可用的服务器(敲“vs”)。 “console”缺省是设置成“true”
minVersion=57
注意大小写!
这定义低于v.57的版本不能连接到服务器。当有客户端软件的更新版本出现时,改改这个值是有用的,但请注意当时的形势,比如说,由于一个安全方面的bug,新版本v.61没法支持ed2k-links,因此没有很多用户升级到它,还有linux的版本可能比windows版本老很多……
如果没有设置“minVersion”值的话,所有版本的客户端都会被服务器接受。
maxVersion=58
注意大小写!
这定义了服务器可接受的最大版本号。测试版的客户端程序往往有一个很高的值(比如1060)——因此这个值应该留为空白,否则的话你得常常更新这个值并且很容易忘记——正在测试新客户端的用户就被请出去了……:-(
如果“maxVersion”没有被设置的话,任何高于“minVersion”的版本均会被接受。
welcome[0]=Welcome to TheDonkeyNetwork
welcome[1]=share your Files and your upload Bandwith
这是欢迎信息,在登陆到服务器时被显示出来。你要注意,这里面的数字是变化的。欢迎信息不应该太长,否则的话它们将需要许多带宽——每个字母1字节!当出现1000客户时,平均每分钟会有5-50个连接……
一个完整的没问题的donkey.ini文件看起来像这样(只包含要求的东西——在服务器所在文件夹中有一个serverList.met,所以不需要seedIP条目):
[server]
name=TheDonkeyNetwork
desc=Celeron 366, 320MB RAM, Cable
thisIP=213.47.54.71
port=2000
verbose=false
public=true
threads=3
type=key
tableSize=3089
maxClients=500
keywordSearch=true
welcome[0]=Welcome on TheDonkeyNetwork
welcome[1]=***************************
welcome[2]=- Edonkey..Server -
welcome[3]=- share your Files and your upload Bandwith
当所有的条目都正确时,donkey.ini文件会被保存在服务器所在文件夹中,然后服务器就可以启动了。当然你必须连接到因特网。3秒钟后你可以试试敲“vs”来看看在serverList.met中列出的服务器——如果在“WORKING”后面没有IP则有些地方出了问题。
服务器命令
Debugging
大多数情况下,刚开始的时候它不会如你所料地顺利运行。有了这个文档,希望将来情况可以好一点。如果在15秒后敲入“vs”没有服务器出现,试试这个:
1.donkey.ini文件中有没有语法上的拼写错误(命令的拼写)?注意大小写。在linux下,你应该注意,donkey.ini必须用小写书写!
2.你用IP请求器(IP-Requester)核实的IP跟程序运行时出现的显示的IP是否一致?如果不同:把正确的IP敲到donkey.ini文件中去——这是最常见的错误之一!
3.“seedIP”条目是否真的是一个电驴服务器?试试用客户端连接到这个IP。注意服务器端口号是否一致(如果相应的服务器被选中的话,该端口号显示在客户端左下角的小窗口里)
4.是否有具备网络地址翻译器(NAT/Masquerading)功能的路由器?如果有的话:把路由器的端口映射设置到TCP端口:4661,4662,4663和 UDP端口:4665!如果没有UDP协议的话,服务器无法工作。
在Windows XP下:注意,在缺省状态下端口过滤器是被设成关闭状态的(点开始->设置->网络——在宽带接入或者叫做别的什么名字的那里双击——右键点击internet服务(PPoE协议)->特性->附加 ->设置,在“服务”下点击“添加”——在“端口”下激活4661,4662和4663的“TCP”端口,激活4665的“UDP”端口——重新启动——完成(如果按钮的对应名字的不正确的话,我感到抱歉,我不知道英文版本的XP是怎么样的——所以你在这里得靠直觉 ;-))(译注:本文原作者是德国人,在使用德文版winXP。国人也得靠直觉了:))。
5.在因特网和服务器之间是否有防火墙?如果是这种情况,跟上面一样处理——命名的端口必须清除掉!(比如说,在“ZoneAlarm”中,“security”下,把两个开关都设置到“Low”,但最好是重新安装一下ZoneAlarm……)。
6.如果在Linux中用1015版本以下的客户端连接到服务器,不考虑可用资源,试一试“filedescriptor-command(文件描述符命令)”: “ulimit -n 32000”。有了这个,也许可以容纳多于5000用户——如果你的机器可以支持这么多人的话……;-) 这个命令必须在跟服务器相同的控制台下使用,否则的话没用!
7.如果在Win9x/ME下,用户少于100人的话不要感到惊奇——这些操作系统不能支持更多人了! 8.如果在有100个客户同时连接到服务器的情况下,Win9x/ME无法打开任何网站,那是因为已经连接已经被占用完了——使用注则表补丁,另外一个操作系统或者把“maxClients”减小一点吧……:-(
责任编辑: dash
DASH老大起家的玩意啊 :D ,从代序老大网站上找得,不过一些新特性还要自己琢磨。
分享到:
相关推荐
在这个"emule服务器列表.doc"中,列出了多个eDonkey服务器的地址,这些服务器是Emule网络中的节点,用于帮助用户连接到其他共享文件的用户。 每个服务器地址由"ed2k://"开头,这是eDonkey网络链接的标识,后面跟着...
### eMule 更新服务器列表与 KAD 节点文件详解 #### 一、引言 eMule(电驴)是一款开源的P2P文件共享软件,它通过ED2K网络和KAD网络实现资源的查找与共享。对于新用户而言,了解如何更新服务器列表与KAD节点文件至...
### eMule服务器详解 #### 引言 eMule是一款开源的文件共享软件,它基于eDonkey网络,能够帮助用户实现高速、稳定的文件共享与下载。在eMule中,服务器扮演着非常重要的角色,它们负责维护客户端之间的连接,并...
然而,国内用户在使用过程中常遇到无法下载国外资源的问题,这通常与电驴的服务器列表有关。国内的服务器列表往往不包含所有国际服务器,导致对某些海外资源的访问受阻。为解决这个问题,用户只需更新电驴的服务器...
- 这个网站提供了最新的eMule服务器更新列表,用户可以直接从中获取最新的服务器地址。 - 此网站通常会定期更新其服务器列表,因此建议用户经常访问以获取最新信息。 2. **...
emule 必备知识更新服务器列表与 kad 节点文件 emule 是一款基于 ED2K 网络和 KAD 网络的点对点文件共享软件,通过服务器列表和 KAD 节点文件连接其他 emule 客户端。服务器列表和 KAD 节点文件是 emule 的必需文件...
7. **客户端支持**:确保服务器与各种eMule客户端兼容,因为不同的客户端可能使用略有不同的协议实现。 8. **故障转移与冗余**:为了提高服务的可用性,可以考虑设置多个服务器节点,或者采用负载均衡技术,当单个...
6. **客户端兼容性**:确保与多种电驴客户端软件兼容,如eMule、Morpheus等。 7. **更新与升级**:软件可能有自动检查更新的功能,以保持最新特性并修复已知问题。 在实际使用中,用户需要安装eServer,然后按照...
emule服务器,可以linux 2.6环境下运行。
eMule 设置 连接服务器和Kad网络
5. **eDonkey Network**:eDonkey网络,是eMule最初的共享网络,采用客户端-服务器模式。 6. **Kad Network**:kad网络,是一个去中心化的P2P网络,增强了网络的健壮性和抗审查性。 二、kad协议 kad协议是eMule中的...
Emule是一款著名的P2P(peer-to-peer)文件分享软件,源自德国,其设计灵感来自于eDonkey2000网络。"Xtreme"是Emule的一个特殊版本,它通常包含了更多的特性、优化和改进,以提升下载速度和稳定性。在本例中,我们...
在TP-Link TL-WDR3320路由器中,需要进入“虚拟服务器”设置,然后选择“端口映射”,最后,输入要映射的端口号码和协议类型。 二、DMZ主机 DMZ主机是将局域网中的电脑设置为DMZ主机,即Demilitarized Zone非军事...
P2P即对等网络,与传统的客户端-服务器模式不同,用户既是服务的消费者也是提供者。通过这种模式,每个下载eMule的用户都可以成为资源的分发节点,这大大提高了文件下载的速度和稳定性,尤其是在下载大型文件时优势...
11月15日新增eDonkeyServer No2 (212.63.206.35:4242)服务器,暂时确认为安全! 当staticservers.dat静态服务器列表大小达到2KB时,0.48a等旧版和0.49a/b版本要分开用服务器列表, 所以这次就不用分开了!!
- **eMule网络架构**:包括客户端与服务器之间的交互方式,以及客户端间直接通信的机制。 - **连接管理**:介绍客户端如何与服务器建立连接,并维持这些连接。 - **文件搜索与共享**:详述了文件搜索、文件共享的...
1. 记录每个帖子的访问人情况,便于管理员...6. 如果服务器支持 GD,可以对上传的图形加入水印,水印位置、字样都可以设置,还可以根据用户类型设置是否显示。 7. 加入论坛区简短信息排列模式(royroy & hztz 制作)
### eMule 学习心得与开发要点解析 #### 一、eMule 的起源与发展历程 eMule,作为一款流行的P2P文件共享工具,其发展历程充满传奇色彩。根据资料记载,eMule 项目的起始可以追溯到2002年5月13日,由一位名叫 ...
电骡的P2P网络架构基于Kad网络,这是一种分布式哈希表(DHT)系统,允许用户无需中心服务器即可搜索和分享文件。在emule0.5源码中,你可以找到实现这一功能的相关代码,如节点查找、路由策略和数据存储等。 其次,...