Emule服务器与设置

Emule服务器与设置Emule服务器与设置2004-02-09LifeNTlifent.5i6.net点击:3614Emule服务器与设置服务气端下载链接:http://lugdunum2k.free.fr/kiten.htmldonkey.ini文件的配置这是核心部分:电驴服务器的每一个变量都被写在这个文件里。dserver开始运行时会读这个文件。如果你改变了什么东西那么只有再次启动程序的时候才会被

大家好,又见面了,我是你们的朋友全栈君。Emule服务器与设置

2004-02-09 LifeNT lifent.5i6.net 点击: 3614

Emule服务器与设置

服务气端下载链接:
http://lugdunum2k.free.fr/kiten.html

donkey.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 ,从代序老大网站上找得,不过一些新特性还要自己琢磨。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148825.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【学习】Deep Learning for Deepfakes Creation and Detection[通俗易懂]

    【学习】Deep Learning for Deepfakes Creation and Detection[通俗易懂]论文题目:DeepLearningforDeepfakesCreationandDetection翻译:基于深度学习的Deepfake创建与检测作者:ThanhThiNguyen*1,CuongM.Nguyen2,DungTienNguyen1,DucThanhNguyen1andSaeidNahavandi31SchoolofInformati…

    2022年5月9日
    100
  • matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」

    matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」%————————————————————————–%计量经济学服务中心《空间计量经济学及Matlab应用》%————————————————————————–Vname=VariableGeometri…

    2022年10月6日
    4
  • C#自定义特性实例

    元数据,就是C#中封装的一些类,无法修改.类成员的特性被称为元数据中的注释.1、什么是特性(1)属性与特性的区别属性(Property):属性是面向对象思想里所说的封装在类里面的数据字段,Get

    2021年12月24日
    53
  • DropDownList1_SelectedIndexChanged不执行「建议收藏」

    DropDownList1_SelectedIndexChanged不执行「建议收藏」http://blog.sina.com.cn/s/blog_4ba152030100a6sr.html

    2022年7月18日
    14
  • Redis集群搭建(非常详细)

    Redis集群搭建(非常详细)https blog csdn net article details redis 集群搭建在开始 redis 集群搭建之前 我们先简单回顾一下 redis 单机版的搭建过程 下载 redis 压缩包 然后解压压缩文件 进入到解压缩后的 redis 文件目录 此时可以看到 Makefile 文件 编译 redis 源文件 把编译好的 redis 源文件安装到 usr local redis 目录下 如果 local 目录下没有 redis 目录 会自动新建 r

    2025年10月28日
    3
  • 再来利用java学学javaweb——–html+css+ JavaScript[通俗易懂]

    再来利用java学学javaweb——–html+css+ JavaScript[通俗易懂]今日内容1.web概念概述2.HTMLweb概念概述*JavaWeb: *使用Java语言开发基于互联网的项目*软件架构: 1.C/S:Client/Server客户端/服务器端 *在用户本地有一个客户端程序,在远程有一个服务器端程序 *如:QQ,迅雷… *优点: 1.用户体验好 *缺点: 1.开发、安装,部署,维护麻烦 2.B/S:Browser/Server浏览器/服务器端 *只需要一个浏览器,用户通过不同的网

    2022年7月12日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号